Skip to content

spec(seal_identity): frontier --reseal reseals a MISSING spec that already has a legacy seal - #10267

Open
gHashTag wants to merge 1 commit into
masterfrom
claude/remint-missing-with-seal
Open

gHashTag wants to merge 1 commit into
masterfrom
claude/remint-missing-with-seal

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

What

t27c frontier --reseal never resealed a spec in the missing group that already had a legacy v1 seal, because si::remint_wants(decision, has_seal) in specs/verified/seal_identity.t27 returned has_seal == false for REBUILD_MISSING. #10250 had to work around this with direct t27c seal <spec> --save runs plus remint_keeps applied by hand (279 specs).

Change

  • remint_wants now names every MISSING spec, sealed or not. The rest of the rule is unchanged (REUSE is still left alone).
  • The guards still decide the outcome, nothing is bypassed:
    • remint_keeps keeps the new seal only for schema 2, failed=0, not forced, non-vacuous, in a file the spec owns; otherwise the old seal is written back.
    • seal --save itself still refuses a regression (blocked_reseal_allowed) and a new producer over silicon receipts (silicon_queue::reseal_allowed); the refusal makes sealed false, so the old seal is restored.
    • A seal already at the current schema is not rewritten (the existing same() check).
  • Spec only: the t27c-generated bootstrap/gen/rust/verified/seal_identity.rs is regenerated with t27c gen-rust, and the spec's own seal is renewed. No hand-written Rust.
  • Test blocks: the MISSING + sealed case flips to true; new blocks cover the keep conditions and the regression guard. silicon_queue::reseal_allowed is already covered in silicon_queue.t27 and lives in main.rs, so it is not duplicated here.

Measured (Railway lab, master c0d0501)

  • t27c test-report specs/verified/seal_identity.t27: 17 tests, 0 failed, 0 vacuous.
  • A partial frontier --reseal (interrupted after 48 specs resealed) moved reuse 627 -> 644 permille, toolchain group 29 -> 2. The full run (456 missing specs; the compiling ones took about a minute each late in the partial run) is deliberately not part of this PR.
  • Cost note: every MISSING spec is now attempted, including the ones that do not compile. Those fail fast in seal and keep their old seal.

🤖 Generated with Claude Code

…ready has a legacy seal

remint_wants() skipped REBUILD_MISSING when the spec had a seal, on the
reasoning that such a spec is missing only through an import. In fact a
legacy v1 seal records no closure, toolchain or config, so those specs sit
in the missing group until they are sealed again. #10250 had to
reseal 279 of them with direct `t27c seal --save` runs and apply remint_keeps
by hand.

remint_wants now names every MISSING spec. The guards are unchanged and still
decide the outcome: remint_keeps keeps only a schema 2, failed=0, unforced,
non-vacuous seal in a file the spec owns; `seal --save` itself still refuses
a regression (blocked_reseal_allowed) and a new producer over silicon receipts
(silicon_queue::reseal_allowed); on any refusal the old seal is written back.

Test blocks: the MISSING-with-seal case flips, plus blocks for the keep
conditions and the regression guard. bootstrap/gen/rust/verified/seal_identity.rs
is regenerated by t27c gen-rust and the spec's own seal is renewed.

Measured on the Railway lab (master c0d0501): a partial, interrupted
`frontier --reseal` over 48 specs moved reuse 627 -> 644 permille and the
toolchain group 29 -> 2. The full run is not part of this change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 06:21:44 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 0
FAILING 49
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 49 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=0f8c66b9ed0e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

This was referenced Oct 18, 2026

This branch has not been deployed

No deployments
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