Skip to content

test(phase-5): corpus verifier follow-ups (veto-less auto case, derived region assertion, documented digest)#22

Merged
BunsDev merged 1 commit into
mainfrom
chore/corpus-verifier-followups
Jul 21, 2026
Merged

test(phase-5): corpus verifier follow-ups (veto-less auto case, derived region assertion, documented digest)#22
BunsDev merged 1 commit into
mainfrom
chore/corpus-verifier-followups

Conversation

@BunsDev

@BunsDev BunsDev commented Jul 21, 2026

Copy link
Copy Markdown
Member

Summary

Lands the three non-blocking follow-ups from the threads-uqx.13 verified-loop iteration-2 report (#21 verdict comment):

  1. AutoRegression { veto: null } corpus case — legal config the harness supported but the corpus never exercised. The explicit "veto": null pins the hardened wire shape from feat(phase-5): harden approval, identity, replay, and audit core #15 (deserialize_required_veto: key required, null ⇒ no window). Labels assertion updated; a dedicated assertion pins the null-veto shape.
  2. Registry-derived region assertion — the all-regions coverage check now derives from SurfaceRegionRegistry::default_registry().descriptors() instead of hardcoding the three names, so adding a built-in region flags corpus staleness.
  3. Documented pinned digestspecs/PHASE-5-APPROVAL-SEMANTICS.md now records the canonical SHA-256 beside the generation command, noting the digest excludes the example's trailing newline (with a tr -d '\n' | shasum -a 256 recipe).

Corpus digest moves once to 4ebe9d63…7e10 (new case changes canonical JSON).

Validation

  • cargo test -p coven-threads-core --test phase5_retired_ward_corpus — 4/4
  • cargo test -p coven-threads-core — 176+17+4+14 pass / 0 fail
  • cargo fmt --check + cargo clippy --all-targets -- -D warnings — clean
  • Emitted artifact digest independently reproduced: cargo run -q … | tr -d '\n' | shasum -a 256 ⇒ pinned value

Test/spec-only: no runtime authority logic touched.

…stry-derived region assertion, documented digest

Non-blocking follow-ups from the threads-uqx.13 verified-loop iteration-2 report (PR #21):
1. Add an AutoRegression { veto: null } valid corpus case — a legal configuration
   the harness supported but the corpus never exercised; pins the hardened wire
   shape (veto key present, null resolves to no window).
2. Derive the all-regions coverage assertion from
   SurfaceRegionRegistry::default_registry().descriptors() so a future built-in
   region flags corpus staleness instead of passing silently.
3. Document the pinned canonical SHA-256 next to the generation command in
   specs/PHASE-5-APPROVAL-SEMANTICS.md, including the trailing-newline nuance.

Corpus digest moves once: 4ebe9d63398e6b14f2a097ce66197c96a577559984515ce03ce4297c0b0c7e10.
Validation: corpus tests 4/4, full crate suite 176+17+4+14 green, fmt clean,
clippy -D warnings clean; emitted-artifact digest reproduced via tr -d '\n' | shasum.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 21, 2026 15:57
@BunsDev
BunsDev merged commit 6fa360b into main Jul 21, 2026
1 check passed

Copilot AI 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.

Pull request overview

Updates the Phase 5 synthetic retired-Ward corpus verification suite to cover an additional legal auto_regression configuration ("veto": null), tighten the “all built-in regions are covered” assertion by deriving expected regions from the registry, and document the updated canonical corpus digest in the Phase 5 semantics spec.

Changes:

  • Add a new valid corpus case for AutoRegression { veto: null } and update label coverage assertions accordingly.
  • Derive the expected built-in region IDs from SurfaceRegionRegistry::default_registry().descriptors() rather than hardcoding region names.
  • Update specs/PHASE-5-APPROVAL-SEMANTICS.md to record the new pinned SHA-256 and clarify newline handling for reproduction.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
specs/PHASE-5-APPROVAL-SEMANTICS.md Documents the new canonical corpus SHA-256 and how to reproduce it accurately.
crates/coven-threads-core/tests/support/phase5_retired_ward_corpus.rs Adds the new "auto-no-veto" valid corpus case with an explicit "veto": null.
crates/coven-threads-core/tests/phase5_retired_ward_corpus.rs Extends corpus coverage assertions (extra case, null-veto check) and derives expected region coverage from the registry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +112 to +114
// The explicit `veto: null` case pins the hardened wire shape: the key is
// required for auto_regression, and a null value resolves to no window.
assert!(cases[1]["approval"]["veto"].is_null());
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.

2 participants