0b28b4cb0f
herdr 0.8.0 redesigned the agent API out from under the daemon: agent.start now launches a supported kind INTO an existing pane, env/cwd move to pane creation (tab.create / pane.split — the subscription-boundary seam now), agent.send is replaced by agent.prompt (self-submitting) plus agent.send_keys for the Enter nudge, and terminal ids are no longer valid agent.* targets. - AgentControl: start(name, kind, args, paneId); prompt/send_keys delivery; cached terminal→pane target translation (invalidated on agent_not_found). - WorkspaceControl: tab.create carries cwd+env; pane.split for legacy placement. - HerdrPeerLauncher: the seed pane IS the worker pane (no drop step); retry agent.start while the seed shell boots (agent_pane_busy). - FakeHerdr and the test suite model protocol 19 (unique seed panes, required kind/pane_id, prompt-based delivery); contract tests probe the seed shell instead of arbitrary-command agents, which protocol 19 removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SUTLvxtRPr2iT5u5g45BEs