docs/ROADMAP.md
Roadmap: Clanky + herdr, AgentRoom Retired
This document is the working plan for retiring AgentRoom and consolidating on two systems: Clanky (the personal agent) and herdr (the terminal agent multiplexer). It is the source of truth for in-flight migration state; other docs describe the target model and may briefly lead the code.
Decisions
- AgentRoom is retired. Clanky and herdr together cover its job. herdr is the multi-agent substrate: panes, agent status, waits, swarms. Clanky is the personal layer: persona, memory, profile, gateways, voice.
- One orchestration substrate. Clanky's real multi-agent work runs as herdr panes, driven by the herdr/herdr-swarm skills. Discord gateway subagents remain only for side-request multitasking while the main session is busy, and should run as herdr panes when herdr is available.
- Gateway code moves in-repo.
@agentroom/chat-discordis vendored into this repo.discord-mcpmerges in as a workspace package with the CLI and skill as the canonical interface; the MCP server entrypoint is dropped (recoverable from git history). - Remote access is a herdr feature, not a separate daemon. herdr grows an HTTP/WS bridge over its socket API, tailnet-bound, with pairing and push hooks. The agent-room-ios app is rebranded as the Clanky iOS app and pointed at that bridge.
- Push notifications: ntfy (or tailnet polling) while single-user; a small hosted APNs relay when the app is distributed, because APNs provider keys are developer-scoped and cannot ship inside user-run daemons.
Phase 1: Vendor the gateway dependencies
Goal: clanky builds standalone with no link: deps on sibling repos.
- Copy
agent-room/packages/integrations/chat-discordintopackages/clanky-chat-discord; update imports inagentDiscordGateway.ts,agentDiscordClient.ts,agentDiscordVoice.ts, andtest/runtime-smoke.ts. - Move
discord_mcpintopackages/discord-mcp(workspace:*). Keepoperator.ts(library) andcli.ts; deletemcp.ts; point theclanky-discord-operatorskill at the CLI; remove the auto-registered MCP server fromclanky-core/src/mcp/client.ts. pnpm install && pnpm check && pnpm smokegreen.- Archive
Volpestyle/agent-roomandVolpestyle/discord_mcpon GitHub.
Phase 2: Delete the room concept from code
- Remove
packages/clanky-core/src/agentroom-config.tsand theAGENTROOMbranches inchat-mode.ts,agent-tools.ts,mcp/client.ts,setupWizard.ts, and smoke tests. - Remove
CLANKY_AGENTROOM_MCPand.agentroom/config.yamladoption.CLANKY_CHAT_GATEWAY_OWNERsimplifies toagent(default) oroff; theroomvalue disappears. - Remove
/setup agentroomfrom the setup wizard.
Phase 3: herdr as the orchestration substrate
- herdr: add pane metadata/tags (e.g.
agent=clanky,parent=<pane>,task=<one-liner>) settable over the socket API, so a remote client can render Clanky's subagent tree instead of a flat pane list. - Clanky: when
HERDR_ENV=1, spawn subagents as tagged herdr panes; keep the in-process path only as a fallback outside herdr. UnifydiscordSubagentCoordinator.tsanddiscordVoiceSubagentCoordinator.tson that mechanism. - Done:
skills/clanky-herdr-operatorships with Clanky — spawn/harvest/ cleanup scripts, workers as herdr agents namedclanky:<slug>in aclanky:<run-id>tab, DONE/BLOCKED sentinel files under~/.clanky/herdr-runsas the completion authority, and an attribution contract for remote clients.
Phase 4: Remote access (herdr bridge + Clanky iOS)
- herdr daemon mode: HTTP/WS bridge over the existing socket API, tailnet-bound, serving roughly the contract the iOS app already expects: list workspaces/panes with status and tags, read output, send input/keys, spawn/stop, health, pairing grant, device registration.
- Notification hook on
blocked/donetransitions: ntfy first, APNs relay behind the same interface later. - iOS app: repo renamed to
clanky-ios; repoint the API client at the herdr bridge, delete room-only models (room agents, messages/events, channels). Home screen becomes Clanky: his thread (terminal view + composer) and his subagent tree; the raw workspace/pane browser becomes a secondary view. - Deferred: upstreaming the bridge to
ogulcancelik/herdr(would shed fork maintenance; requires their discussion-first contribution flow).
Status
- Docs rewritten to the target model. Done.
- Phase 1 done:
packages/clanky-chat-discordandpackages/discord-mcpare workspace packages; nolink:deps remain. Archive theVolpestyle/agent-roomandVolpestyle/discord_mcpGitHub repos. - Phase 2 done: no room concept remains in the runtime;
CLANKY_CHAT_GATEWAY_OWNERisagentoroff. - Phase 3 partially done: the
clanky-herdr-operatorbundled skill is the agent-facing fan-out path. Remaining: herdr pane metadata/tags and routing Clanky's own subagent coordinators through herdr panes. - Phase 4 herdr side done:
herdr bridge(HTTP/WS over the socket API, bearer auth) merged to Volpestyle/herdr master; fork synced to upstream v0.6.10. iOS repoint/rebrand in progress inclanky-ios.
