rename-dispatcher-daemon

Rename: dispatcher (daemon) + chat (TUI session); drop 'orchestrator' and 'coordinator'

Metadata

Statusdone
Assignedagent-71
Agent identityf51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e
Created2026-04-26T15:15:41.475047997+00:00
Started2026-04-26T18:01:34.527626216+00:00
Completed2026-04-26T18:59:04.053803595+00:00
Tagseval-scheduled
Eval score0.10
└ blocking impact0.10
└ completeness0.05
└ coordination overhead0.20
└ correctness0.10
└ downstream usability0.05
└ efficiency0.10
└ intent fidelity0.12
└ style adherence0.10

Description

Description

Eliminate the overloaded word 'coordinator' AND drop 'orchestrator' from the codebase. After this rename, exactly two role-nouns remain:

ConceptNew nameReplaces
Daemon that polls graph + spawns agentsdispatcher'coordinator' (daemon meaning)
Persistent LLM session the user talks to in the TUIchat'coordinator' (UI agent meaning) AND 'orchestrator'

User decision: 'orchestrator' is a bad idea — drop it. CLAUDE.md guidance previously addressed to 'the orchestrator' should be re-addressed to 'any chat agent' (whether sitting in the wg TUI or in the developer's terminal Claude Code session). 'Chat' covers both because the role IS the same — talk to the user, dispatch tasks via wg add, don't write code yourself.

The word 'coordinator' should not appear anywhere as a noun for any current concept after this rename. Same for 'orchestrator'.

Surfaces to update

Daemon → dispatcher:

  • Daemon log lines: [coordinator] tick #N[dispatcher] tick #N; [coordinator] Spawning agent for: ...[dispatcher] Spawning agent for: ...; [coordinator] Priority dispatch order: ...[dispatcher] Priority dispatch order: ...
  • wg service start output: 'Coordinator: max_agents=...' → 'Dispatcher: max_agents=...'
  • wg service status output similarly
  • Config: [coordinator] table → [dispatcher] (keep [coordinator] accepted as deprecated alias for one release with warning)
  • CLI flags: --coordinator-executor--dispatcher-executor; --no-coordinator-agent--no-chat-agent (deprecated aliases kept)

Coordinator-UI / orchestrator → chat:

  • Task id prefix: .coordinator-N.chat-N (BREAKING — see migration below)
  • Task tag: coordinator-loopchat-loop
  • Title text: 'Coordinator: ' → 'Chat: '
  • Log messages: 'Coordinator N task created via IPC' → 'Chat N task created via IPC'; 'Spawned by coordinator' → 'Spawned by chat ' or 'Spawned by chat agent'
  • Chat dir: .wg/chat/coordinator-N/.wg/chat/chat-N/ (or keep dir alias, less critical — this is already 'chat' in the path so minor)
  • IPC requests: CreateCoordinatorCreateChat; same for Delete/Archive/Stop/Interrupt/List variants (deprecated alias kept for one release)
  • TUI labels: 'New coordinator' → 'New chat'; tab labels say 'Chat: erik' instead of 'Coordinator: erik'
  • Source identifiers: CoordinatorAgent type → ChatAgent; coordinator_idchat_id; subprocess_coordinator_loopsubprocess_chat_loop; coordinator_statechat_state; etc.
  • Config keys: coordinator_agent (boolean enabling chat-agent feature) → chat_agent with deprecation alias
  • Any docs / agent prompts that say 'orchestrator' → 'chat agent' (CLAUDE.md is the main one)

CLAUDE.md rewrite:

  • 'Orchestrating agent role' section → 'Chat agent role'
  • 'The orchestrating agent (the one the user interacts with directly) is a thin orchestrator' → 'A chat agent (the one the user interacts with, whether in wg TUI or in their terminal Claude Code session) is a thin task-creator'
  • All other 'orchestrator' / 'orchestrating' usages updated to 'chat agent' or omitted

Migration for .coordinator-N.chat-N:

  • On dispatcher boot, scan graph for legacy .coordinator-N tasks. For each, leave id unchanged but log a one-time deprecation warning. The dispatcher's enumeration logic accepts BOTH prefixes for one release.
  • New chat creation always uses .chat-N prefix.
  • Add a migration command (wg migrate chat-rename) that rewrites task ids in graph.jsonl from .coordinator-N to .chat-N and updates dependents. Opt-in (user runs it when ready).
  • Do NOT auto-migrate existing graphs at boot — too risky.

Hard scope decisions

  • 'Coordination' as a general English word in docs ('how humans and AIs coordinate on work') stays — it's the noun 'a coordinator' / 'an orchestrator' that gets eliminated.
  • The CLAUDE.md role guidance does NOT distinguish between 'TUI chat' and 'IDE chat' anymore — both are 'chat agents' with the same behavior contract.

Verification of intent

Before merging: dispatch a test chat agent with the rewritten prompts and ask it 'In this codebase, what is a coordinator? What is an orchestrator?' The answer should describe both as deprecated names — neither word identifies any current role. If the agent still uses either word for a current concept, the rename is incomplete.

Validation

  • Failing tests first:
    • test_daemon_log_uses_dispatcher_terminology
    • test_chat_task_uses_chat_prefix (.chat-N for newly created chat agents)
    • test_legacy_coordinator_prefix_still_loaded (boot finds .coordinator-N legacy tasks and warns once)
    • test_config_legacy_coordinator_section_accepted_with_warning
    • test_cli_legacy_coordinator_executor_flag_accepted_with_warning
    • test_ipc_legacy_create_coordinator_accepted_with_warning
    • test_no_user_facing_coordinator_or_orchestrator_string (grep CLAUDE.md, AGENT-GUIDE.md, README.md, src/tui — assert neither 'coordinator' nor 'orchestrator' appears as a noun for a current role; only allowed in deprecation notes / migration guide / general-English usage like 'coordination')
  • Implementation makes all tests pass
  • cargo build + cargo test pass with no regressions
  • Manual smoke:
    • wg service start output says 'Dispatcher: ...' not 'Coordinator: ...'
    • daemon.log says [dispatcher] for daemon-tick log lines
    • wg tui new-chat dialog and tab bar say 'Chat: erik' (not 'Coordinator: erik') for newly created chat agents
    • Spawning a child task via the chat agent logs 'Spawned by chat ' (not 'Spawned by coordinator')
    • A graph with legacy .coordinator-N tasks loads cleanly, with a one-time deprecation warning, and wg migrate chat-rename rewrites them when run
    • CLAUDE.md no longer contains 'orchestrator' as a current role; chat agent guidance applies to both TUI and terminal Claude Code sessions
    • Read-aloud test: a fresh agent reading CLAUDE.md does NOT use 'coordinator' or 'orchestrator' as a noun for any current concept

Depends on

Required by

Messages 2 messages (2 unread)

  1. #1user2026-04-26T16:35:33.196908181+00:00read
    Spec amended: drop 'orchestrator' entirely. The TUI session is the 'chat'. CLAUDE.md guidance previously addressed to 'orchestrator' should be re-addressed to 'chat agent' — same role contract whether the chat sits in wg TUI or in the developer's terminal Claude Code. Two role-nouns total after rename: dispatcher (daemon), chat (TUI/terminal session). 'Coordinator' and 'orchestrator' both eliminated. See updated task description for details.
  2. #2rename-dispatcher-daemon2026-04-26T16:53:37.713241473+00:00delivered
    Acknowledged — will also eliminate 'orchestrator' from CLAUDE.md and docs, re-addressing to 'chat agent'. Two role-nouns: dispatcher (daemon), chat (TUI/terminal session).

Log