diff --git a/agent-roadmap/phase/automation-runtime-bridge/PHASE.md b/agent-roadmap/phase/automation-runtime-bridge/PHASE.md index 6bc9bb0..2ba6ea2 100644 --- a/agent-roadmap/phase/automation-runtime-bridge/PHASE.md +++ b/agent-roadmap/phase/automation-runtime-bridge/PHASE.md @@ -66,9 +66,9 @@ CLI 실행, specialized agent 등록, bootstrap/enrollment, 원격 터미널 브 - 경로: `agent-roadmap/archive/phase/automation-runtime-bridge/milestones/bridge-boundary-hardening.md` - 요약: 원격 터미널 브리지 POC 전에 남은 호환성/소유권 리스크를 Client HTTP lifecycle, Edge run surface, Node terminal core, typed adapter config 계약으로 고정한다. -- [계획] Codex App Server 스트리밍 전환 +- [검토중] Codex App Server 스트리밍 전환 - 경로: `agent-roadmap/phase/automation-runtime-bridge/milestones/codex-app-server-streaming-migration.md` - - 요약: Codex CLI target의 기본 `codex` profile을 app-server 기반으로 전환해 `item/agentMessage/delta`를 IOP delta stream으로 전달한다. + - 요약: Codex CLI target의 기본 `codex` profile을 app-server 기반으로 전환하고 실제 `codex` smoke까지 통과해 사용자 완료 확인과 archive 승인을 기다린다. - [계획] 원격 터미널 브리지 POC - 경로: `agent-roadmap/phase/automation-runtime-bridge/milestones/remote-terminal-bridge-poc.md` diff --git a/agent-roadmap/phase/automation-runtime-bridge/milestones/codex-app-server-streaming-migration.md b/agent-roadmap/phase/automation-runtime-bridge/milestones/codex-app-server-streaming-migration.md index feb77eb..5dcd040 100644 --- a/agent-roadmap/phase/automation-runtime-bridge/milestones/codex-app-server-streaming-migration.md +++ b/agent-roadmap/phase/automation-runtime-bridge/milestones/codex-app-server-streaming-migration.md @@ -1,4 +1,4 @@ - # Milestone: Codex App Server 스트리밍 전환 +# Milestone: Codex App Server 스트리밍 전환 ## 위치 @@ -12,7 +12,7 @@ Codex CLI adapter의 기본 `codex` target/profile을 `codex app-server` 기반 ## 상태 -[계획] +[검토중] ## 구현 잠금 @@ -35,23 +35,26 @@ Codex CLI adapter의 기본 `codex` target/profile을 `codex app-server` 기반 Codex app-server를 장기 JSON-RPC 실행기로 붙여 IOP CLI adapter의 세션/스트림 계약에 맞춘다. -- [ ] [mode-router] CLI adapter에 `codex-app-server` mode를 추가하고 executor/session reporter 라우팅을 분리한다. -- [ ] [rpc-lifecycle] `codex app-server --stdio` 프로세스를 시작한 뒤 `initialize`, `initialized`, `thread/start`, `turn/start` 흐름을 안정적으로 처리한다. -- [ ] [session-thread] IOP `session_id`별 app-server thread를 재사용하고 `/terminate-session`에서 해당 세션을 정리한다. -- [ ] [event-map] `item/agentMessage/delta`를 `RuntimeEvent{Type: delta}`로 전달하고, `turn/completed`는 complete, app-server error와 failed turn은 error로 매핑한다. -- [ ] [default-profile] `configs/edge.yaml`의 기본 `codex` profile을 app-server mode로 전환한다. 검증: `console.target`과 CLI profile key가 모두 `codex`인 상태에서 기본 Codex 실행이 app-server 경로를 사용한다. -- [ ] [exec-fallback] 기존 `codex-exec` 실행 경로는 회귀 테스트와 fallback profile 후보로 유지한다. -- [ ] [stream-smoke] `./scripts/dev/edge.sh`와 `./scripts/dev/node.sh` 시작 후 `codex` target으로 2-message 왕복에서 델타 스트림이 관찰된다. 검증: 두 메시지가 같은 logical session에서 완료되고, 적어도 한 turn에서 app-server delta event가 IOP delta로 relay된다. +- [x] [mode-router] CLI adapter에 `codex-app-server` mode를 추가하고 executor/session reporter 라우팅을 분리한다. +- [x] [rpc-lifecycle] `codex app-server --stdio` 프로세스를 시작한 뒤 `initialize`, `initialized`, `thread/start`, `turn/start` 흐름을 안정적으로 처리한다. +- [x] [session-thread] IOP `session_id`별 app-server thread를 재사용하고 `/terminate-session`에서 해당 세션을 정리한다. +- [x] [event-map] `item/agentMessage/delta`를 `RuntimeEvent{Type: delta}`로 전달하고, `turn/completed`는 complete, app-server error와 failed turn은 error로 매핑한다. +- [x] [default-profile] `configs/edge.yaml`의 기본 `codex` profile을 app-server mode로 전환한다. 검증: `console.target`과 CLI profile key가 모두 `codex`인 상태에서 기본 Codex 실행이 app-server 경로를 사용한다. +- [x] [exec-fallback] 기존 `codex-exec` 실행 경로는 회귀 테스트와 fallback profile 후보로 유지한다. +- [x] [stream-smoke] `./scripts/dev/edge.sh`와 `./scripts/dev/node.sh` 시작 후 `codex` target으로 2-message 왕복에서 델타 스트림이 관찰된다. 검증: 두 메시지가 같은 logical session에서 완료되고, 적어도 한 turn에서 app-server delta event가 IOP delta로 relay된다. ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증이 아직 충족되지 않았다. +- 상태: 요청됨 +- 요청일: 2026-06-12 +- 완료 근거: + - `01_appserver_rpc_client`, `02+01_session_events`, `03+02_default_profile`, `04+03_stream_smoke`의 `complete.log`가 모두 Roadmap Completion을 포함하며, 기능 Task id 7개가 모두 PASS로 매칭되었다. + - 실제 `codex` profile smoke에서 foreground 2회, background 1회, `mode=codex-app-server` session list, `/terminate-session`, `/status`가 통과했다. + - 최종 검증은 `go test ./apps/node/... ./apps/edge/... -count=1`, `./scripts/e2e-smoke.sh`, `IOP_E2E_PROFILE=codex IOP_E2E_RUN_TIMEOUT=120 IOP_E2E_STATUS_TIMEOUT=120 ./scripts/e2e-smoke.sh`로 확인되었다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 +- 리뷰 코멘트: 모든 기능 Task가 충족된 완료 후보 상태다. 사용자 확인 후 `[완료]` 전환과 archive 이동을 진행한다. ## 범위 제외