Update roadmap: phase PHASE.md and archive openai-compatible-tool-call-boundary-hardening milestone

This commit is contained in:
toki 2026-07-05 05:50:42 +09:00
parent d233efdb9c
commit 568b57ff20
2 changed files with 12 additions and 9 deletions

View file

@ -12,7 +12,7 @@ OpenAI-compatible `tools[]`가 있는 요청에서 provider-pool 또는 provider
## 상태
[진행중]
[완료]
## 승격 조건
@ -51,15 +51,17 @@ OpenAI-compatible provider 응답의 tool-call 후보를 요청 schema 기준으
## 완료 리뷰
- 상태: 보완 필요
- 요청일: 2026-07-04
- 완료 근거: `01_provider_text_boundary/complete.log``02+01_contract_dev_smoke/complete.log`가 모든 기능 Task id의 PASS, Go 검증, dev-runtime smoke evidence를 기록한다. 다만 종료 전 코드레벨 재검토에서 native stream `tool_calls`와 raw text `<tool_call>`이 같이 올 때 보류 raw candidate가 flush될 수 있는 작은 누수 가능성을 local guard/test로 보강했으며, 이 guard가 반영된 source 기준 dev-runtime credentialed smoke는 아직 재수집되지 않았다.
- 상태: 통과
- 요청일: 2026-07-05
- 완료 근거: `01_provider_text_boundary/complete.log`, `02+01_contract_dev_smoke/complete.log`, `03+02_closure_verification/complete.log`가 모든 기능 Task id의 PASS, Go 검증, dev-runtime non-stream/stream smoke evidence를 기록한다.
- 완료 근거: 종료 전 코드레벨 재검토에서 native stream `tool_calls`와 raw/partial text tool-call 후보가 함께 오는 경로의 `FlushNonCandidate()` guard와 회귀 테스트를 확인했다.
- 완료 근거: 현재 checkout 기준 `go test ./apps/edge/internal/openai`, `go test ./apps/edge/...`, `go test ./...`가 통과했다.
- 검토 항목:
- [x] valid raw text tool call은 구조화되고 raw block이 노출되지 않는다
- [x] unknown/malformed tool call은 성공 content로 노출되지 않는다
- [x] Pi/Cline형 OpenAI-compatible tools smoke 근거가 남아 있다
- agent-ui 상태 반영: 해당 없음
- 리뷰 코멘트: `agent-task/m-openai-compatible-tool-call-boundary-hardening/03+02_closure_verification/PLAN-cloud-G07.md`에서 guarded source sync, dev-runtime rebuild/refresh, Pi/Cline형 non-stream/stream smoke evidence 재수집을 완료한 뒤 `[완료]` 전환과 archive 이동을 다시 판단한다.
- 리뷰 코멘트: 남은 차단 항목 없음. archive 전 workspace lock 조회 결과 현재 Milestone 관련 lock은 없다.
## 범위 제외
@ -77,7 +79,8 @@ OpenAI-compatible provider 응답의 tool-call 후보를 요청 schema 기준으
- 완료 메모(2026-07-04): provider route 또는 provider-pool에서 assistant content에 raw `<tool_call>` text가 들어오면 요청 `tools[]` schema 기준으로 구조화하거나 차단한다. 관련 단위 테스트는 provider raw text synthesis, malformed/unknown blocking, multi-candidate validation을 포함한다.
- 완료 메모(2026-07-04): unknown text tool-call은 client-visible success content로 남기지 않고 bounded retry 또는 `tool_validation_error`로 처리한다. live SSE와 strict buffered stream 경로도 raw block을 flush하지 않는다.
- 완료 메모(2026-07-04): [sentinel-sanitize]는 `apps/edge/internal/openai/strict_output.go`, `stream.go`, `server_test.go`에서 non-stream Chat Completions, live SSE, Responses 출력의 `<|mask_end|>` 제거와 tool-call 뒤 sentinel 제거 회귀 테스트를 추가해 완료했다. 검증: `go test ./apps/edge/internal/openai`, `go test ./apps/edge/...`.
- 관측 메모(2026-07-04): dev-runtime Edge health는 응답했지만 `/v1/models`는 Bearer 인증을 요구해 secret 없이 live provider 재현은 수행하지 않았다. 실제 Pi/Cline형 긴 prompt에서 모델이 raw block을 자발 출력하는지는 credentialed client smoke로 확인해야 한다.
- 완료 메모(2026-07-05): [stream-flush-guard]와 [native-preserve]는 native `tool_calls` 완료 시 raw/partial text tool-call 후보를 flush하지 않는 `FlushNonCandidate()` guard와 회귀 테스트로 보강했다. 검증: `go test ./apps/edge/internal/openai`, `go test ./apps/edge/...`, `go test ./...`.
- 완료 메모(2026-07-05): [client-smoke]는 final-source dev-runtime rebuild/restart 뒤 Pi/Cline형 non-stream/stream OpenAI-compatible smoke evidence를 `agent-test/runs/boundary-closure-partialguard-20260705_044102`에 남긴 것으로 종료했다.
- 선행 작업: Tool Call Runtime 검증 재시도 MVP, OpenAI-compatible Think 제어 MVP에서 확인된 provider-pool/Pi raw leak 진단
- 후속 작업: Tool Call 판정 모델 Gate 리뷰, 요청 실행 로그와 Usage Ledger 기반
- 확인 필요: dev-runtime Bearer credential이 있는 환경에서 Pi/Cline형 긴 agent prompt와 `tools[]` 요청으로 live provider raw leak 또는 차단 결과를 다시 관측한다.
- 확인 필요: 없음

View file

@ -23,8 +23,8 @@ Ollama serving 경로와 운영 기반이 안정화된 뒤, 단계 호출, tool/
- 경로: `agent-roadmap/archive/phase/knowledge-tool-optimization-extension/milestones/openai-compatible-think-control.md`
- 요약: OpenAI-compatible Chat Completions 요청에서 thinking/reasoning 생성과 응답 노출을 요청별로 제어하고 provider별 option 매핑과 unsupported 정책을 구현한다.
- [진행중] OpenAI-compatible Tool Call Boundary Hardening
- 경로: `agent-roadmap/phase/knowledge-tool-optimization-extension/milestones/openai-compatible-tool-call-boundary-hardening.md`
- [완료] OpenAI-compatible Tool Call Boundary Hardening
- 경로: `agent-roadmap/archive/phase/knowledge-tool-optimization-extension/milestones/openai-compatible-tool-call-boundary-hardening.md`
- 요약: provider-pool/OpenAI-compatible 응답에서 raw text tool-call block, unknown tool name, chat-template sentinel token이 클라이언트 화면으로 새지 않도록 Edge tool-call 경계를 검증/정규화한다.
- [스케치] 단계 호출과 검증 최적화 MVP