# relay-baton v0.8.0 릴리즈 노트 상태: **Released** 날짜: 2026-05 테마: **Adapter Expansion + Agent Room (first cut)** — Codex/Claude를 넘어 확장하고, 첫 인터랙티브 멀티 에이전트 "room"을 세운다. 기존 안전 규칙은 하나도 깨지 않는다. ## 요약 v0.8은 OpenCode / Gemini / Aider opt-in 어댑터 스캐폴드, project별 fallback 패턴 override, OS CI 매트릭스, 그리고 **Agent Room** 첫 컷 (`relay-baton chat`, alias `room`)을 추가한다. room은 **턴 기반, confirmation-first CLI REPL**이다 — 실시간 chat 플랫폼이 아니고, daemon도 아니며, Ink TUI도 아니다(TUI는 계속 display 전용). 실제 agent 실행은 항상 prompt preview를 보여주고 spawn 전에 묻는다. ## 추가 (Added) - **어댑터 스캐폴드** — `OpenCodeAdapter`, `GeminiAdapter`, `AiderAdapter`. 각각 미러 테스트가 있고 `adapterFor`와 `defaultConfig.agents`에 연결됨. 기본값에 approval-bypass / auto-commit 플래그 없음. Codex/Claude는 여전히 first-class, 신규 3종은 `--with` / config로 opt-in. - **project별 fallback override** — `BatonProject.fallbackPatterns?`와 `resolveFallbackPatterns(global, projectPatterns)`로 project 패턴을 global 리스트 위에 overlay(뒤에 append, case-insensitive dedupe). `run`이 active/ 선택된 project에 대해 overlay를 사용. - **OS CI 매트릭스** — GitHub Actions가 `ubuntu-latest`, `windows-latest`, `macos-latest`(Node 20)에서 build + test 실행. - **Agent Room 첫 컷** — `relay-baton chat` / `room`: - `RoomEngine`(순수, model-free dispatcher) + `RoomCommands`(슬래시 커맨드 문법). 엔진은 입력을 파싱하고 대화 상대 agent를 추적하고 conversation event를 기록하며 action을 반환한다 — 직접 agent를 spawn하지 않는다. - **user / claude / codex / relay-baton** 메시지를 라벨로 구분, `.ai-session/conversation.jsonl`에 기록. - 슬래시 커맨드: `/agent claude|codex`, `/plan `, `/execute`, `/review`, `/handoff`, `/budget`, `/status`, `/help`, `/exit`. - **Confirmation-first**: `/plan`, `/execute`, `/handoff`는 prompt preview를 보여주고 명시적 `y` 입력 전에는 아무것도 실행하지 않는다. `/review`, `/budget`, `/status`는 read-only / no-model이라 즉시 실행. - Claude = planner/reviewer 기본, Codex = executor. ## 변경 (Changed) - CLI 버전을 `0.8.0`으로 올림. ## 테스트 - `ScaffoldAdapters.test.ts` — identity, 기본 args, 바이너리 없을 때 `detectAvailable`, 기본값에 금지 플래그 없음 가드. - `FallbackDetector.test.ts` — `resolveFallbackPatterns` overlay/dedupe와 overlay로 만든 detector가 project 전용 문구를 잡는지. - `RoomEngine.test.ts` — 슬래시 파싱, agent 전환 + event 기록, confirmation 게이팅(run vs read-only), 에러 경로. ## 포함되지 않음 (계속 보류) - conversation + context **TUI 패널** 레이아웃 → 추후(TUI는 계속 display 전용, agent를 spawn하지 않음). - bounded multi-turn `/continue --max-steps`, `/replan`, session replay, daemon 프로토타입 → **v0.9**. - semantic summarization, exact tokenizer, 자동 commit/push/PR — 영구 범위 밖. ## 업그레이드 노트 - 완전히 additive. config 마이그레이션 불필요. 신규 어댑터와 `fallbackPatterns`는 선택사항. room은 명시적 confirmation 후에만 agent를 spawn하며 기존 plan/execute/handoff 명령(동일한 auth-safe subprocess 경로)을 재사용한다. ## 검증 명령 ```bash pnpm build pnpm test relay-baton chat # /help, 그다음 /review 또는 /status (모델 호출 없음), /exit relay-baton doctor --deep relay-baton verify ``` `chat`은 명시적 `y` 확인 없이는 agent를 spawn하지 않는다. `/review`, `/budget`, `/status`는 모델 호출이 전혀 없다.