Repository navigation
feat(loop): free a retry ceiling that was spent on silence - #112
Merged
Merged
Conversation
The swarm ran ONE bee of four. The tick's own skip summary said claimed=11, and nine of those were dispatches at or over QueenRetryPolicy.maximumRealAttempts. Meanwhile author.mjs found fourteen real deficits and could file against none of them, because every one already had an issue - one of the parked ones. Work existed and was locked. Then the review notes read together: browseros-ai#1133 4 criterion(s) still unmet 'omitted 4 verdict lines' browseros-ai#1175 4 criterion(s) still unmet 'omitted 4 verdict lines' browseros-ai#1316 3 criterion(s) still unmet 'omitted 3 verdict lines' browseros-ai#1318 4 criterion(s) still unmet 'omitted 4 verdict lines' The unmet count IS the omitted count. Those criteria were not judged and found wanting - they were never judged at all. The reviewer marks a criterion unmet when the worker's VERDICT block has no line for it, which is the right default and is a different fact from a criterion that was tested and failed. So the ceiling was reached without the work ever being assessed. maximumRealAttempts counts REAL attempts. An attempt that returned no verdict on a criterion did not attempt that criterion. unpark.mjs releases only those, only when the reviewer's own words say so, and only when the issue does not ask for a person. Every criterion must be accounted for by an omission: browseros-ai#1291 has 6 unmet against 5 omitted, so at least one WAS tested, and it keeps its ceiling. Three released, three kept, and browseros-ai#1328/browseros-ai#1329/browseros-ai#1350 carry no omission at all. Also fixes a filter of mine that could delete the answer it was filtering. clean() dropped any line CONTAINING 'Migrate', 'Existing', 'Using SSH' or 'railway.json'. A single-line JSON answer carrying a review note that mentioned migration was deleted in full, and the caller reported 'unparseable answer' about a query that had worked perfectly. Patterns are now anchored, and a line beginning with [ or { is never dropped. A noise filter that can eat evidence turns a working system into an unexplainable one. The skill gains what this night measured: an escalation is a claim about a cause and a cause can be measured again; two gates before retiring one; ask the shipping parser and never a copy; and what a judging pass actually found - 187 criteria, 0 fabricated by any worker, 6 of 7 of my own accusations refuted.
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.
The swarm ran one bee of four. This is why, and what it took to get to three.
Nine issues parked, and not one of them on the work
The tick's own skip summary said
claimed: 11, and nine of those were dispatches at or overQueenRetryPolicy.maximumRealAttempts = 2— the oldest idle 52 hours. Meanwhileauthor.mjsfound fourteen real deficits and could file against none of them, because every one already had an issue: one of the parked ones. Work existed and was locked by the thing that recorded its failure.Then the review notes, read together:
The unmet count is the omitted count. Those criteria were not judged and found wanting — they were never judged at all. The reviewer marks a criterion unmet when the worker's
## VERDICTblock has no line for it. That is the right default (silence must never read as success) and it is a different fact from a criterion that was tested and failed.So the whole retry budget was spent on the shape of a report.
What
unpark.mjsclaims, and what it refuses tomaximumRealAttemptscounts real attempts. An attempt that returned no verdict on a criterion did not attempt that criterion.It releases only those, and the test is deliberately strict — every unmet criterion must be accounted for by an omitted line:
Three released, four kept. It also refuses anything whose issue body asks for a person, on the same grounds as
stale-escalations.mjs.A filter of mine that could delete the answer it was filtering
clean()stripped railway's chatter by dropping any line containingMigrate,Existing,Using SSHorrailway.json. A single-line JSON answer carrying a review note that mentioned migration was deleted in full, and the caller reported "unparseable answer" about a query that had worked perfectly.Patterns are now anchored to the start of the line, and a line beginning with
[or{is never dropped. A noise filter that can eat evidence is worse than no filter: it turns a working system into an unexplainable one, and it fails silently by construction.Result
0 → 3bees. The fourth slot is held by a genuinefileConflict— two of the four issues I filed name the same file, which is an authoring mistake and not a defect. To fill N slots you need N issues with disjoint boundaries.The skill gains what the night measured
wait, whose input can never change