fix(loop): a branch whose intent was re-filed is history, not debt - #369
Merged
Merged
Conversation
…and stop advising a rebase that would destroy work For four rounds `why` warned that all remaining accepted branches conflict, that nothing can land and that the swarm will starve behind them. Mechanically true and useless: those branches will never land. Their base has moved past them, replaying one would delete work that landed since, and there was nothing in the loop that could say so. `salvage` has now measured what each still owes and filed it as a brief against today's base - gHashTag/trios#1537, browseros-ai#1538, browseros-ai#1539, browseros-ai#1540. So the branches are recorded as REPLACED, with the issue that replaces each: queen-1302 -> browseros-ai#1537 billing mode and quota authority queen-1303 -> browseros-ai#1538 the started_running state queen-1387 -> browseros-ai#1539 the heading-parity checker queen-1422 -> browseros-ai#1540 the noise filter that deleted its answer Five conflicting branches become one, and the one that remains - queen-1484 - is not debt either: it is an OPEN issue whose own criterion fails against the base today, which the swarm can pick up as ordinary work. RECORDED, NEVER INFERRED. Nothing here guesses that a branch is superseded. Someone says so and says by what, in a file, with a timestamp. The branches themselves are untouched: no deletion, no force, nothing irreversible. The selftest fails if `--force`, `branch -D` or `push --delete` ever appear in this file. AND THE ADVICE CHANGED, because it was wrong. For four rounds this tool told a reader that a conflicting branch "needs a rebase, or an honest closure as superseded". 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. It now says what was learned: A rebase is usually the WRONG remedy once the base has moved: replaying an old branch can delete work that landed since, and applying cleanly proves nothing, because a semantic conflict carries no markers. tri salvage <N> measures what the branch would still add, asks the issue its own criterion against the base, and writes the remainder as a brief A tool that recommends the destructive option in one line, every round, for four rounds, is worse than one that says nothing. selftest 160 pass 0 fail.
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.
fix(loop): a branch whose intent was re-filed is history, not debt - and stop advising a rebase that would destroy work
For four rounds
whywarned that all remaining accepted branches conflict, thatnothing can land and that the swarm will starve behind them. Mechanically true
and useless: those branches will never land. Their base has moved past them,
replaying one would delete work that landed since, and there was nothing in the
loop that could say so.
salvagehas now measured what each still owes and filed it as a brief againsttoday's base - gHashTag/trios#1537, browseros-ai#1538, browseros-ai#1539, browseros-ai#1540. So the branches are
recorded as REPLACED, with the issue that replaces each:
queen-1302 -> browseros-ai#1537 billing mode and quota authority
queen-1303 -> browseros-ai#1538 the started_running state
queen-1387 -> browseros-ai#1539 the heading-parity checker
queen-1422 -> browseros-ai#1540 the noise filter that deleted its answer
Five conflicting branches become one, and the one that remains - queen-1484 - is
not debt either: it is an OPEN issue whose own criterion fails against the base
today, which the swarm can pick up as ordinary work.
RECORDED, NEVER INFERRED. Nothing here guesses that a branch is superseded.
Someone says so and says by what, in a file, with a timestamp. The branches
themselves are untouched: no deletion, no force, nothing irreversible. The
selftest fails if
--force,branch -Dorpush --deleteever appear in thisfile.
AND THE ADVICE CHANGED, because it was wrong. For four rounds this tool told a
reader that a conflicting branch "needs a rebase, or an honest closure as
superseded". 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. It now says what was learned:
A rebase is usually the WRONG remedy once the base has moved: replaying an old
branch can delete work that landed since, and applying cleanly proves nothing,
because a semantic conflict carries no markers.
tri salvage measures what the branch would still add, asks the issue
its own criterion against the base, and writes the
remainder as a brief
A tool that recommends the destructive option in one line, every round, for four
rounds, is worse than one that says nothing.
selftest 160 pass 0 fail.