fix: report accurate swarm directive progress - #61
Merged
Merged
Conversation
christopherjnelson
marked this pull request as ready for review
September 20, 2026 20:50
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.
What this changes
at-targetwhen a worker reaches its directive target, including when it waits there. Report Zero's worker status from actual position change instead of treating every accepted action as progress.Evidence from the 25-tick export
The supplied complete, all-agent export is
zero-swarm-v1with eight agents,casual-cleaner, and 25 committed ticks. All eight agents survived. Workers made 87 moves, 22 infections, and 66 waits (including three fallback waits). Zero made nine moves, nine infections, and seven waits. There were 31 accepted infections and eight cleaner disinfections, leaving 23 infected cells. The cleaner moved 17 times and had eight blocked cleans.All 175 retained worker observations said
directiveProgress: stalled, including moves that reduced target distance. The service saved each worker's post-action cell aspreviousCell, making the next observation compare a cell with itself. The prior Zero projection also labeled any accepted worker action, including a wait, asadvancing.In 84 of 175 worker decisions, the assigned target was already the worker's current cell; in 83, it was adjacent. All 87 worker moves reduced target distance. Sixty-three successful Jev waits occurred at the target; 60 of those had an
expanddirective on a friendly infected cell. These counts suggest short targets followed by waits until replanning, but this PR does not change that policy before a paired live comparison.There were 194 retained provider attempts: 19 OpenRouter Zero attempts and 175 TypeSafe Jev attempts. One Zero plan fell back on tick 18 after malformed JSON; three Jev decisions fell back on ticks 1, 6, and 10 because their probability distributions were incomplete or inconsistent. Provider-reported OpenRouter cost was 0.113722785 credits. TypeSafe monetary cost is unknown from this export. The 1.863722785-credit admission exposure includes a 0.01-credit reservation for each of the 175 unknown-cost TypeSafe attempts and is not a bill.
This
casual-cleanerrun had no captures, so it cannot establish survival undertrail-hunter-v1pressure. It also cannot establish whether Jev beats deterministic worker selection. That requires paired live A/B inputs after this progress telemetry is corrected.Validation
The repository owner ran the local validation gate:
No paid provider benchmark is part of this PR or CI.