Skip to content

Sync local main: README revision, DE-59 renumber, gitignore cleanup - #111

Merged
jam-sudo merged 233 commits into
mainfrom
docs/readme-revision-2026-10-01
Oct 2, 2026
Merged

jam-sudo merged 233 commits into
mainfrom
docs/readme-revision-2026-10-01

Conversation

@jam-sudo

@jam-sudo jam-sudo commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Brings GitHub main up 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:

  • README revision — condense the per-drug reference-audit narrative into one summary linking docs/validation/; reconcile stale facts (DrugBank enrichment is licensed_research-only, RBP defaults to 1.0, Peff/CL/F/Vd/F models listed, Cmax training = 906 pinned rows, pinned test 2p830, software version 0.4.0).
  • Merge of origin/main (docs(dead-ends): DE-58 — censored (Tobit/AFT) CLint regression does not improve end-to-end Cmax #108) — origin published DE-58 (censored CLint regression); the local Cmax source-metadata filter entry is renumbered to DE-59. The merged diagnosis bullet is aligned with the 2026-09-24 accuracy-ceiling retraction.
  • Public-tree guard — tool-name attribution replaced with neutral "AI-assisted" provenance wording (disclosure retained); check_no_internal_refs.py passes.
  • .gitignore — untrack .planning/ and docs/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.

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.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-01T20:33:45.960031Z d9e378a PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread server/Dockerfile
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment thread server/app.py
Comment on lines +104 to +105
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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)
@jam-sudo
jam-sudo merged commit 189c70d into main Oct 2, 2026
4 checks passed
@jam-sudo
jam-sudo deleted the docs/readme-revision-2026-10-01 branch October 2, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant