Repository navigation
Sync local main: README revision, DE-59 renumber, gitignore cleanup - #111
Conversation
Fail strict predictions on nonconverged engine solves, keep measured-F curves consistent with endpoints, validate measured inputs, and prevent stale live responses. Correct the 24-hour exposure label and remove unvalidated MIPD intervals. Ship a smaller CPU-only API image with explicit resources, simplify unused layers, and add regression coverage.
…facts - Collapse the per-drug 2026-09-24/25 follow-up chain into one audit summary linking docs/validation/ and the source-consistency ablation no-go. - Public profile: DrugBank enrichment is licensed_research-only; RBP defaults to 1.0; list Peff/CL/F/Vd/F models; Cmax training is 906 pinned rows. - Fix pinned test name (2p830), software version (0.4.0), AAFE formatting.
origin/main published DE-58 (censored CLint regression, #108) while the local line independently used DE-58 for the 2026-09-25 Cmax source-metadata filter. Keep the published number, renumber the later entry, add the DE-58 summary row, and align the merged diagnosis bullet with the retracted accuracy-ceiling claim.
The public-tree guard rejects tool-name attribution. Keep the disclosure that source checks were AI-assisted, but drop the product name so CI passes.
Untrack .planning/ (stale generated codebase map) and docs/breakthrough_path.md (superseded research roadmap); local copies are kept. Ignore preprint draft and build artifacts, submission metadata, and agent-tool scratch, and drop the duplicate docs/claude_science/ rule. Remove the three links to the roadmap.
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: d9e378a464
ℹ️ 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".
| COPY data/enzymes /app/data/enzymes | ||
| COPY data/transporters /app/data/transporters | ||
| COPY data/sbi/prodrug_activation_registry.json /app/data/sbi/prodrug_activation_registry.json | ||
| COPY data/validation/development_residual_interval.json /app/data/validation/development_residual_interval.json |
There was a problem hiding this comment.
Ship the files needed to validate the residual interval
In the exact-source API image, this copies the interval JSON but not the artifacts that validate it: .dockerignore excludes data/training and data/reference, while verify_development_residual_interval() reads data/training/4track_holdout_predictions.json, data/reference/clinical_pk.json, and data/reference/holdout.json. Every containerized /predict therefore catches a FileNotFoundError in _development_residual_q90_meta() and returns null for the advertised residual interval despite an otherwise successful prediction. Include these provenance inputs in the image or make the interval artifact independently verifiable.
Useful? React with 👍 / 👎.
| except ValueError as exc: | ||
| raise HTTPException(status_code=400, detail=str(exc)) from exc |
There was a problem hiding this comment.
Return 500 for internal ValueErrors from predict
For a valid request, strict prediction can still raise ValueError for internal failures such as a model artifact/hash mismatch from verify_model_artifact() or an engine construction error. This broad handler misclassifies those deployment failures as client errors and exposes their internal details in the response, contrary to the documented contract that engine failures return 500. Since SMILES, dose, and route are already validated before this call, handle prediction failures as a generic 500 or narrowly distinguish genuine input exceptions.
Useful? React with 👍 / 👎.
These tests skip when licensed DrugBank data is present locally, so their pins went stale unnoticed. Regenerated on a clean clone and bisected by checkpoint: - fluvastatin no-ECM 0.0603 -> 0.0737 (fup/Peff retrains; ECM gate unchanged) - remdesivir 1.573 -> 5.891: IV Cmax is engine-only since e8dcd12 - sepiapterin, tebipenem pivoxil, fostamatinib: public retrains/label screens - leak-audit baseline: 73 evaluated drugs regenerated (retrains + reference dose/arm corrections); 34 quarantined entries unchanged - integrate_holdout tests stub the licensed DrugBank lookup (output verified identical with and without it)
Brings GitHub
mainup to date with the local line (227 prior commits: public-only retrains, 2026-09-24/25 reference audits, source-adjudicated N=73 development benchmark) plus:docs/validation/; reconcile stale facts (DrugBank enrichment islicensed_research-only, RBP defaults to 1.0, Peff/CL/F/Vd/F models listed, Cmax training = 906 pinned rows, pinned test2p830, software version 0.4.0).check_no_internal_refs.pypasses..planning/anddocs/breakthrough_path.md(links removed); ignore preprint drafts/build artifacts, submission metadata, agent scratch; drop duplicate rule.Local verification:
tests/unit+ console-provenance + holdout-regression — 1207 passed, 11 skipped. Full suite runs in CI.