Coverage Gaps Report
Date: 2026-02-22
Current Snapshot
- Scope assessed:
pkg/llmproxy/api,pkg/llmproxy/translator,sdk/api/handlers- selected quality commands in
Taskfile.yml
- Baseline commands executed:
go test ./pkg/llmproxy/api -run 'TestServer_|TestResponsesWebSocketHandler_.*'go test ./pkg/llmproxy/api -run 'TestServer_ControlPlane_MessageLifecycle|TestServer_ControlPlane_UnsupportedCapability|TestServer_RoutesNamespaceIsolation|TestServer_ResponsesRouteSupportsHttpAndWebsocketShapes|TestServer_StartupSmokeEndpoints'QUALITY_PACKAGES='./pkg/llmproxy/api ./sdk/api/handlers/openai' task quality:quick
task quality:fmt:checktask lint:changed(environment reports golangci-lint Go 1.25 binary mismatch with Go 1.26 target)go test ./pkg/llmproxy/api -run 'TestServer_'go test ./sdk/api/handlers -run 'TestRequestExecutionMetadata'/.github/scripts/check-distributed-critical-paths.shQUALITY_PACKAGES='./pkg/llmproxy/api ./sdk/api/handlers/openai' task quality:quick:checktask quality:quick:allcurrently still needs sibling compatibility validation when golangci-lint is missing/heterogeneous across siblings.
Gap Matrix
- Unit:
- Coverage improved for API route lifecycle and websocket idempotency.
- Added startup smoke assertions for
/v1/modelsand/v1/metrics/providers, plus repeatedsetupRoutesroute-count stability checks. - Added
requestExecutionMetadataregression tests (idempotency key propagation + session/auth metadata). - Added control-plane shell endpoint coverage for
/message,/messages,/status,/eventsinpkg/llmproxy/api/server_test.go. - Added command-label translation tests for
/messagealiases (ask,exec,max,continue,resume). - Added
/messageidempotency replay test that asserts duplicate key reuse and no duplicate in-memory message append. - Added idempotency negative test for different
Idempotency-Keyvalues and in-flight message-copy isolation for/messages. - Added task-level quality gates (
quality:ci,lint:changedwith PR ranges,test:smoke) and workflow/required-check wiring for CI pre-merge gates. - Added
quality:release-lintand required-checkquality-staged-checkin CI; added docs/code snippet parse coverage for release lint. - Added thinking validation coverage for level rebound and budget boundary clamping in
pkg/llmproxy/thinking/validate_test.go:- unsupported/rebound level handling and deterministic clamping to supported levels,
- min/max/zero/negative budget normalization for non-strict suffix-paths,
- explicit strict out-of-range rejection (
ErrBudgetOutOfRange) when same-provider budget requests are too high. - auto-mode behavior for dynamic-capable vs non-dynamic models (
ModeAutomidpoint fallback and preservation paths).
- Remaining: complete route-namespace matrix for command-label translation across orchestrator-facing surfaces beyond
/message, and status/event replay windows.
- Integration:
- Added:
scripts/provider-smoke-matrix.shplustask test:provider-smoke-matrixfor deterministic smoke checks against/v1/responsesusing provider-qualified aliases. - Added:
scripts/provider-smoke-matrix-cheapest.shandtask test:provider-smoke-matrix:cheapestwith deterministic cheapest-model coverage for six core providers.
- Added:
- Added: required CI job
provider-smoke-matrix-cheapestfor live cheap-path smoke against six defaults.- Remaining: end-to-end provider cheapest-path smoke for all provider auth modes in persistent CI defaults. Unit-level smoke now covers:
/v1/modelsnamespace behavior for OpenAI-compatible andclaude-cliUser-Agent paths./v1/metrics/providersresponse shape and metric-field assertions with seeded usage data.- control-plane lifecycle endpoints with idempotency replay windows.
- Remaining: live provider smoke and control-plane session continuity across process restarts.
- Remaining: end-to-end provider cheapest-path smoke for all provider auth modes in persistent CI defaults. Unit-level smoke now covers:
- E2E:
- Remaining: end-to-end harness for
/agent/*parity and full resume/continuation semantics. - Remaining: live-process orchestration for
/v1/models,/v1/metrics/providers, and/v1/responseswebsocket fallback. - Added first smoke-level unit checks for
/messagelifecycle and/v1models/metrics namespace dispatch.
- Remaining: end-to-end harness for
- Chaos:
- Remaining: websocket drop/reconnect and upstream timeout injection suite.
- Perf:
- Remaining: concurrent fanout/p99/p95 measurement for
/v1/responsesstream fanout.
- Remaining: concurrent fanout/p99/p95 measurement for
- Security:
- Remaining: token leak and origin-header downgrade guard assertions.
- Docs:
- Remaining: close loop on
docs/planning/READMEcommand matrix references in onboarding guides and add explicit evidence links for the cheapest-provider matrix tasks.
Close-out Owner
- Owner placeholder:
cliproxysprint lead - Required before lane closure: each unchecked item in this file must have evidence in
docs/planning/agents.md.