# relay-baton v0.9.0 릴리즈 노트 상태: **Released** 날짜: 2026-05 테마: **Automation & Runtime (bounded)** — *bounded* 멀티턴 continue, session replay, re-plan, adaptive compression을 추가한다. 단, unbounded autopilot, daemon, 자동 commit은 절대 도입하지 않는다. ## 요약 v0.9는 Agent Room을 single-shot REPL에서 **bounded** 런타임으로 바꾼다. 새 `LoopController`는 순수·model-free 가드로, plan↔execute 스텝 수를 제한하고 no-progress(divergence)나 budget 압박에서 멈춘다. room에 `/continue --max-steps N`(기본 3, 최대 20), `/replan`(현재 plan 백업 후), `/replay`가 추가된다. 새 `relay-baton replay` 명령은 기록된 conversation 타임라인을 렌더한다. agent별 **adaptive compression threshold**로 컨텍스트가 큰 agent는 compaction 전에 더 hot하게 돌 수 있다. 전부 confirmation-first, subprocess 전용을 유지한다. ## 추가 (Added) - **bounded loop controller** — `LoopController`(core `runtime/`). 순수· model-free: 호출자가 스텝을 실행하고 observation(`budgetRatio`, `progressKey`)을 보고하면 진행 여부를 답한다. `max-steps`, `budget`, `divergence`(progress key 반복), `explicit-stop`에서 멈춘다. 직접 아무것도 spawn하지 않으며 "continue"는 항상 *bounded*다. - **session replay** — `ConversationReplay`(core)가 `.ai-session/conversation.jsonl`을 정렬·필터 가능한 타임라인과 결정론적 요약(role/kind별 카운트, first/last 타임스탬프)으로 투영한다. 새 read-only CLI 명령 `relay-baton replay`(`--json`, `--session`, `--kind`, `--limit`). 모델 호출 없음. - **room bounded continue / replan / replay** — 새 슬래시 커맨드: - `/continue --max-steps N`(또는 `-n N`, 또는 숫자만) — bounded plan↔execute 루프를 preview한 뒤 confirmation-first로 실행. 각 스텝은 `LoopController`로 게이팅되며 git working-tree 시그니처가 변하지 않으면 조기 종료. - `/replan ` — 현재 `plan.md`를 백업한 뒤 planner 실행. - `/replay` — read-only conversation 타임라인(확인·모델 없음). - **adaptive compression threshold** — `RelayBatonConfig.contextCompression .perAgent?`와 `resolveCompressionThreshold(config, agent)`. agent별 override가 global threshold보다 우선하고 `[0,1]`로 클램프. `ContextCompressor.compressIfNeeded`가 optional `agent`를 받는다. ## 변경 (Changed) - CLI 버전을 `0.9.0`으로 올림. - room help/커맨드 문법 확장(`/continue`, `/replan`, `/replay`). ## 포함되지 않음 (계속 보류) - 비대화형 `run --until` 오케스트레이션 → 추후 후보. - daemon / 상시 프로토타입 → **명시적 범위 밖**(로드맵 후보일 뿐, relay-baton은 로컬·on-demand harness 유지). - semantic summarization, exact tokenizer, 자동 commit/push/PR — 영구 범위 밖. ## 업그레이드 노트 - 완전히 additive. config 마이그레이션 불필요. `contextCompression.perAgent`는 선택사항. `/continue`는 설계상 bounded(기본 3스텝, 최대 20)이며 agent 실행 전에 명시적 확인을 한 번 받는다. ## 검증 명령 ```bash pnpm build pnpm test relay-baton replay --json # read-only 타임라인, 모델 호출 없음 relay-baton chat # /help, 그다음 /continue --max-steps 2 (확인), /replan, /replay, /exit relay-baton verify ``` `continue`는 절대 unbounded로 돌지 않는다: `--max-steps`로 제한되고 no-progress 나 budget 압박에서 멈춘다. `replay`/`/replay`는 모델 호출이 전혀 없다.