Repository navigation
Conversation
…ystem 1.31.2) herdr agent names are server-wide, so two lanes with the same task-derived label in different workspaces collided: the second `agent start` got agent_name_taken, was classified ambiguous, and left an empty shell tab reported as blocked=unverified. - Verified live (herdr 0.9.5): the rejection is immediate and types nothing, so retry under `<label>-<repo>`, then `-2`, `-3` (WORK_SYSTEM_HERDR_NAME_TRIES) - Same walk on the legacy start and the timeout-path rename - Report a fallback as `herdr_name=`; all names taken -> fail_definitive (tab rolled back, exit 1) - Tests incl. two kickoffs of one label in two workspaces against a stateful stub server; /kickoff and knowledge updated Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RtoWD3tGh5bQtyaUkwLnVQ
Address the swarm review of the name fallback: - Retry only on modern herdr, and only when the holder (herdr agent get) runs in another worktree and our pane is back at its bare shell prompt; a holder in this worktree or an unreadable holder rolls back and exits 1, a pane that left its prompt stays blocked=unverified - Legacy herdr keeps its single loud failure (never observed refusing) - Validate and clamp WORK_SYSTEM_HERDR_NAME_TRIES (1..10) - Document herdr_name= in the script header, the /kickoff template, the README and the CHANGELOG (1.31.2) - Tests for each gate, the clamp, and a same-lane relaunch on the stateful two-workspace stub Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RtoWD3tGh5bQtyaUkwLnVQ
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.
Problem
herdr agent names are unique per server, not per workspace.
/kickofffor the same feature in two workspaces (server + app) derived the same label; the secondagent startgotagent_name_taken,herdr-launch.shclassified it as ambiguous, reportedblocked=unverifiedand left an empty shell tab that looked like a started lane.Fix (
herdr-launch.sh, modern herdr path)spike-tab):agent_name_takenis immediate (exit 1) and types nothing;herdr agent get <name>returns the holder's cwd.<label>-<repo>(main checkout dir name), then-2,-3—WORK_SYSTEM_HERDR_NAME_TRIES(default 4, clamped 1..10). The plain label stays the common case.blocked=unverified, tab left alone.fail_definitive: tab rolled back, exit 1,/kickoffshows its manual block — loud, no shell tab posing as a lane.agent renamewalks the same names. Legacy herdr (0.7.0–0.7.4) never retries (never observed refusing a name).herdr_name=stdout line (absent otherwise; additive).Also
/kickoffsuccess template, README, CHANGELOG 1.31.2, knowledge entry.Tests
test_herdr_launch.py: fallback + rename, no suffix when free, bounded exhaustion with rollback, holder-in-this-worktree, unreadable holder, pane-left-prompt, NAME_TRIES clamp, no double slug, legacy no-retry, and the incident end-to-end — two kickoffs of one label in two workspaces (plus a same-lane relaunch) against a stateful stub server.check-structure.pygreen.Review
Local
/swarm:review(claude lenses + cc-harness sol/grok): 10 findings, 9 agreed + 1 partial, all addressed indaea08e; recorded for the merge gate.🤖 Generated with Claude Code
https://claude.ai/code/session_01RtoWD3tGh5bQtyaUkwLnVQ