fix(tri): window refuses a failed fetch, a foreign record, and a rewind - #3382
Merged
Conversation
added 3 commits
September 6, 2026 15:20
69 merges landed on master in 24 hours here, one every 21 minutes, while a corpus measurement takes 15-30. The base moves during almost every measurement, and two failures follow: a delta that is a neighbour's work, and a defect that was repaired upstream while it was being fixed here. Both are one question. Census re-blessed in this same commit: `fetches` moved `files read` by one, which is this commit's own new file cli/tri/src/window.rs.
…nd (Refs #3379) The fetch-exit-code repair is from an adversarial agent that edited this worktree directly -- the brief forbade pushing and other branches, not editing. Reviewed line by line and kept: --check discarded the fetch's status, so a failed fetch left the local ref where --start recorded it and the command certified as clean the failure it exists to prevent. Three more by hand: a short record panicked at [..12]; the recorded ref name was never read back; a rewind said '0 merge(s) landed'. And one of mine: a blind regex rewrote short()'s own body into a self-call, an infinite recursion that presented as a hang.
gHashTag
enabled auto-merge (squash)
September 6, 2026 09:07
added 2 commits
September 6, 2026 16:12
Census re-blessed in this same commit; it moved with the commits merged in.
The squash of #3380 put this branch's own parent content on master as an unrelated commit, so all ten regions conflicted. Resolved to this branch's version after checking it is a superset: the thirteen lines only master had are exactly the ones these fixes replace -- `&recorded[..12]` and the hardcoded `fetch origin`.
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
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.
Closes #3381
Five defects in
tri windowas merged, from an adversarial pass in which eight of eight candidates survived refutation.The one that matters, and it is sharper than I had it.
--checkdiscarded the fetch's exit code.resolvereads the LOCALorigin/master, which a failed fetch leaves exactly where--startrecorded it — sotip == recordedbecomes true and the command certifies as clean the single failure it exists to prevent.The verifier added the part I had missed: the failure is perfectly correlated with the case the guard exists to catch. A stale
refs/remotes/origin/master.lock— routine with ~150 worktrees on one shared object store — makesgit fetchfail only when there is something to fetch. Measured in one repository, seconds apart, same lock:The instrument goes blind precisely and only when the base moved, and reports that blindness as intact.
--check--start's own wordsorigin&recorded[..12]on a short record--start --base Athen--check --base Bcalled two branches a move0 merge(s) landed in between; now names the rewindAttribution. The fetch repair came from an adversarial agent that edited this worktree directly: my brief forbade pushing and other people's branches, and did not forbid editing. Reviewed line by line and kept.
And one defect was mine, made while fixing theirs. A blind
re.sub('&sha[..12]' → 'short(&sha)')rewrote the body ofshortitself into a self-call — infinite recursion, presenting as a hang with no output. Four probes went to the network, git locks, concurrent agent builds and stdin inheritance before I looked at where the output stopped: after the fifth control, before the sixth, which is the one that testsshort.Eight controls, twelve tests.