Skip to content

Verify retained production acceptance evidence - #287

Merged
abrichr merged 4 commits into
mainfrom
codex/verified-production-acceptance-import
Aug 19, 2026
Merged

Verify retained production acceptance evidence#287
abrichr merged 4 commits into
mainfrom
codex/verified-production-acceptance-import

Conversation

@abrichr

@abrichr abrichr commented Aug 18, 2026

Copy link
Copy Markdown
Member

What changed

  • Add a strict verifier for the Cloud production-acceptance certificate, GitHub provenance, immutable-retention receipt, signed qualification admission, and complete qualification campaign.
  • Recompute the admission, runtime-validation, workflow-version, organization, workflow, campaign, contract, outcomes, oracle, and trial-count bindings.
  • Reject unknown or revoked admission signers, changed issuer scope, collapsed admission and runtime identities, incomplete trial rows, silent incorrect success, and over-halt omissions.
  • Keep the private import path disabled until one approved export contract binds the complete payload, destination, encryption key, immutable retention, importer workflow and ref, and approval authority.

Why

The public acceptance record contains only remote-safe digests, bounded counts, and signer provenance. Evals must not trust those counts or let the evidence authorize itself. It must derive the result from the complete retained campaign under an external trust root.

This is a stacked draft on PR #286. It contains only the verifier delta above codex/production-evidence-contract.

Validation

  • 127 focused tests pass.
  • Ruff passes.
  • git diff --check passes.
  • A broader run had 2266 passes and 65 skips. Three sandbox-only log-write tests passed outside the sandbox. Seven pre-existing optional-state tests still require openadapt_ml or local demo fixtures.

Current boundary

No private export is enabled. The importer fails closed before it reads an admission or campaign until the exact export contract receives approval.

Base automatically changed from codex/production-evidence-contract to main August 19, 2026 21:43
abrichr added a commit that referenced this pull request Aug 19, 2026
A stacked pull request got zero checks and still reported
mergeStateStatus CLEAN. PR #287 targets codex/production-evidence-contract,
so the branches: [main] filter on pull_request never matched and no
workflow ran. An unverified pull request thus looks the same as a passing
one, which is how an untested change reaches main.

Remove the base-branch filter from the three pull_request triggers. The
push trigger keeps branches: [main]. complex-visual and evidence-freshness
keep their paths filters, so the added cost is limited to a stacked pull
request that touches those paths.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrichr
abrichr force-pushed the codex/verified-production-acceptance-import branch from 08a066c to fe78194 Compare August 19, 2026 21:45
abrichr and others added 4 commits August 19, 2026 17:49
…ed evidence

- Rename the shared signer field to evidence_runner_signer_sha256 across
  the importer, derived-result bindings, fixtures, tests, and docs so the
  identity grammar matches Cloud evidence v2.
- Bind campaign-outcomes and oracle-contract digests plus validated task,
  condition, required-trial, and observed-trial counts into the derived
  result; report task and condition identities as campaign-scoped hashes
  and keep all eleven failure-taxonomy counts.
- Add a pure, I/O-free builder and validator for the closed
  openadapt.production-acceptance/v1 manifest with a fixed target->claim
  scope map, two separate policy digests, and a Flow lifecycle release
  verifier that binds raw policy bytes, the exact commit URL, and one
  sorted PyPI sdist+wheel into an immutable verified-release object.
- Cloud stays fail-closed until a reviewed deployment-manifest binding
  exists; other targets refuse without their own evidence adapter.
- Export/import of real evidence stays disabled.

Tests: 265 focused (acceptance importer + evidence freshness) pass;
full CI suite 2410 passed, 56 skipped; ruff, source-boundary check,
and git diff --check pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@abrichr
abrichr force-pushed the codex/verified-production-acceptance-import branch from fe78194 to d8e0d4f Compare August 19, 2026 21:50
@abrichr
abrichr marked this pull request as ready for review August 19, 2026 21:50
@abrichr
abrichr merged commit fd9b60b into main Aug 19, 2026
2 checks passed
@abrichr
abrichr deleted the codex/verified-production-acceptance-import branch August 19, 2026 21:52
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