# relay-baton v0.8.0 Release Notes Status: **Released** Date: 2026-05 Theme: **Adapter Expansion + Agent Room (first cut)** — grow beyond Codex/Claude and stand up the first interactive, multi-agent "room" — without breaking a single existing safety rail. ## Summary v0.8 adds opt-in adapter scaffolds for OpenCode / Gemini / Aider, project-level fallback-pattern overrides, an OS CI matrix, and the first cut of the **Agent Room**: `relay-baton chat` (alias `room`). The room is a **turn-based, confirmation-first CLI REPL** — explicitly *not* a realtime chat platform, not a daemon, and not the Ink TUI (which stays display-only). Every real agent run shows a prompt preview and asks before spawning. ## Added - **Adapter scaffolds** — `OpenCodeAdapter`, `GeminiAdapter`, `AiderAdapter`, each with a mirror test and wired into `adapterFor` and `defaultConfig.agents`. Defaults carry no approval-bypass / auto-commit flags. Codex and Claude remain first-class; the new three are opt-in via `--with` / config. - **Project-level fallback overrides** — `BatonProject.fallbackPatterns?` plus `resolveFallbackPatterns(global, projectPatterns)` overlays a project's patterns onto the global list (appended, deduped case-insensitively). `run` uses the overlay for the active/selected project. - **OS CI matrix** — GitHub Actions now runs build + test on `ubuntu-latest`, `windows-latest`, and `macos-latest` (Node 20). - **Agent Room first cut** — `relay-baton chat` / `room`: - `RoomEngine` (pure, model-free dispatcher) + `RoomCommands` (slash-command grammar). The engine parses input, tracks the addressed agent, persists conversation events, and returns an action — it never spawns an agent itself. - Distinct, labeled messages for **user / claude / codex / relay-baton**, logged to `.ai-session/conversation.jsonl`. - Slash commands: `/agent claude|codex`, `/plan `, `/execute`, `/review`, `/handoff`, `/budget`, `/status`, `/help`, `/exit`. - **Confirmation-first**: `/plan`, `/execute`, `/handoff` show a prompt preview and require an explicit `y` before anything runs. `/review`, `/budget`, `/status` are read-only / no-model and run immediately. - Claude is the planner/reviewer default; Codex is the executor. ## Changed - CLI version bumped to `0.8.0`. ## Tests - `ScaffoldAdapters.test.ts` — identity, default args, missing-binary `detectAvailable`, and a guard that no forbidden flags appear in defaults. - `FallbackDetector.test.ts` — `resolveFallbackPatterns` overlay/dedupe and a detector built from the overlay catching a project-only phrase. - `RoomEngine.test.ts` — slash parsing, agent switching + event logging, confirmation gating (run vs read-only), and error paths. ## Not included (still deferred) - Conversation + context **TUI panel** layout → later (the TUI stays display-only; it never spawns agents). - Bounded multi-turn `/continue --max-steps`, `/replan`, session replay, daemon prototype → **v0.9**. - Semantic summarization, exact tokenizers, auto commit/push/PR — permanently out of scope. ## Upgrade notes - Fully additive. No config migration required. New adapters and `fallbackPatterns` are optional. The room only spawns an agent after an explicit confirmation and reuses the existing plan/execute/handoff commands (same auth-safe subprocess path). ## Verification commands ```bash pnpm build pnpm test relay-baton chat # /help, then /review or /status (no model), /exit relay-baton doctor --deep relay-baton verify ``` `chat` never spawns an agent without an explicit `y` confirmation; `/review`, `/budget`, `/status` make no model calls at all.