You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(tools,worker): pass the normalized issue (id, nativeRef) as tool execution context, remove the dead dynamic-tool path, document per-tool contracts #673
dead 경로: dynamic_tool_call_request/response는 Codex v2 메서드가 아님(runtime.ts:131, index.ts:1255-1276); runToolProcess(index.ts:2176-2219)가 raw JSON을 JSON-RPC 기대 MCP 서버 stdin에 써서 항상 "{}"
툴 문서: packages/tracker-github/README.md(3줄), packages/tracker-linear/README.md(7줄), README.md:726 한 줄
할 일
Codex: thread/start에서 dynamic tool spec advertise(config.mcp_servers 대신), item/tool/call 요청을 워커가 받아 tool-*-graphql의 executeTool()을 in-process 호출, 결과를 JSON-RPC 응답으로 반환; 미지원 툴 이름은 구조화 실패 + 세션 계속
Claude: 워커가 MCP 서버를 host-side로 띄우고 HTTP/SSE transport로 노출, mcp.json에는 URL + 워커 발급 세션 토큰만 기록(세션 종료 시 폐기)
Epic: #651
리포트 항목: A13 구현 — 2단계, E2, A16(툴) —
docs/reports/2026-08-28-upstream-spec-drift-research.md(PR #650)결정 반영 (2026-08-28)
#671에서 (a) host-side 실행, 2단계 확정. 이 이슈는 2단계: 툴을 호스트가 실행하고 정규화 issue 컨텍스트를 넘기며, dead dynamic-tool 경로를 실제 프로토콜로 교체한다.
병합 게이트 (2026-08-28, 트랜지션 전략)
문제
§10.5: 런타임은 툴 호출을 host-side로 실행하고(MUST), 정규화된 이슈(
issue.id,native_ref)를 실행 컨텍스트로 전달하며(SHOULD), 각 어댑터는 툴 이름/스키마/변경 가능성/scope/오류·rate-limit 의미론을 문서화한다(MUST). 현재 툴은 에이전트가 spawn하는 MCP subprocess이고GITHUB_PROJECT_ID만 받으며, 워커의 dynamic-tool 경로는 dead code다.현재 상태 (증거)
tool-github-graphql/src/mcp-entry.ts:34-65(GITHUB_PROJECT_ID만),tool-linear-graphql/src/mcp-entry.ts:22-28;LINEAR_ISSUE_ID는 allowlist에서 걸러짐runtime.ts:536-546dynamic_tool_call_request/response는 Codex v2 메서드가 아님(runtime.ts:131,index.ts:1255-1276);runToolProcess(index.ts:2176-2219)가 raw JSON을 JSON-RPC 기대 MCP 서버 stdin에 써서 항상"{}"packages/tracker-github/README.md(3줄),packages/tracker-linear/README.md(7줄),README.md:726한 줄할 일
thread/start에서 dynamic tool spec advertise(config.mcp_servers대신),item/tool/call요청을 워커가 받아tool-*-graphql의executeTool()을 in-process 호출, 결과를 JSON-RPC 응답으로 반환; 미지원 툴 이름은 구조화 실패 + 세션 계속mcp.json에는 URL + 워커 발급 세션 토큰만 기록(세션 종료 시 폐기)issue.id,issue.identifier,nativeRef(refactor(core,orchestrator,trackers): add nativeRef and remove provider-payload branching from service.ts #665) 전달 — 어댑터가 provider 식별자로 scope 제한(§15.5 narrowing) 가능하게dynamic_tool_call_*경로와runToolProcess삭제docs/trackers/<kind>.md(docs(trackers): publish compact adapter profiles for github-project, linear, and file per spec §11.2 #674) 또는 툴 패키지 README에 §10.5 목록 문서화: 툴 이름·입력 스키마, mutation 가능 여부, scope 제한, 결과/오류 형태, rate-limit 기대치완료 기준
Blocked by: #665, #671