- Add agent-task/m-cross-os-runner-bootstrap with subtasks (G07, G06) - Update roadmap phases and milestones for control-plane-product-surface - Add runner.proto definitions and regenerate code - Update HTTP server handler for runner management - Add smoke tests and update local test configurations - Update README with latest project status
4.9 KiB
PLAN: bootstrap 설치 binary 확인 계약
이 파일을 읽는 구현 에이전트에게
이 계획은 [oto-binary] 완료만 목표로 하며 02_unix_bootstrap, 03+01_windows_bootstrap 완료 후 실행해야 한다. 두 predecessor의 complete.log가 없으면 구현을 시작하지 않는다.
배경
마일스톤은 bootstrap으로 설치된 oto binary 실행 경로와 버전 확인 방법을 OS별로 고정해야 한다. Unix/Windows script가 완성된 뒤 각 script에 binary 확인 절차와 테스트 fixture를 추가하는 후속 작업이다.
Roadmap Targets
- Milestone:
agent-roadmap/phase/control-plane-product-surface/milestones/cross-os-runner-bootstrap.md - Epic:
[bootstrap-platforms] Cross-OS bootstrap contract - Task id:
[oto-binary] - Completion mode: check-on-pass
분석 결과
읽은 파일
apps/runner/assets/script/shell/oto_agent_bootstrap.shapps/runner/test/oto_agent_bootstrap_script_test.dartservices/core/internal/httpserver/oto_agent_bootstrap.shservices/core/internal/httpserver/server_test.goagent-test/local/rules.mdagent-test/local/agent-smoke.md
테스트 환경 규칙
기본 환경은 local이다. binary 확인은 script fixture에서 fake oto 실행 파일로 deterministic하게 검증할 수 있다.
테스트 커버리지 공백
현재 테스트는 archive에서 oto가 설치되고 background 실행 PID가 생기는지만 본다. 설치 직후 oto --version 또는 동등한 확인 절차는 없다.
심볼 참조
Unix script의 fake oto fixture와 Windows PowerShell fixture가 직접 검증 대상이다. Core embedded copy는 script 변경 시 일치해야 한다.
분할 판단
이 작업은 04+02,03_binary_contract로 Unix와 Windows bootstrap 구현에 의존한다. API나 registry 연결을 바꾸지 않는 bounded contract라 local-G06으로 충분하다.
범위 결정 근거
release asset 생성 자동화나 실제 release upload는 하지 않는다. 설치된 binary 실행 가능성/버전 확인 계약만 고정한다.
빌드 등급
local-G06: 선행 script가 완료되면 fake binary fixture와 deterministic tests 중심의 제한된 변경이다.
의존 관계 및 구현 순서
- 선행:
agent-task/m-cross-os-runner-bootstrap/02_unix_bootstrap/complete.log - 선행:
agent-task/m-cross-os-runner-bootstrap/03+01_windows_bootstrap/complete.log - 후속:
05+01,02,03_node_connect
구현 체크리스트
- Unix bootstrap이 설치된
otobinary 실행 경로를 확인하고 버전 또는 동등한 health command를 실행한다. - Windows bootstrap이 설치된
oto.exe실행 경로를 확인하고 버전 또는 동등한 health command를 실행한다. - fake binary fixture가 성공/실패 케이스를 검증하고 실패 출력에 token을 노출하지 않는다.
- README 또는 agent-smoke의 binary 확인 기준이 바뀌면 함께 갱신한다.
- CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.
[BINARY-1] Unix binary 확인
문제: archive extraction 이후 binary 자체 검증이 없다.
해결 방법: 설치된 oto 경로에서 --version 또는 안정적인 health command를 실행하고 실패 시 설치를 중단한다.
수정 파일 및 체크리스트:
apps/runner/assets/script/shell/oto_agent_bootstrap.shservices/core/internal/httpserver/oto_agent_bootstrap.shapps/runner/test/oto_agent_bootstrap_script_test.dart
테스트 작성: fake oto가 version 성공/실패를 반환하는 케이스를 추가한다.
중간 검증: cd apps/runner && dart test test/oto_agent_bootstrap_script_test.dart
[BINARY-2] Windows binary 확인
문제: Windows zip extraction 후 oto.exe 검증 계약이 필요하다.
해결 방법: PowerShell script fixture에서 설치 경로의 oto.exe 존재와 version command를 검증한다.
수정 파일 및 체크리스트:
apps/runner/assets/script/powershell/oto_agent_bootstrap.ps1- Windows bootstrap test file
services/core/internal/httpserver/oto_agent_bootstrap.ps1
테스트 작성: text/parser fixture로 oto.exe 경로와 version invocation을 확인한다.
중간 검증: cd services/core && go test ./...
수정 파일 요약
| 경로 | 목적 |
|---|---|
| Unix/Windows bootstrap scripts | 설치 binary 확인 계약 |
| runner bootstrap tests | fake binary 성공/실패 fixture |
| Core embedded assets | script copy 동기화 |
최종 검증
cd apps/runner && dart test test/oto_agent_bootstrap_script_test.dartcd services/core && go test ./...
모든 코드 변경 완료 후 반드시 CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.