Skip to content

Carry the exclusion widening into the second, dormant tree-sync pin - #8567

Merged
briansrls merged 1 commit into
mainfrom
session/nimble-fox-671-emitpin
Aug 19, 2026
Merged

briansrls merged 1 commit into
mainfrom
session/nimble-fox-671-emitpin

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

main is red, and this half of it is mine

test.claim.live_deploy.emit witness_scripts_stay_within_ci_runner_grants pins the tree-sync ExecStart to the exact two-prefix spelling:

ExecStart=/usr/bin/rsync -rlpt --delete --exclude /target --exclude /.git "${GUNBC_TREE_SRC}/" /opt/gunbc/gunbc/

#8522 widened deployed_tree_excluded_prefixes from two entries to six, so that string_contains no longer matches.

Why #8522 was green anyway — the part worth recording

Two witnesses assert those same emitted bytes:

#8503 restored 14 modules and 226 witness identities, this claim among them, and it landed straight onto the already-merged change.

#8503 is not at fault. The restoration did exactly what restoring evidence is for: it made a previously invisible breakage observable. The defect merged hours earlier and simply had no executing consumer.

My error was a denominator error. I fixed the pin the floor showed me and inferred from a green run that no other pin existed. The correct question was which other claims assert these bytes — answerable with a grep at the time. A dormant witness is not a passing witness, and a green floor says nothing about the claims it never ran.

The fix

Same delta as the oracle row: the pattern gains the four host-state prefixes. The surrounding claim is otherwise untouched and still does its real job — apply and retract scripts must stay inside the ci-runner grants (no chown, no rmdir, no rsync outside the unit) — and that half never depended on the exclusion list.

Validated by execution

claim_batch on dag/test/claim/live_deploy/emit_test.dag, all 47 claims, on srv1 (aarch64): 47/47 PASS, 0 FAIL, including the previously-red witness_scripts_stay_within_ci_runner_grants.

The other red on main is NOT this, and not mine

v2.test.lens_inert_carrier.inert_carrier_test inert_carrier_no_unrostered_or_stale also fails on main. It is independent:

That one is still open and needs its own owner.

main is red on test.claim.live_deploy.emit witness_scripts_stay_within_ci_runner_grants,
and the cause is mine. That claim pins the tree-sync ExecStart to the exact two-prefix
spelling `--exclude /target --exclude /.git`, which #8522 widened to six prefixes.

WHY #8522 WAS GREEN ANYWAY, WHICH IS THE PART WORTH RECORDING. Two witnesses assert those
same emitted bytes: live_deploy_unit_emission_oracle_witness, which #8522 updated because
the floor caught it, and this one, which was NOT enrolled at the time and therefore could
not be caught. #8503 restored 14 modules and 226 witness identities, this claim among
them, and it landed straight onto the already-merged change. So the red is not #8503's
defect -- the restoration did exactly what restoring evidence is for, which is to make a
previously invisible breakage observable.

The lesson is the one about denominators: I fixed the pin the floor showed me and inferred
from a green run that no other pin existed, when the correct question was which OTHER
claims assert these bytes. A dormant witness is not a passing witness, and a green floor
says nothing about the claims it never ran.

Fix is the same delta as the oracle row: the pattern gains the four host-state prefixes.
The surrounding claim is unchanged and still does its real job -- apply and retract scripts
must stay inside the ci-runner grants (no chown, no rmdir, no rsync outside the unit) --
and that half never depended on the exclusion list.

Not fixed here, and not mine: v2.test.lens_inert_carrier.inert_carrier_test
inert_carrier_no_unrostered_or_stale is the other red on main. It fails on main without
this branch's content, and a rebased run carrying an added prose row reported the same two
failures rather than three, so that one is independent of both #8522 and #8562.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit 174ca84 into main Aug 19, 2026
1 check failed
@briansrls
briansrls deleted the session/nimble-fox-671-emitpin branch August 19, 2026 19:58
briansrls pushed a commit that referenced this pull request Aug 19, 2026
…d literal

#8567 fixed the same red on the same line by hand-transcribing #8522's six
prefixes into the pattern. That restores the parallel representation this
branch removes: the literal is a second copy of
gunbc.live_deploy.deployed_tree_scope deployed_tree_excluded_prefixes, and it
rotted once already — that rot is exactly the red both PRs are answering.

Resolved to this branch's side, which derives the flags from that authority, so
the seventh prefix cannot desync the witness at all. The conjunct's real job is
unchanged and every other conjunct stays literal.
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