Skip to content

Name every agent herdr detects, count them in their spaces, and write down how to add one - #180

Merged
cobanov merged 3 commits into
mainfrom
hc-124-agent-names
Oct 26, 2026
Merged

cobanov merged 3 commits into
mainfrom
hc-124-agent-names

Conversation

@woosal1337

@woosal1337 woosal1337 commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

herdr 0.9.5 detects 22 agents; the app's table named 7. A pane of any other showed herdr's id, so the Demo's opencode row read "Terminal in docs, opencode" and a Qoder pane "qodercli". This branch names every one, and writes down how an agent becomes a chat, one commit each. Agents the app cannot read stay terminal rows, as agreed on #172.

This branch sits on remaining-gaps (#177); merge it after #177.

Changes

  • Every agent herdr detects has a name (HC-124). Amp, Cline, Copilot, Cursor, Devin, Droid, Gemini, Hermes, Kilo, Kimi, Kiro, Maki, Muse, OpenCode, Qoder and Qwen Code get entries, each with herdr's integration name where herdr has one. Letta gains herdr's experimental letta integration, and Mastra Code, which herdr knows only from its integration, gets an entry. None of them has a reader, so the banner still offers only the integrations of agents the app reads.

    • agentTable.test.ts checks the table against what herdr 0.9.5 answers (server.agent_manifests and herdr integration status), kept in fixtures/herdr-agents.json. When herdr adds an agent, updating the fixture fails the test until the table names it. 28 of its 40 cases fail without the new entries.
  • docs/adding-an-agent.md (HC-127). Grok and Antigravity each touched a dozen places, and CLAUDE.md named a few. The guide lists all of them in order (the table, the reader, the store's lookup, tool names, prompts, the slash catalogue, the watcher, New chat, the Demo, a UI flow, the docs), with how to find herdr's id and integration for an agent and how to capture real logs and screens for fixtures. CLAUDE.md points to it.

    • Following it for Antigravity found one missed place: Welcome still said "Claude Code, Codex, Grok, Pi or OMP". It names Antigravity now, and regression/welcome checks it.
  • A space counts an agent the app cannot read (HC-135, 03f34e5). The Demo's docs space holds only OpenCode, and its card said "no agent" above its OpenCode row. The line now counts both kinds of agent, and what each is doing, so a waiting OpenCode reads "1 agent needs you". regression/space-layout reads "1 agent" on the docs space.

Test plan

  • npx tsc --noEmit: no errors
  • npx expo lint: no errors, no warnings
  • npx jest: 2,105 passed, 14 skipped
  • python3 -m unittest discover -s scripts -p 'test_*.py': passes
  • npm run e2e in Dark and Light on the iPhone 17 Pro simulator (iOS 27): 52 of 52, on a Release build of this branch together with the live-run branch (built with Xcode 27.1 from a fresh npm ci). Screenshots opened in both modes. space-layout rerun in both modes after 03f34e5.

Not in this PR

Readers for Cursor, Copilot, OpenCode and Qwen Code (HC-125): none of them is installed here, and a reader is written against real logs, never guessed.

@woosal1337 woosal1337 changed the title Name every agent herdr detects, and write down how to add one Name every agent herdr detects, count them in their spaces, and write down how to add one Oct 16, 2026

@cobanov cobanov left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good: every agent without a reader stays a terminal row, and New chat still offers only the six it can read. It goes in with the stack once #174 and #177 are ready. Small follow-up: once #181 is in, agent_info in scripts/e2e-live.sh is a third list of agents, so docs/adding-an-agent.md should name it.

The table knew 7 of the 22 agents herdr 0.9.5 detects. A pane of any other
showed herdr's id: "Terminal in docs, opencode", or "qodercli". Each now has
an entry with its name and, where herdr has one, its integration. They have
no reader, so each stays a terminal row; the integrations of agents the app
cannot read are still left out of the banner.

Letta's entry gains herdr's experimental `letta` integration, and Mastra
Code, which herdr knows only from its integration, gets an entry too.

agentTable.test.ts checks the table against what herdr 0.9.5 answers
(`server.agent_manifests` and `herdr integration status`), kept in a
fixture: a herdr that adds an agent fails it once the fixture is updated.
28 of its 40 cases fail without the new entries. regression/list-modes
now expects the Demo's opencode row to say "OpenCode" (HC-124).
Grok and Antigravity each touched a dozen places: the table, a reader, the
store's lookup, the tool names, the prompt parser, the slash catalogue, the
watcher, New chat, the Demo, a UI flow and the docs. CLAUDE.md named a few of
them. The guide lists all of them in order, with how to find herdr's id and
integration for an agent and how to capture real logs and screens for the
fixtures, so the next agent is one known path (HC-127). CLAUDE.md points to
it.

Following it for Antigravity found one place it missed: the Welcome screen
still listed "Claude Code, Codex, Grok, Pi or OMP". It names Antigravity now,
and regression/welcome checks it.
The Demo's docs space holds only OpenCode, and its card said "no agent · 1
tab · 1 pane" above a row reading "OpenCode · demo/docs". The line counted
the agents the app reads and nothing else; one it cannot read is a terminal
row (#172), and still an agent (HC-135).

`spaceStats` counts both, and what each is doing from its pane's status, so
a waiting OpenCode reads "1 agent needs you". The panes fallback counts each
pane once. rowText.test.ts covers alone, waiting and beside a Claude, and
fails without the change; regression/space-layout finds the docs space by
search and reads "1 agent" on it, in dark and light.
@cobanov

cobanov commented Oct 26, 2026

Copy link
Copy Markdown
Owner

Rebased onto the new #177; nothing else changed. tsc, lint and jest are green.

@cobanov
cobanov changed the base branch from remaining-gaps to main October 26, 2026 13:26
@cobanov
cobanov merged commit fef6304 into main Oct 26, 2026
2 of 4 checks passed
@cobanov
cobanov deleted the hc-124-agent-names branch October 26, 2026 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants