Skip to content

feat(reporting): preserve raw adjustment evidence for receipts - #1220

Merged
bokelley merged 3 commits into
mainfrom
feat/reporting-adjustment-evidence
Sep 26, 2026
Merged

bokelley merged 3 commits into
mainfrom
feat/reporting-adjustment-evidence

Conversation

@bokelley

@bokelley bokelley commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Buyers need raw adjustment evidence to verify the digest before model normalization changes timestamps or optional fields. This PR captures bounded JSON evidence, checks it against the typed adjustment and selected official revision, and builds deterministic acceptance or rejection receipts. Receipt validation errors stay within closed domain codes without exposing parser or model exception context.

The latest change replaces seven empty exception handlers with explicit fallback values. This preserves the existing error paths and resolves the CodeQL review threads.

Validation: make lint, make typecheck-all, and all 79 focused adjustment-evidence tests pass. The local make test run was interrupted after 281 passes when the shared filesystem reached capacity; the full PR CI run is in progress.

Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
@bokelley
bokelley marked this pull request as ready for review September 25, 2026 12:29
Comment thread src/adcp/reporting/adjustment_evidence.py Fixed
aao-secretariat[bot]
aao-secretariat Bot previously approved these changes Sep 25, 2026

@aao-secretariat aao-secretariat 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.

Ladon verdict: Approve

Approve

Additive feat: PR introducing the standalone adcp.reporting.adjustment_evidence primitive (487-line module) plus 79 tests and a strict adopter import fixture. No Critical/High/Medium findings from the reviewer.

What I checked against the decision table:

  • No critical/high/medium findings (rows 1, 4, 5, 6, 8 do not fire).
  • gated_paths: false (row 2 N/A).
  • high_risk: false, all changes additive (+1176/-0) with no deletions/modifications of sensitive files (rows 3, 5 N/A).
  • No no-auto-approve team match (row 7 N/A).
  • Repo-specific gates confirmed clean: imports stay within public surfaces (no generated-code/layering violation), feat: is the correct semver signal for an additive public export, and the module is fail-closed with closed diagnostic codes and no external I/O requiring timeouts.

Falls through to row 9 → approve.

@aao-secretariat aao-secretariat 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.

Ladon verdict: Approve

Approve.

Subsequent pass over PR #1220. The delta touches only src/adcp/reporting/adjustment_evidence.py, replacing bare pass in seven except handlers with explicit guard resets. Six are behavior-neutral normalization; the seventh (ReportingAdjustmentEvidence.__post_init__, L262) closes a real latent window where an rfc8785.dumps exception after valid = True would have accepted evidence with an empty canonical — a net improvement. Tests and type-checks are included.

No Critical/High/Medium findings. No author team gate, gated_paths is false, high_risk is false, and prior decision was already approve. With zero findings, none of decision rows 1–8 fire, so this falls through to row 9 = approve.

Blocking findings: none.
Medium findings: none.

@bokelley
bokelley merged commit c67b97e into main Sep 26, 2026
51 checks passed
@bokelley
bokelley deleted the feat/reporting-adjustment-evidence branch September 26, 2026 17:11
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