# Complete - m-external-integration/02+01_nomadcode_core_iop_smoke

## 완료 일시

2026-06-08

## 요약

NomadCode Core -> IOP Edge Responses remote smoke를 2회 리뷰 루프로 완료했다. 최종 판정은 PASS다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | Core `docker-up` 이후 `MODEL_BASE_URL`이 기본 Ollama URL로 복귀해 create/enqueue/poll 증거가 stale container 상태였으므로 검증 신뢰도 복구 필요 |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | PASS | 현재 remote Core 컨테이너 env가 IOP Edge listener를 가리키는 상태에서 task create/enqueue/poll smoke와 Go 검증 통과 |

## 구현/정리 내용

- `services/core/internal/adapters/openai/client.go`에서 Responses API request body에 `model.GenerateInput.Metadata`를 전달한다.
- `services/core/internal/adapters/openai/client_test.go`가 `metadata.task_id`와 `metadata.source` request body 전달을 검증한다.
- `services/core/internal/scheduler/jobs_test.go`가 `buildGenerateInput`의 task ID/source metadata 주입을 검증한다.
- 후속 리뷰 루프에서 remote Core compose를 IOP Edge `MODEL_BASE_URL`로 기동한 뒤 env 확인, health/ready, task create/enqueue/poll 완료 증거를 재수집했다.

## 최종 검증

- `cd /config/workspace/nomadcode/services/core && go test -count=1 ./internal/adapters/openai ./internal/scheduler` - PASS; `internal/adapters/openai`, `internal/scheduler` 통과
- `ssh toki@toki-labs.com "zsh -lc 'cd $HOME/agent-work/nomadcode/services/core && go test ./... && go vet ./...'"` - PASS; 전체 Go package test 통과, `go vet` 출력 없음
- `ssh toki@toki-labs.com "zsh -lc 'docker inspect nomadcode-core-nomadcode-core-1 ... MODEL_*'"` - PASS; `MODEL_BASE_URL`이 IOP Edge listener, `MODEL_NAME=nomadcode-smoke-model`, context/timeout env 확인
- IOP Edge remote smoke `/healthz`, `/v1/models`, `POST /v1/responses` - PASS; HTTP 200, `output_text=IOP_RESPONSES_SMOKE_OK`
- Core remote smoke `POST /api/tasks`, `POST /api/tasks/{id}/enqueue`, `GET /api/tasks/{id}` - PASS; task `a543aa73-2478-4339-8bb0-c06d60d509f8` completed, result `mode=openai_responses`, `message=IOP_RESPONSES_SMOKE_OK`, `response_id=resp-manual-1780913941910380007`

## Roadmap Completion

- Milestone: `agent-roadmap/phase/external-integration/milestones/external-integration.md`
- Completed task ids:
  - `iop-responses`: PASS; evidence=`plan_cloud_G07_0.log`, `code_review_cloud_G07_0.log`, `plan_cloud_G07_1.log`, `code_review_cloud_G07_1.log`; verification=`go test -count=1 ./internal/adapters/openai ./internal/scheduler`, remote `go test ./... && go vet ./...`, IOP Edge remote smoke, Core remote create/enqueue/poll smoke
- Not completed task ids: 없음

## 잔여 Nit

- 없음

## 후속 작업

- 없음
