Rebuild OpenBoost as a programmable v1 boosting foundation - #23
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 114bf8080e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| delta = ( | ||
| term.value | ||
| if isinstance(term, ConstantTerm) | ||
| else term.learner.predict(data) @ term.mapping |
There was a problem hiding this comment.
Cache binning across ensemble terms
For any model containing multiple tree terms, this branch calls Tree.predict(data) once per term, and every such call recomputes Binning.transform across all rows and features. Built-in recipes repeatedly predict the growing ensemble during each transaction, so an R-round fit performs O(R²) full-data re-binnings, while standalone inference re-bins once per tree; this makes ordinary shallow ensembles prohibitively expensive on larger inputs. Cache transformed data by binning identity or apply proposal deltas to the accepted raw caches instead; the current four-round Covertype validation already exceeds its fit budget.
AGENTS.md reference: AGENTS.md:L79-L82
Useful? React with 👍 / 👎.
| data = path.read_bytes() | ||
| _require(hashlib.sha256(data).hexdigest() == entry["sha256"], "artifact hash mismatch") |
There was a problem hiding this comment.
Reject empty successful model artifacts
When a producer records the SHA-256 of an empty model file, _artifact accepts it because only the digest is checked, and a status="pass" case can therefore make judge() report integrity_pass=True despite having no model that can be reloaded or used for the required prediction round trip. Reject zero-length model artifacts before accepting a successful case; empty worker logs can remain valid through a role-specific check.
AGENTS.md reference: AGENTS.md:L141-L142
Useful? React with 👍 / 👎.
Summary
Rebuild OpenBoost as a programmable boosting foundation for researchers and agents. Retire the previous production implementation and replace it with public CPU components for data, statistics, tree growth, objective geometry, immutable update transactions, stopping, independent runs, and persisted inference. This is a breaking redesign, not a drop-in replacement or a completed v1 release.
The branch includes the full accumulated v1 implementation and evidence:
Validation
At branch head
114bf80:Earlier sprint records retain installed-extension and real-data validation evidence. Current full Covertype execution failed all five folds at the unchanged 90-second fit cap; no models were produced. The next engineering step is bounded profiling on the same workload.
Remaining boundaries
Current v1 CUDA execution is not implemented. Full required application searches, competitive quality/cost, formal independent authoring evaluations, delivery coverage, and external adoption remain open. Internal extension and small worker checks do not close those gates. This PR preserves those limitations rather than declaring v1 acceptance.
Execution priorities and reflections are recorded in
v1-sprints/, with the current direction in Sprint 038 and the latest counterexample in Sprint 049. Historical tests for the retired implementation are excluded from current v1 discovery.