Skip to content

Commit 69e91a3

Browse files
dwgxclaude
andcommitted
chore(release): v2.0.143 diagnostics and canary hardening
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d0ce085 commit 69e91a3

2 files changed

Lines changed: 51 additions & 1 deletion

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## v2.0.143 - diagnostics and canary hardening
2+
3+
This release strengthens diagnostics for tool-call evidence collection
4+
(#177/#178), hardens the WebFetch canary pipeline (#183), and completes
5+
the SWE-1.6 special-agent POC boundary coverage (#190). No default
6+
behavior changes; native bridge production scope remains Bash-family only.
7+
8+
### BridgeResult diagnostics (#177/#178)
9+
10+
- New `BridgeResult[reqId]` log line emitted after every tool-bearing
11+
request (both streaming and non-streaming paths).
12+
- Tracks `cascadeToolCalls`, `mappedToolCalls`, `unmappedToolCalls`,
13+
`emulatedToolCalls`, `totalToolCalls`, `argParseFailures`, and
14+
`reverseFailures` per request.
15+
- Logs tool names and Cascade kinds but never arguments or user content.
16+
- Combined with the existing `ToolRoute[...]` pre-request log, reporters
17+
can now distinguish: bridge enabled but no Cascade tool call returned,
18+
Cascade tool call returned but reverse-mapping failed, emulation
19+
fallback succeeded, and the zero-tool-call scenario.
20+
21+
### WebFetch canary hardening (#183)
22+
23+
- `HandleCascadeUserInteraction` RPC call wrapped in try/catch; approval
24+
failures are logged with SHA-256 hashed cascade/origin identifiers and
25+
do not terminate the polling loop.
26+
- `scripts/native-bridge-smoke.mjs` WebFetch scenario now enforces a
27+
hard verdict: only `completed_web_document` in proto trace counts as
28+
pass; `pending_permission`, `auto_run_decision_only`, and error states
29+
are explicit warn/fail with classification detail.
30+
- WebFetch preflight warns when `WEBFETCH_AUTO_APPROVE`,
31+
`WEBFETCH_AUTO_APPROVE_ORIGINS`, or `POLL_AFTER_TOOL` env vars are
32+
missing (non-blocking).
33+
34+
### SWE-1.6 special-agent boundary (#190)
35+
36+
- `/health?verbose=1` now exposes `queueTimeoutMs`, `runTimeoutMs`, and
37+
`outputLimitBytes` in the `specialAgent` block when the backend is
38+
enabled.
39+
- Added unit test for media content rejection (`unsupported_media` on
40+
`image_url` content parts).
41+
- `scripts/special-agent-smoke.mjs` now runs two negative smoke stages
42+
after the positive text-only chat: tools boundary (`400
43+
unsupported_tool_boundary`) and media boundary (`400
44+
unsupported_media`).
45+
46+
### Validation
47+
48+
- 1098 tests pass (0 fail).
49+
- Secret scan clean.
50+
- No new dependencies.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "windsurf-api",
3-
"version": "2.0.142",
3+
"version": "2.0.143",
44
"description": "Windsurf to OpenAI + Anthropic compatible API proxy. Turns Windsurf's 107 AI models (Claude, GPT, Gemini, DeepSeek, Grok, Qwen, Kimi, GLM, SWE) into dual-protocol API endpoints. Zero npm deps.",
55
"type": "module",
66
"main": "src/index.js",

0 commit comments

Comments
 (0)