Why: Fast/slow O2 increment I1. One exactly bound OpenAI-chat route may release tool calls from a stream that ended without the literal [DONE], but only when the HTTP body boundary and every frame prove the calls complete (conditions C1-C9). The design and plan passed user stage 4/5 review on 2026-10-20; C2 accepts both http2_stream+EOF and known_length+match.
Evidence (SELF, host @899fd70): gofmt clean for changed files; git diff --check; go vet ./runtime/...; go test ./runtime/llm/... ./runtime/argschema/... ./runtime/tools/... (also -race); go test ./... all ok. Independent review: see Dev task card. CI (GATE): this PR.
Impact: New optional Client.RouteContract (nil/zero = off, behaviour unchanged); Event/TerminalObservation gain completionBasis and contractCheck enums; new runtime/argschema package shared by the registry. StreamComplete keeps its literal meaning. Backend wiring (I2), Dev repin (I3) and the paid probe (P1) are separate.
Refs: Dev task feature/fast-slow-o2-i1-agent-native; design docs/superpowers/specs/2026-10-19-fast-slow-o2-route-contract-eof-design.md; plan docs/superpowers/plans/2026-10-19-fast-slow-o2-route-contract-eof-plan.md (Agent-System-Dev #639). Draft pending user stage 6 review.
Why: Fast/slow O2 increment I1. One exactly bound OpenAI-chat route may release tool calls from a stream that ended without the literal [DONE], but only when the HTTP body boundary and every frame prove the calls complete (conditions C1-C9). The design and plan passed user stage 4/5 review on 2026-10-20; C2 accepts both http2_stream+EOF and known_length+match.
Evidence (SELF, host @899fd70): gofmt clean for changed files; git diff --check; go vet ./runtime/...; go test ./runtime/llm/... ./runtime/argschema/... ./runtime/tools/... (also -race); go test ./... all ok. Independent review: see Dev task card. CI (GATE): this PR.
Impact: New optional Client.RouteContract (nil/zero = off, behaviour unchanged); Event/TerminalObservation gain completionBasis and contractCheck enums; new runtime/argschema package shared by the registry. StreamComplete keeps its literal meaning. Backend wiring (I2), Dev repin (I3) and the paid probe (P1) are separate.
Refs: Dev task feature/fast-slow-o2-i1-agent-native; design docs/superpowers/specs/2026-10-19-fast-slow-o2-route-contract-eof-design.md; plan docs/superpowers/plans/2026-10-19-fast-slow-o2-route-contract-eof-plan.md (Agent-System-Dev #639). Draft pending user stage 6 review.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why: Fast/slow O2 increment I1. One exactly bound OpenAI-chat route may release tool calls from a stream that ended without the literal [DONE], but only when the HTTP body boundary and every frame prove the calls complete (conditions C1-C9). The design and plan passed user stage 4/5 review on 2026-10-20; C2 accepts both http2_stream+EOF and known_length+match.
Evidence (SELF, host @899fd70): gofmt clean for changed files; git diff --check; go vet ./runtime/...; go test ./runtime/llm/... ./runtime/argschema/... ./runtime/tools/... (also -race); go test ./... all ok. Independent review: see Dev task card. CI (GATE): this PR.
Impact: New optional Client.RouteContract (nil/zero = off, behaviour unchanged); Event/TerminalObservation gain completionBasis and contractCheck enums; new runtime/argschema package shared by the registry. StreamComplete keeps its literal meaning. Backend wiring (I2), Dev repin (I3) and the paid probe (P1) are separate.
Refs: Dev task feature/fast-slow-o2-i1-agent-native; design docs/superpowers/specs/2026-10-19-fast-slow-o2-route-contract-eof-design.md; plan docs/superpowers/plans/2026-10-19-fast-slow-o2-route-contract-eof-plan.md (Agent-System-Dev #639). Draft pending user stage 6 review.