- Implement mixed provider dispatch with selection-first and path classifier strategies - Add model queue service for provider load balancing - Add OpenAI chat handler and stream updates for mixed provider support - Add comprehensive tests for dispatch and queue logic - Add inventory for Ornith vLLM mixed provider config - Archive completed agent tasks (G06, G07)
47 lines
2.9 KiB
Text
47 lines
2.9 KiB
Text
# Complete - m-model-group-mixed-provider-dispatch/01-provider-path-classifier
|
|
|
|
## 완료 일시
|
|
|
|
2026-07-11
|
|
|
|
## 요약
|
|
|
|
Provider path classifier task를 2회 루프로 완료했다. 최종 판정은 PASS이며, SDD S03/S04에 필요한 provider candidate presence와 execution path evidence를 보강했다.
|
|
|
|
## 루프 이력
|
|
|
|
| Plan | Review | Verdict | 메모 |
|
|
|------|--------|---------|------|
|
|
| `plan_local_G06_0.log` | `code_review_local_G06_0.log` | FAIL | expected provider가 후보에서 누락되어도 테스트가 실패하지 않는 coverage 공백이 발견되어 follow-up으로 전환했다. |
|
|
| `plan_local_G06_1.log` | `code_review_local_G06_1.log` | PASS | expected tunnel/normalized provider 전체의 존재와 execution path를 모두 검증하도록 보강했고 재검증이 통과했다. |
|
|
|
|
## 구현/정리 내용
|
|
|
|
- `candidateNode`에 unexported `providerExecutionPath` metadata를 추가하고 provider-pool 후보 생성 시 provider type 기반 execution path를 기록했다.
|
|
- `classifyProviderExecutionPath`가 `config.NormalizeProviderType` 기준으로 OpenAI-compatible aliases를 tunnel/passthrough로, Ollama/CLI/native/unknown provider를 normalized로 분류하게 했다.
|
|
- `TestResolveProviderPoolCandidatesClassifiesExecutionPath`가 expected tunnel/normalized provider 전체의 candidate 존재와 path를 모두 assert하도록 보강했다.
|
|
- Review artifact의 trailing whitespace drift를 정리했다.
|
|
|
|
## 최종 검증
|
|
|
|
- `git diff --check` - PASS; 출력 없음.
|
|
- `GOCACHE=/tmp/iop-go-cache go test ./packages/go/config -count=1` - PASS; `ok iop/packages/go/config 0.044s`.
|
|
- `GOCACHE=/tmp/iop-go-cache go test ./apps/edge/internal/node -count=1` - PASS; `ok iop/apps/edge/internal/node 0.006s`.
|
|
- `GOCACHE=/tmp/iop-go-cache go test ./apps/node/internal/adapters -count=1` - PASS; `ok iop/apps/node/internal/adapters 0.008s`.
|
|
- `GOCACHE=/tmp/iop-go-cache go test ./apps/edge/internal/service -count=1` - PASS; `ok iop/apps/edge/internal/service 0.940s`.
|
|
|
|
## Roadmap Completion
|
|
|
|
- Milestone: `agent-roadmap/phase/routing-policy-model-orchestration/milestones/model-group-mixed-provider-dispatch.md`
|
|
- Milestone link: [Milestone 문서](agent-roadmap/phase/routing-policy-model-orchestration/milestones/model-group-mixed-provider-dispatch.md)
|
|
- Completed task ids:
|
|
- `provider-path-classifier`: PASS; evidence=`agent-task/archive/2026/07/m-model-group-mixed-provider-dispatch/01-provider-path-classifier/plan_local_G06_1.log`, `agent-task/archive/2026/07/m-model-group-mixed-provider-dispatch/01-provider-path-classifier/code_review_local_G06_1.log`; verification=`GOCACHE=/tmp/iop-go-cache go test ./packages/go/config -count=1`, `GOCACHE=/tmp/iop-go-cache go test ./apps/edge/internal/node -count=1`, `GOCACHE=/tmp/iop-go-cache go test ./apps/node/internal/adapters -count=1`, `GOCACHE=/tmp/iop-go-cache go test ./apps/edge/internal/service -count=1`
|
|
- Not completed task ids: 없음
|
|
|
|
## 잔여 Nit
|
|
|
|
- 없음
|
|
|
|
## 후속 작업
|
|
|
|
- 없음
|