Repository navigation
feat(herdr): add the missing Herdr TUI keys to Herdr Desktop - #108
Conversation
Ctrl+A w opens the space/tab picker, Ctrl+A q hides the window, and Ctrl+A Ctrl+1..9 goes to the agent of the Nth space in sidebar order (the one that needs you most), handled by the refactoria-spaces mod.
Fleet review (glm)Lens: requirements + adversarial. The three missing TUI keys from #100 are added correctly: Suggestion (1)
Question (3)
Verdict: ready to merge |
Fleet review (deepseek)Lens: evidence + test design. The three additions (Ctrl+A w, Ctrl+A q, Ctrl+A Ctrl+1..9) are small and mostly consistent with what the repo already does: mod.open:picker is the same command cmd-p already uses (herdr/desktop/keys.json:59), app.hide is the same command cmd-h uses, pane.focus and space.select are the commands the spaces/agents mods already run, and URGENCY in the new pickAgent keeps the same relative order as RANK in the agents mod (blocked > done > working > idle). The blocking problem is the numbering: the new Ctrl+A Ctrl+1..9 resolves N against row position in the rendered list, while the collapsed sidebar labels each space with its index in spaces(), so the number on screen and the space the shortcut jumps to disagree whenever the two orders diverge (any remote machine, or a worktree listed before its main checkout). The PR's evidence for the rest is a live manual check plus herdr-app check; neither is reproducible from the diff, and the reordering cases above are exactly the ones a single-machine live test would not exercise. Blocking (1)
Suggestion (2)
Question (2)
Verdict: not ready |
Fleet review (qwen38)Lens: evidence. The PR adds the three missing Herdr TUI prefix keys (space picker, detach-as-hide, focus agent by number) with keys.json bindings, a nextCommand listener in the refactoria-spaces mod, and updated docs. I grounded the diff against the head source: agents do expose seq/pane/status/space (refactoria-agents/main.js:225,294 use the same fields and the same recency tie-break), so pickAgent's data access is sound, and the picker/hide bindings reuse commands the app already ships. The first-line verdicts disagree at this head, so I audited the disagreement independently: I confirmed the numbering defect at main.js:444/293/123-127 and am reporting it as blocking. The remaining verification claims (herdr-app check, live test of all three bindings) are assertion-only and not reproducible from the repo, and the live test evidently did not exercise the remote-machine or collapsed-sidebar cases where the numbering diverges. Blocking (1)
Suggestion (2)
Question (1)
Verdict: not ready |
Fleet review (mimo)Lens: requirements. The diff satisfies issue #100's acceptance criteria as extended by this PR: herdr/desktop/keys.json (head) contains every prefix key the issue lists, parses as valid JSON with no duplicate chords, and adds Suggestion (1)
Question (2)
Verdict: ready to merge |
Fleet review (glmflash)Lens: adversarial. The three missing TUI prefix keys from issue #100 are present in keys.json (w -> mod.open:picker, q -> app.hide, ctrl-1..9 -> refactoria-spaces.agent-N) and documented in docs/keymaps.md. I verified against the sibling mod that agents() items carry seq and use the same four statuses, so pickAgent's comparator is sound, and the spaceOrder() grouping (local first, then machines sorted, worktrees nested via ordered()) matches the expanded sidebar layout in grouped(). The remaining findings are edge-behavior questions around numbering parity in the collapsed sidebar and the unguarded nextCommand loop; none has a blocking failure scenario on the linked issue's criteria. Suggestion (2)
Question (3)
Verdict: ready to merge |
|
Correction for #109 is ready in #111 (commit b12ba28). This PR was already merged, so the fix is on a new branch. Compact labels and shortcuts now share visible machine/worktree ordering, folded groups consume no ordinal, and drag source indices remain unchanged. Seven Node regression tests, Herdr merge/asset checks, and CI Smoke checks pass. Native Desktop validation is unavailable in this workspace. |
Post-merge QA (glm)Lens: requirements + adversarial. Adds the three missing Herdr TUI prefix keys to Herdr Desktop: Ctrl+A w (picker), Ctrl+A q (app.hide), and Ctrl+A Ctrl+1..9 routed to refactoria-spaces agent-N commands. The mod numbers spaces exactly as documented (local machine first, then machines sorted by name) and picks the agent that needs attention most via a urgency/seq sort, falling back to space.select when a space has no agents, matching the PR's stated behavior. docs/keymaps.md is updated coherently, leaving only pane cycling, rename, and resize mode unmapped. keys.json syntax is valid and the bindings follow the existing ctrl-a pattern. Question (2)
Verdict: clean |
Post-merge QA (deepseek)Lens: evidence + test design. I checked the three assumptions the new bindings rest on: Suggestion (1)
Question (1)
Verdict: clean |
Why
#100 brought the Herdr TUI
Ctrl+Aprefix keys to Herdr Desktop. Three of them still had no Desktop equivalent: the workspace picker, detach, and focusing an agent by number.What
Ctrl+A w→mod.open:picker(Herdr's space/tab picker).Ctrl+A q→app.hide. Desktop has no detach; terminals keep running in herdr-core, so hiding the window is the closest equivalent.Ctrl+A Ctrl+1..9→refactoria-spaces.agent-N. Therefactoria-spacesmod now listens foragent-Nkey commands. It numbers spaces the way its sidebar shows them (this computer first, then machines by name, worktrees under their repo) and focuses the agent in space N that needs you most (blocked > done > working > idle, then most recent change). A space without agents is just shown.docs/keymaps.mdupdated; only pane cycling, pane rename and resize mode remain unmapped.Verification
herdr-app checkpasses for the mod, and the open windows reloadedkeys.jsonwitherrors: [].🤖 Generated with Claude Code
https://claude.ai/code/session_01A9D7phtHFYfszv6WKeXbiU