Delete never-edited/never-acted/no-ship/no-progress salvage classes - #611
Closed
TheGreatAxios wants to merge 1 commit into
Closed
Delete never-edited/never-acted/no-ship/no-progress salvage classes#611TheGreatAxios wants to merge 1 commit into
TheGreatAxios wants to merge 1 commit into
Conversation
Two peer agent loops have no concept of a stop that bars retry, and neither treats a tool-using run with no net file diff as a failure. This project had five: no-ship, no-progress, never-acted, never-edited, and repetition all hard-blocked identical re-dispatch for the rest of the session. A worker sharing a directory can issue real edits that a concurrent lane absorbs, leaving no net diff — the never-edited class read that as "did nothing" and discarded the worker's real work while also blocking retry. Deletes HARD_BLOCK_SALVAGES/isHardBlockSalvage and the fingerprint-refusal logic in brief-dispatch.ts (the ledger now always admits), the requireEdit branch and the consecutive-identical no-progress check in stop-policy.ts (with their bookkeeping: DEFAULT_SUBAGENT_REPEAT_LIMIT, ToolCallStreak, nextToolCallStreak, subAgentNoProgress), and the four now-false "it will be refused" parent hints. shell-evidence.ts's write-detection existed solely to feed requireEdit and is now dead; shrunk to reads-only (still feeds the CritiqueDirector requireEvidence gate). editedPaths bookkeeping in thrash.ts stays for intervention-log diagnostics only. repetition keeps its detector (a sibling change owns deleting that) but loses its hard-block membership here, matching every other salvage class: it ends the run and reports the loop, but does not refuse a later re-dispatch.
1 task
Collaborator
Author
TheGreatAxios
deleted the
cl-6994-delete-hard_block_salvages-and-the-policy-salvage-classes-no
branch
August 28, 2026 00:09
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.
Summary
HARD_BLOCK_SALVAGESset,isHardBlockSalvage, and the fingerprint-refusal logic inbrief-dispatch.ts—admit()now always succeeds; no salvage class refuses re-dispatch of an identical brief.never-edited,never-acted,no-ship, andno-progresspolicy salvage classes fromstop-policy.ts(types, detection,FORCED_STOP_SUMMARIES,isXxxSubAgentReport, and the now-false "it will be refused" parent hints).repetitionkeeps its detector (a sibling change removes that) but loses hard-block membership: it still ends the run and reports the loop, it just no longer refuses a later re-dispatch.shell-evidence.tsexisted to feed therequireEditcheck with shell-mediated writes; withrequireEditgone, shrunk to reads-only (still feeds the CritiqueDirectorrequireEvidencegate).editedPathsbookkeeping inthrash.tsstays, now purely forinterventions.jsonldiagnostics.Why
A worker sharing a directory with concurrent lanes can issue real edit operations that a sibling absorbs or overwrites, leaving no net file diff. The
never-editedclassifier read "no net diff" as "did nothing," discarded the worker's real work, and hard-blocked re-dispatch. Two reference agent loops have no equivalent stop-that-bars-retry concept at all, so this removes the whole salvage-class family rather than trying to make the classifier smarter.Test plan
bun run checkgreen (lint, typecheck, build, full test suite: 5451 pass / 0 fail)vendor/changes