From 7e51ef913dc696b2847091b983959004ca2f245b Mon Sep 17 00:00:00 2001 From: toki Date: Sun, 21 Jun 2026 05:56:48 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20runner-proto-socket-transport-harde?= =?UTF-8?q?ning=20=EB=A7=88=EC=9D=BC=EC=8A=A4=ED=86=A4=EC=9D=84=20archive?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - runner-proto-socket-transport-hardening 마일스톤을 agent-roadmap/archive로 이동 - 관련 SDD 문서를 archive로 이동 - PHASE.md 업데이트 --- ...runner-proto-socket-transport-hardening.md | 25 +++++++++++-------- .../SDD.md | 0 .../control-plane-product-surface/PHASE.md | 4 +-- 3 files changed, 16 insertions(+), 13 deletions(-) rename agent-roadmap/{ => archive}/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md (80%) rename agent-roadmap/{ => archive}/sdd/control-plane-product-surface/runner-proto-socket-transport-hardening/SDD.md (100%) diff --git a/agent-roadmap/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md b/agent-roadmap/archive/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md similarity index 80% rename from agent-roadmap/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md rename to agent-roadmap/archive/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md index 2480dc0..3ce515a 100644 --- a/agent-roadmap/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md +++ b/agent-roadmap/archive/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md @@ -12,7 +12,7 @@ OTO Server와 runner 사이의 기본 내부 연결을 proto-socket 장기 세 ## 상태 -[진행중] +[완료] ## 구현 잠금 @@ -42,19 +42,22 @@ OTO Server와 runner 사이의 기본 내부 연결을 proto-socket 장기 세 기본 runner transport를 proto-socket으로 고정하고, HTTP polling 잔재를 compatibility 경계로 격리한다. - [x] [socket-contract] register, heartbeat, RunRequest push, execution/log/artifact report의 server-runner 방향성과 메시지 계약을 SDD와 domain rule에 고정한다. 검증: SDD Acceptance Scenario와 domain rule이 HTTP polling을 기본 경로로 설명하지 않는다. -- [ ] [session-lifecycle] runner id reconciliation, duplicate connection close, disconnect/timeout, reconnect 후보, heartbeat 실패 처리의 socket session lifecycle을 정리한다. 검증: Go/Dart unit 또는 smoke가 server-assigned runner id와 disconnect 상태 전이를 확인한다. -- [ ] [dispatch-state] queued job dispatch, invalid RunRequest 실패 처리, active execution gate, terminal state 전이를 socket dispatch 기준으로 정리한다. 검증: socket dispatch 테스트가 queued -> running -> terminal 및 invalid input -> failed를 확인한다. -- [ ] [runner-actions] cancel/status/self-update의 operator HTTP action과 runner socket message 방향을 정리하고 구현 또는 명시적 범위 제외로 고정한다. 검증: cancel이 runner 실행과 store state 사이에서 모순된 terminal report를 만들지 않는다. -- [ ] [compat-boundary] HTTP runner job claim/report/log/artifact 경로를 compatibility로 격리하고 기본 agent loop와 기본 smoke에서 제거한다. 검증: `OtoServerSocketRegistrationClient`가 기본이고 HTTP polling 테스트는 compatibility 이름/그룹으로만 남는다. -- [ ] [socket-smoke] local/remote smoke 기준을 proto-socket 연결 중심으로 갱신한다. 검증: `cd services/core && go test ./...`, `cd apps/runner && dart analyze`, agent socket smoke test가 통과한다. +- [x] [session-lifecycle] runner id reconciliation, duplicate connection close, disconnect/timeout, reconnect 후보, heartbeat 실패 처리의 socket session lifecycle을 정리한다. 검증: Go/Dart unit 또는 smoke가 server-assigned runner id와 disconnect 상태 전이를 확인한다. +- [x] [dispatch-state] queued job dispatch, invalid RunRequest 실패 처리, active execution gate, terminal state 전이를 socket dispatch 기준으로 정리한다. 검증: socket dispatch 테스트가 queued -> running -> terminal 및 invalid input -> failed를 확인한다. +- [x] [runner-actions] cancel/status/self-update의 operator HTTP action과 runner socket message 방향을 정리하고 구현 또는 명시적 범위 제외로 고정한다. 검증: cancel이 runner 실행과 store state 사이에서 모순된 terminal report를 만들지 않는다. +- [x] [compat-boundary] HTTP runner job claim/report/log/artifact 경로를 compatibility로 격리하고 기본 agent loop와 기본 smoke에서 제거한다. 검증: `OtoServerSocketRegistrationClient`가 기본이고 HTTP polling 테스트는 compatibility 이름/그룹으로만 남는다. +- [x] [socket-smoke] local/remote smoke 기준을 proto-socket 연결 중심으로 갱신한다. 검증: `cd services/core && go test ./...`, `cd apps/runner && dart analyze`, agent socket smoke test가 통과한다. ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 없음 -- 검토 항목: 없음 -- 리뷰 코멘트: 없음 +- 상태: 통과 +- 요청일: 2026-06-21 +- 완료 근거: + - `socket-contract`는 SDD와 agent domain rule의 proto-socket 기본 경로/HTTP compatibility 경계 정리로 완료되어 있다. + - `agent-task/archive/2026/06/m-runner-proto-socket-transport-hardening/*/complete.log`의 `Roadmap Completion`과 `Spec Completion`이 `session-lifecycle`, `dispatch-state`, `runner-actions`, `compat-boundary`, `socket-smoke` 및 SDD `S02`~`S06`을 PASS로 기록했다. + - 최종 검증 근거에는 `cd services/core && go test -count=1 ./...`, `cd apps/runner && dart analyze`, runner/agent Dart smoke tests, `git diff --check` PASS가 포함된다. +- 검토 항목: 코드레벨 완료 검토와 로컬 검증 통과로 `[완료]` 전환 및 archive 이동을 수행한다. +- 리뷰 코멘트: 구현 잠금과 SDD 잠금은 해제되어 있고 남은 결정 필요 항목은 없다. Workspace lock 관련 항목은 없다. ## 범위 제외 diff --git a/agent-roadmap/sdd/control-plane-product-surface/runner-proto-socket-transport-hardening/SDD.md b/agent-roadmap/archive/sdd/control-plane-product-surface/runner-proto-socket-transport-hardening/SDD.md similarity index 100% rename from agent-roadmap/sdd/control-plane-product-surface/runner-proto-socket-transport-hardening/SDD.md rename to agent-roadmap/archive/sdd/control-plane-product-surface/runner-proto-socket-transport-hardening/SDD.md diff --git a/agent-roadmap/phase/control-plane-product-surface/PHASE.md b/agent-roadmap/phase/control-plane-product-surface/PHASE.md index 65b504d..81c638c 100644 --- a/agent-roadmap/phase/control-plane-product-surface/PHASE.md +++ b/agent-roadmap/phase/control-plane-product-surface/PHASE.md @@ -27,8 +27,8 @@ - [완료] Control Plane 운영 액션 표면 - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/control-plane-operator-actions.md` - 요약: 기존 OTO Core write endpoint를 UI/adapter action 표면으로 연결하되, 상태 전이와 실패/확인 UX는 SDD로 먼저 잠근다. -- [진행중] Runner proto-socket transport hardening - - 경로: `agent-roadmap/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md` +- [완료] Runner proto-socket transport hardening + - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md` - 요약: OTO Server와 runner의 기본 내부 연결을 proto-socket push/session 기준으로 다듬고, HTTP job claim/polling 잔존 경로를 compatibility 경계로 축소한다. - [스케치] Control Plane 운영 보안·감사 표면 - 경로: `agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md`