Skip to content

health gate evidence: advisory unless bundle-bound - #114

Merged
moonweave merged 1 commit into
mainfrom
fix/health-evidence-binding
Jul 25, 2026
Merged

health gate evidence: advisory unless bundle-bound#114
moonweave merged 1 commit into
mainfrom
fix/health-evidence-binding

Conversation

@moonweave

Copy link
Copy Markdown
Contributor

The write_scope axis has a complete trust chain: the declaration is DSSE-signed before execution, the observation is a named bundle subject, and Depone verifies the subject binding before comparing. The code_health axis did not — its per-gate exit/log files are the producer's transcription of worktree-receipt fields, not bundle subjects, and nothing here read the source_receipt_sha256 they carry. So a verdict said "these bytes report exit 0", while its wording implied the same guarantee write_scope provides.

What changes

  • The rollup records the evidence substrate per gate (bundle-bound vs producer-transcribed) and says so in its human-facing text.
  • Structural, not cosmetic: while a gate's evidence is producer-transcribed, it cannot block handoff even if the repository declared block enforcement. A repo may not promote evidence the verifier cannot authenticate into a blocking verdict.
  • When the producer supplies a bundle-bound artifact manifest, each gate artifact is checked against it before exit codes are re-derived, and declared enforcement applies again. New contract-invalid error codes cover a missing artifact, a digest mismatch, and a manifest that is not a bundle subject.
  • Older evidence without the manifest keeps working and stays advisory — no fail-closed on runs sealed before this change, and no silent treatment of old evidence as bound.

witnessd's producer side (emitting the manifest and promoting it to a subject) lands separately, after this.

Suite: 470 tests, one known environment failure (the uv-shim contract checker).

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@moonweave
moonweave merged commit ba2374b into main Jul 25, 2026
6 checks passed
@moonweave
moonweave deleted the fix/health-evidence-binding branch July 25, 2026 16:09
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