Conversation
`tri reseal check` exited 1 on every clean checkout. `reseal.rs:68` compared `raw.trim()` -- the whole `<64-hex> <WS> <repo-relative-path>` line that FROZEN.md §4 specifies and that is on disk -- against a bare 64-hex digest. On the real file that comparison can never hold, so the mismatch branch was unconditional: it printed two identical hashes and called them a disagreement. Three consequences, and the third is the serious one: - the check failed always; - its stated consequence was false, since `bootstrap/build.rs:246` reads `split_whitespace().next()` and `cargo build` passes; - obeying it wrote the digest alone, deleting the path token restored by `3d3b5b858` (#3280) one day earlier -- and `build.rs` reads only the first token, so that corruption produced no error anywhere. `seal_line` / `seal_digest` / `seal_path` now read the seal exactly as `build.rs:242-246` does: first non-empty non-`#` line, then the first token. The rewrite carries the path token through, falling back to the sealed name when the file has none. Nothing caught this because every fixture in the module was a bare hash or a conflict marker. The new fixture is the line that is actually on disk, and `the_whole_line_is_not_the_digest` is its control: it asserts the fixture still reproduces the defect, so a fixture that stops carrying a path token fails loudly instead of testing nothing. `the_rewrite_preserves_the_path_token` reads the write SITE, because the defect lived there and not in a predicate. It failed first on my own comment, which had quoted the old spelling -- a quotation satisfying the grep it exists to fail -- so the comment now says why it does not quote it. Historical control on one clean tree: the old binary exits 1 printing `seal: 23f03e8a97d5588d / actual: 23f03e8a97d5588d`; the new one prints `seal matches: 23f03e8a97d5588d` and exits 0. 802 crate tests pass. Found by an adversarial sweep for the class "a tool emits advice that a deliberate recorded decision contradicts" (Refs #3355), which returned five survivors from 19 agents with zero errors. This is the only one where obeying the advice leaves no error behind. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-09-06 06:47:21 UTC
Summary
Seal Status
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #3366
tri reseal checkexited 1 on every clean checkout, and obeying its advice silently reverted #3280.Reproduced, then fixed, on one clean tree
tri reseal checkseal: 23f03e8a97d5588d/actual: 23f03e8a97d5588d, exit 1seal matches: 23f03e8a97d5588d, exit 0Same tree,
git status --porcelain -- bootstrap/empty both times. That is the historical control.Cause
bootstrap/stage0/FROZEN_HASHis<64-hex> <WS> <repo-relative-path>(FROZEN.md §4).reseal.rs:68comparedraw.trim()— the whole line — against a bare digest, so the mismatch branch was unconditional.Three consequences
bootstrap/build.rs:246does.split_whitespace().next(), socargo buildpasses.3d3b5b858(fix(rust): .len() is usize, so the bridge that already exists can apply (+2) #3280) restored one day earlier.build.rsreads only the first token, so nothing in the repository objects.The fix
seal_line/seal_digest/seal_pathread the seal exactly asbuild.rs:242-246does. The rewrite carries the path token through.Why nothing caught it, and what now does
Every fixture in the module was a bare hash or a conflict marker. The new fixture is the line actually on disk, and
the_whole_line_is_not_the_digestis its control — it asserts the fixture still reproduces the defect, so a fixture that stops carrying a path token fails loudly instead of testing nothing.the_rewrite_preserves_the_path_tokenreads the write site, because the defect lived there and not in a predicate. It failed first on my own comment, which had quoted the old spelling — a quotation satisfying the grep it exists to fail. The comment now says why it does not quote it.802 crate tests pass.
Provenance
Found by an adversarial sweep for the class "a tool emits advice that a deliberate recorded decision contradicts" (#3355) — 19 agents, 0 errors, 5 survivors. This is the only survivor where obeying the advice leaves no error behind; the sweep's own synthesis ranked it first for that reason.