Intent of loopbackProxyServer.ts ×8
All 84 exact tests in this concept. Every test is marked by where it enters the hierarchy.
-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/84 tests-
platform/84 tests-
agentHost/84 tests-
test/84 tests-
node/84 tests-
claudeProxyService.test|title=ClaudeProxyService Auth auth-first precedence: GET /1 test -
claudeProxyService.test|title=ClaudeProxyService Auth auth-first precedence: POST /2 tests -
claudeProxyService.test|title=ClaudeProxyService GET /3 tests-
v1/3 tests-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService GET /v1/models non-CopilotApiError → 502 api_error|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService GET /v1/models returns Page envelope with SDK-format IDs and filters by vendor + endpoint|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService GET /v1/models upstream CopilotApiError is re-emitted verbatim with original status|occurrence=1
-
-
-
claudeProxyService.test|title=ClaudeProxyService POST /4 tests-
v1/4 tests-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService POST /v1/messages model translation SDK ID inbound is translated to endpoint ID upstream|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService POST /v1/messages model translation endpoint ID inbound is also accepted|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService POST /v1/messages model translation non-streaming response model is rewritten to SDK format|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService POST /v1/messages model translation unparseable model → 404 with no upstream call|occurrence=1
-
-
-
claudeProxyService.test|title=ClaudeProxyService Routes GET /2 tests-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Routes GET / → 200 ok, no auth required|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Routes GET /something-else → 404 not_found_error|occurrence=1
-
-
claudeProxyService.test|title=ClaudeProxyService Routes POST /1 test -
codex/7 tests-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService forwards the auto-review reviewer model unchanged when no primary model has been seen|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService forwards transformed user-agent to CAPI responses|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService keeps the suffix when transforming a multi-segment user-agent|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService omits User-Agent when the inbound request has none|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService remaps the reviewer model onto the most recent primary model|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService remaps the unsupported auto-review reviewer model onto the last primary model|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/codex/codexProxyService.test|title=CodexProxyService serves an empty Codex model catalog|occurrence=1
-
-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService decodes a url-encoded vendor path segment|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService forwards a chat request to the bridge and streams an SSE completion|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService rebinds with a fresh nonce after every handle is disposed|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService rejects a malformed JSON body with 400|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService rejects a nonce-only bearer token (no session id)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService rejects a vendor that decodes to a multi-segment path (%252F)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService rejects requests without a valid bearer token|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService returns 404 for an authenticated but unknown route|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService returns a 502 when the bridge reports an error|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService returns a 502 when the bridge throws|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService returns a 503 when no renderer bridge is connected|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService routes requests to a serving window and excludes a non-serving one|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService serves the unauthenticated health check|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/byokLmProxyService.test|title=ByokLmProxyService streams assistant tool calls as OpenAI tool_call deltas|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Abort client disconnect mid-stream propagates AbortSignal upstream and writes nothing else|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Abort dispose() with in-flight non-streaming aborts the upstream call|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Auth Bearer <nonce> (no dot) → 401|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Auth Bearer <nonce>. (empty sessionId) → 401|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Auth Bearer <nonce>.<sessionId> → request proceeds|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Auth Bearer wrong-nonce.x → 401|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Auth missing Authorization header → 401|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Auth x-api-key alone → 401|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Body validation missing messages field → 400|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Body validation missing model field → 400|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Body validation non-JSON body → 400|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Credits reporting no copilot_usage in the response → no credits report|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Credits reporting non-streaming: copilot_usage.total_nano_aiu fires onDidReportCredits|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Credits reporting streaming: copilot_usage.total_nano_aiu fires onDidReportCredits with the session id|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Header passthrough drops supported family without date suffix|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Header passthrough drops x-request-id and arbitrary headers|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Header passthrough filters out unsupported betas|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Header passthrough forwards anthropic-version verbatim|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Header passthrough forwards supported anthropic-beta|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Header passthrough mixed beta list keeps supported entries only|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming emits SSE frames in order with hand-rolled framing and rewrites message_start.message.model|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming mid-stream CopilotApiError → SSE error frame, then end, no message_stop after|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming mid-stream non-CopilotApiError → synthesized SSE error frame|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming pre-stream CopilotApiError with streaming sentinel coerces to 502 but preserves envelope|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming pre-stream CopilotApiError → JSON error response with original status|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming socket.setNoDelay(true) is called on streaming responses|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming thinking_delta events pass through|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Streaming tool-use input_json_delta events pass through|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/claudeProxyService.test|title=ClaudeProxyService Token slot start() updates token slot last-writer-wins|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/copilotSessionLauncher.test|title=resolveByokSessionConfig synthesized provider config routes through a live proxy to the bridge|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Dispose semantics dispose() is idempotent|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Dispose semantics dispose() while a bind is in flight rejects the pending acquire|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Dispose semantics explicit dispose() tears down regardless of live handles|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer In-flight abort dispose() aborts in-flight requests and destroys their sockets|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Lifecycle & binding binds only on the IPv4 loopback interface|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Lifecycle & binding handleRequest receives the runtime with baseUrl, nonce and state|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Lifecycle & binding serves real requests via handleRequest|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Lifecycle & binding startHandle() returns a loopback baseUrl and 256-bit hex nonce|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Refcounting concurrent acquires share a single bind and one state object|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Refcounting disposing one handle while another is alive keeps the server up|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Refcounting disposing the last handle tears the server down|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Refcounting startHandle() after refcount-0 teardown rebinds with a fresh nonce and new state|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Seeding acquire seeds createState so the state is born valid with no placeholder window|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Seeding concurrent acquires build state once from the seed that wins the bind|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Seeding rebinding after refcount-0 teardown re-seeds createState with the new value|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Unhandled errors throw after headers are sent → response is ended without crashing|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Unhandled errors throw before headers → default internal-error envelope (500)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer Unhandled errors throw before headers → subclass writeInternalError override is used|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer readProxyRequestBody reads the full request body as UTF-8|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/loopbackProxyServer.test|title=LoopbackProxyServer readProxyRequestBody resolves to an empty string for a body-less request|occurrence=1
-
-
-
-
-