iter92 cluster-645: soft-deprecate StreamingProxy with Sunset header#1002
Conversation
…+ docs + guard (#645) Phase 9 r2 consensus soft-deprecate-streamingproxy-with-sunset-no-hard-delete: - StreamingProxy Host route + SDK surface preserved (public contract, no in-repo client, doc claim) - Added Deprecation + Sunset HTTP header (RFC 8594) pointing to /v1/responses - README / docs/canon / ADR-0015 / streaming-proxy-flow doc marked deprecated with sunset date and migration path - Architecture guard prevents new StreamingProxy consumers without explicit exception - No code/proto/test deleted; backward compat preserved Closes #645 ⟦AI:AUTO-LOOP⟧
🤖 Phase 8 Reviewer —
|
🤖 Phase 8 Reviewer —
|
🤖 Phase 8 Reviewer —
|
📊 codex 进展 review-pr1002-architect-r1 (⏳ 进行中; 已跑 4 min)
|
📊 codex 进展 review-pr1002-quality-r1 (⏳ 进行中; 已跑 4 min)
|
📊 codex 进展 review-pr1002-tests-r1 (⏳ 进行中; 已跑 4 min)
|
🔧 Phase 8 r1 评审 — quality reject(self-doc 缺)→ fix r2
🔧 fix r2 codex 派出:加 cluster self-doc 到 StreamingProxyEndpoints + guard 上方。 ⟦AI:AUTO-LOOP⟧ |
… StreamingProxy endpoints + guard - agents/Aevatar.GAgents.StreamingProxy/StreamingProxyEndpoints.cs: Old/New self-doc above the deprecation header block; old = public streaming proxy entry, new = soft-deprecated compatibility-only with Sunset header - tools/ci/architecture_guards.sh: Old/New self-doc above new guard; old = no block on adding StreamingProxy consumer, new = guard rejects new consumers, direct model streaming goes via /v1/responses ⟦AI:AUTO-LOOP⟧
🤖 Phase 8 Reviewer —
|
🤖 Phase 8 Reviewer —
|
| 命令 | 结果 |
|---|---|
bash tools/ci/test_stability_guards.sh |
通过 |
bash tools/ci/architecture_guards.sh |
通过 |
dotnet test test/Aevatar.AI.Tests/Aevatar.AI.Tests.csproj --nologo --filter StreamingProxyCoverageTests |
通过,50 passed / 0 failed / 0 skipped |
📎 完整 codex 原始输出(存档备查)
---
pr: 1002
role: tests
verdict: approve
---
## Verdict
Test coverage and guard verification are adequate for the StreamingProxy soft-deprecation diff after the round-1 quality self-doc fix.
## Evidence
- `agents/Aevatar.GAgents.StreamingProxy/StreamingProxyEndpoints.cs:29` now has the requested `Refactor (iter92/cluster-645)` Old/New self-documentation above `MapStreamingProxyEndpoints`, matching the r1 quality reject fix request.
- `tools/ci/architecture_guards.sh:183` now has the requested `Refactor (iter92/cluster-645)` Old/New self-documentation above the StreamingProxy consumer guard.
- `test/Aevatar.AI.Tests/StreamingProxyCoverageTests.cs:125` asserts the endpoint source keeps `AddDeprecationHeadersAsync` attached to the mapped route group, covering the regression risk that deprecated StreamingProxy routes stop advertising deprecation.
- `test/Aevatar.AI.Tests/StreamingProxyCoverageTests.cs:136` asserts the emitted `Deprecation`, `Sunset`, and `Link` header values, plus the `/v1/responses` successor route.
- `tools/ci/architecture_guards.sh:187` adds the static no-new-production-consumers guard for StreamingProxy; `bash tools/ci/architecture_guards.sh` passed locally.
- `bash tools/ci/test_stability_guards.sh` passed locally; the PR did not add `Task.Delay`, `Thread.Sleep`, `[Skip]`, manual traits, polling allowlist entries, or loosened assertions.
- `dotnet test test/Aevatar.AI.Tests/Aevatar.AI.Tests.csproj --nologo --filter StreamingProxyCoverageTests` passed locally: 50 passed, 0 failed, 0 skipped.
REVIEW_DONE:1002:tests-r2:approve
⟦AI:AUTO-LOOP⟧REVIEW_DONE:1002:tests-r2:approve
⟦AI:AUTO-LOOP⟧
🤖 Phase 8 Reviewer —
|
✅ Phase 8 r2 集中评审
3/3 → auto-merge。 ⟦AI:AUTO-LOOP⟧ |
🤖 Phase 8 Reviewer —
|
…ster-645-streamingproxy-deprecate # Conflicts: # tools/ci/architecture_guards.sh
📊 codex 进展 fix-pr1002-r2 (⏳ 进行中; 已跑 11 min)
|
📊 codex 进展 resolve-pr1002-conflict (⏳ 进行中; 已跑 7 min)
|
📊 codex 进展 review-pr1002-architect-r2 (⏳ 进行中; 已跑 11 min)
|
📊 codex 进展 review-pr1002-quality-r2 (⏳ 进行中; 已跑 11 min)
|
📊 codex 进展 review-pr1002-tests-r2 (⏳ 进行中; 已跑 11 min)
|
Summary
/v1/responses9 files: +122 / -4。
Phase 9 r2 consensus
META_JUDGE_DONE:consensus:soft-deprecate-streamingproxy-with-sunset-no-hard-delete详 #645 评论。
Closes #645
⟦AI:AUTO-LOOP⟧