Skip to content

feat(loop): what survives of a branch the base moved past, as a specification rather than a patch - #366

Merged
gHashTag merged 1 commit into
feat/queen-supervisorfrom
carry/salvage
Sep 5, 2026
Merged

gHashTag merged 1 commit into
feat/queen-supervisorfrom
carry/salvage

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 5, 2026

Copy link
Copy Markdown
Owner

feat(loop): what survives of a branch the base moved past, as a specification rather than a patch

Five branches had jammed the landing pipeline for four rounds. land could say
they conflict and how far the base had travelled; the next question was the one a
person has to answer, and I kept deferring it: rebase, or re-do the work?

Rebasing browseros-ai#1302 would have deleted browseros-ai#1308's landed code and reintroduced a
non-ASCII ellipsis into a redaction the base already performs in ASCII, breaking
L3 in the same stroke. AND A CLEAN REBASE WOULD NOT HAVE SHOWN IT. A semantic
conflict carries no markers: git resolves the text correctly while the combined
code is logically broken - upstream renames a function your commit still calls,
the changes sit on different lines, nothing conflicts, everything is wrong. So
"it applied cleanly" is not evidence, and salvage.mjs does not offer it. It
applies nothing. It never rebases. The selftest fails if the words git rebase,
cherry-pick or git apply ever appear in it.

WHAT IT PRODUCES is the standard answer for a branch whose module was
restructured underneath it: use the old diff as a statement of what was WANTED,
not as patches. Concretely - the names the branch introduces that the repository
still does not have:

queen-1302 8 of 200 candidates absent: quotaAuthority, provider_quota,
estimated_usd_gate, statusMode, readTelemetry, QuotaAuthority,
billingProjection, ResearchDeps
queen-1303 4 of 243: started_running, plantedSecret, startedUnfinished,
startedRunning
queen-1387 19 of 273: specQualityHeadingParity, extractorHeadings,
checkNames, maskNonAscii, RING_COPY, scanMatchingClose, ...

Three branches of 881 added lines reduce to 31 missing names, because most of
what they carried had already landed by another route.

IT IS NOT A PARSE, deliberately. Six false accusations in this project came from
a checker that tried to recognise a declaration by its shape across Swift,
TypeScript and markdown, and the list of ways to spell "define" has no end. Every
identifier-shaped token is a candidate and the BASE TREE decides which are new -
absence is checkable without knowing any language. A hex blob is dropped, because
queen-1303's diff offered fedcba9876 from a fake sha in a fixture, and
proposing that as a capability the repository lacks is the node_modules
accusation in a new costume.

The cap on candidates is printed alongside the total, since a silent truncation
would read as "this is everything".

--brief writes the measurement as an issue a bee can pass, and every criterion
is FAIL-TO-PASS BY CONSTRUCTION: the name was measured absent from the base a
moment earlier, so it cannot be satisfied by an empty patch and verdict-audit
will check it against both the fork point and the branch without being asked.
Filed as gHashTag/trios#1537, browseros-ai#1538 and browseros-ai#1539, all three passing the delegation
gate with their boundaries parsed.

They carry no queen-authored label on purpose: that label is author.mjs's own
WIP accounting, and salvage work is not the backlog it is metering.

selftest 155 pass 0 fail. tri salvage <N> [--brief].

…fication rather than a patch

Five branches had jammed the landing pipeline for four rounds. `land` could say
they conflict and how far the base had travelled; the next question was the one a
person has to answer, and I kept deferring it: rebase, or re-do the work?

Rebasing browseros-ai#1302 would have deleted browseros-ai#1308's landed code and reintroduced a
non-ASCII ellipsis into a redaction the base already performs in ASCII, breaking
L3 in the same stroke. AND A CLEAN REBASE WOULD NOT HAVE SHOWN IT. A semantic
conflict carries no markers: git resolves the text correctly while the combined
code is logically broken - upstream renames a function your commit still calls,
the changes sit on different lines, nothing conflicts, everything is wrong. So
"it applied cleanly" is not evidence, and `salvage.mjs` does not offer it. It
applies nothing. It never rebases. The selftest fails if the words `git rebase`,
`cherry-pick` or `git apply` ever appear in it.

WHAT IT PRODUCES is the standard answer for a branch whose module was
restructured underneath it: use the old diff as a statement of what was WANTED,
not as patches. Concretely - the names the branch introduces that the repository
still does not have:

  queen-1302   8 of 200 candidates absent: quotaAuthority, provider_quota,
               estimated_usd_gate, statusMode, readTelemetry, QuotaAuthority,
               billingProjection, ResearchDeps
  queen-1303   4 of 243: started_running, plantedSecret, startedUnfinished,
               startedRunning
  queen-1387  19 of 273: specQualityHeadingParity, extractorHeadings,
               checkNames, maskNonAscii, RING_COPY, scanMatchingClose, ...

Three branches of 881 added lines reduce to 31 missing names, because most of
what they carried had already landed by another route.

IT IS NOT A PARSE, deliberately. Six false accusations in this project came from
a checker that tried to recognise a declaration by its shape across Swift,
TypeScript and markdown, and the list of ways to spell "define" has no end. Every
identifier-shaped token is a candidate and the BASE TREE decides which are new -
absence is checkable without knowing any language. A hex blob is dropped, because
queen-1303's diff offered `fedcba9876` from a fake sha in a fixture, and
proposing that as a capability the repository lacks is the `node_modules`
accusation in a new costume.

The cap on candidates is printed alongside the total, since a silent truncation
would read as "this is everything".

`--brief` writes the measurement as an issue a bee can pass, and every criterion
is FAIL-TO-PASS BY CONSTRUCTION: the name was measured absent from the base a
moment earlier, so it cannot be satisfied by an empty patch and `verdict-audit`
will check it against both the fork point and the branch without being asked.
Filed as gHashTag/trios#1537, browseros-ai#1538 and browseros-ai#1539, all three passing the delegation
gate with their boundaries parsed.

They carry no `queen-authored` label on purpose: that label is `author.mjs`'s own
WIP accounting, and salvage work is not the backlog it is metering.

selftest 155 pass 0 fail. `tri salvage <N> [--brief]`.
@gHashTag
gHashTag merged commit f4d914d into feat/queen-supervisor Sep 5, 2026
2 of 3 checks passed
@gHashTag
gHashTag deleted the carry/salvage branch September 5, 2026 00:06
@gHashTag
gHashTag restored the carry/salvage branch September 28, 2026 09:50
@gHashTag
gHashTag deleted the carry/salvage branch October 8, 2026 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant