N1.1 — mutation-proof document output guards - #146
Conversation
164081e to
327944e
Compare
327944e to
9658e46
Compare
9658e46 to
95d740e
Compare
95d740e to
4c8a43d
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4c8a43d5d1
ℹ️ 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".
4c8a43d to
7190a97
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7190a97f29
ℹ️ 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".
7190a97 to
06d6f23
Compare
06d6f23 to
b11d72f
Compare
b11d72f to
3876c38
Compare
3876c38 to
5acc37f
Compare
Harden the unprotected client-facing document boundaries demonstrated by the W1 mutation sweep. Add regression coverage that makes PDF invalid-date substitution fail, verifies bulk output bytes rather than file existence alone, and records per-party creation failures in the returned batch manifest. Extract the existing shared report filename predicate unchanged and cover CSV/local-export traversal, hidden-name, and separator rejection; cover single-statement slug portability. Mutation proof: defaulting PDF dates to 01-Jan-2000 passed the prior valid-only test, then failed new invalid_statement_date_fails_instead_of_using_a_default. Replacing bulk write_all(bytes) with write_all(&[]) passed the prior existence-only test, then failed its byte assertion. Silently dropping a file-creation error failed the new manifest test. Returning a default filename and raw party slug each failed their new tests. Existing XLSX/PDF amount/date/text and bulk slug/collision/renderer error mutations were already caught.
Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
Carry the N1.1 document-boundary surface over the F4X BILLREF presentation disclosure. Claims, evidence, and trusted-evidence keys remain byte-identical to the preserved N1.1 head. Compatibility gate: exit 0, unknown_claims=11, evidenced_claims=0. Claims/evidence/trusted identity checks: exit 0.
5acc37f to
aaa855c
Compare
Stacked on
feat/client-grouping— review only this PR's own diff.Local gate green at this level: workspace tests and clippy in both feature configurations, fmt, tools tests, live-read boundary, fixture byte integrity, licence inventory, tsc, production build, and the workflow-consistency gate.
CI is NOT proven: the GitHub-hosted Windows and bundle-smoke jobs have never run, and one read-transport harness test fails deterministically on macOS with an unknown ubuntu outcome.