Skip to content

feat(runtimes,worker): complete ADR Phase 1 — disable agent-owned MCP exposure, host-side Git transport, isolated child HOME (merge only with #673) #700

Description

@moncher-dev

Epic: #651
리포트 항목: A13 구현 — Phase 1b (ADR Phase 1 완성)docs/reports/2026-08-28-upstream-spec-drift-research.md (PR #650)

결정 반영 (2026-08-28, 트랜지션 전략)

ADR docs/adr/2026-08-28_agent-tool-isolation.md의 Phase 1을 1a(#672, 기능 손실 없음)1b(이 이슈) 로 나눈다. 1b는 ADR이 Phase 1에 정의한 나머지 항목이며, 에이전트 툴/푸시 능력 손실 구간이 생기지 않도록 #673(Phase 2)과 같은 릴리스에서만 병합한다.

⚠️ 병합 게이트: #673이 Codex·Claude 두 런타임 모두에서 host-side 툴 실행을 완료하기 전에는 이 PR을 main에 병합하지 않는다. 별도 PR로 리뷰하되 병합은 #673과 동시에(또는 직후에) 한다. Ready 승격은 #673 PR이 approve된 뒤에만.

범위 (ADR Phase 1 중 1a가 제외한 항목)

  • provider-native MCP subprocess 노출 비활성화 (Codex config.mcp_servers, Claude mcp.json 서버 항목) — #673의 host-side 전송으로 대체됨을 전제
  • child Git credential helper 제거 및 워커 post-run 인증 전송 대행 (assigned branch의 fetch/push); child는 커밋만 수행
  • child HOME / GH_CONFIG_DIR 격리 — allowlist가 호스트 gh auth 저장소를 노출하지 않음
  • broker secret(GITHUB_TOKEN_BROKER_SECRET)도 secretEnvironmentNames()에 포함해 child에서 제거; Linear raw 토큰(LINEAR_API_KEY/LINEAR_AUTHORIZATION) 제거 — Linear 자격증명은 #673의 host-side 경로로 공급
  • ADR "Upstream conformance and divergence" 절의 임시 divergence 문구를 완료 상태로 갱신

완료 기준

Blocked by: #672, #673

Metadata

Metadata

Assignees

Labels

changeset:minorRequires a minor changeset for CLI package releasesecuritySecurity / vulnerability disclosurespec-gapSymphony spec compliance gap

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions