Skip to content

Commit 4e91f00

Browse files
committed
docs(release): record protocol fidelity fixes and verified gates
Record the October 21 tool-history and SSE corrections, exact candidate evidence, platform counts and affected mutation results. Keep historical validation distinct from current checks and qualify the local parser benchmark.
1 parent f2b938d commit 4e91f00

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,16 @@ live 目录/模型并修传输与限流重试;账号过滤、日志保留/轮
5151
发布审计后补:`WINDSURFAPI_TOOL_HYGIENE=0` 完整回滚、重复 tool ID/FIFO 配对、孤儿结果不拆 tool 对、Anthropic 错误状态补齐、Gemini split 名与 Dashboard token fallback。默认 wire 不变(270/270),本地/HMC 全量绿;昂贵模型 5 selector × 4 协议 20/20 200。无协议兼容性
5252
破坏;实际计费 debit、其余模型图片和 Any2API live 集成仍未验证。
5353

54+
**2026-10-21 维护增量(代码候选 `f2b938d`,旧数字为 2026-10-19 快照)**:畸形/超长 tool id 保留
55+
FIFO 队列;预内容 Cascade 失败不再追加成功 `[DONE]`;SSE framer 与网络分片无关,支持 LF/CRLF/CR、
56+
空字段和注释开头内容,分隔符扫描改为单游标。本机 Node 24 固定批次观测 160k 帧约 28 ms(修复前约
57+
3.6 s),不作为通用延迟保证。Windows `npm run gate`(含 `test:release`)**5,415 pass / 0 fail /
58+
82 skip**,Linux release **5,497 pass / 0 fail / 0 skip**,wire **270/270**;受影响 mutation 共
59+
**11** 个预期(10 caught + 1 declared survivor)。Linux 首次聚合 gate **exit 2** 是 detached clone
60+
缺 `origin/master`,补跑缺失层为 **85 specs / 0 drift / 0 untrustworthy**。Any2API 候选 `a4b3406`
61+
是独立项目:LF 集成树 `go test ./...` 为 **18 ok + 1 no-test / 0 fail**,二进制已构建并固定哈希;
62+
其 live 结果不在本版范围,不作为本版证据。
63+
5464
### [v3.9.40](docs/releases/RELEASE_NOTES_3.9.40.md) · 2026-10-07
5565

5666
畸形输入不再打成 500 或变成上游文本:带 per-user scope 的 `content:[null]`、`system:[null]` 和

‎docs/releases/RELEASE_NOTES_3.9.41.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# v3.9.41
22

3+
> **2026-10-21 维护增量**:代码候选 `f2b938d` 在本文原有 2026-10-19 证据之上补了工具历史、终态与 SSE 修复;旧数字保留为当日快照,当前门禁数字见文末「2026-10-21 维护增量」。版本号与发布状态未改。
4+
35
本版是 v3.9.40 之后的一次大补丁:**90+ 个提交,57 个 feat/fix**。没有协议兼容性破坏,没有新增协议路由,默认 wire 字节保持不变(`a51a0f1` 对 `v3.9.40` 的 270/270 比较全部相同)。内容集中在五块:工具名/ID/历史的跨方言卫生、SSE 提交门与错误状态、Dashboard 的只读观测面、Devin Connect 的目录/传输/重试修复,以及账号、日志、统计与缓存的可运维性。
46

57
**影响面**:默认开启的工具卫生会改变少数畸形工具名/ID 的线上形状;SSE 提交门默认等待 5 秒,预内容错误现在能以真实 HTTP 状态返回;新增若干默认关闭的日志/ACP 开关和 Dashboard 只读接口。没有改协议字段、没有改默认路由、没有改上游 wire。昂贵模型 live 矩阵只覆盖一个 Pro 账号的一次部署,不等同于对所有账号等级的承诺。
@@ -77,6 +79,18 @@ v3.9.40 只在 Messages 侧修了 64 字符 wire 上限;这一版把同一类
7779
- **Node 20/22**:版本性失败仍在,发布门只声明 Node 24。
7880
- **Any2API 集成**:Codex `responses` 直通和 Claude `anthropic` 的 live 冒烟尚未跑;`PATCH-G5.diff` 只是提案,未应用。
7981

82+
## 2026-10-21 维护增量(代码候选 `f2b938d`)
83+
84+
本段是发布候选上的后续维护;原始 2026-10-19 证据保留为当日快照。以下数字只对应 `f2b938dfd04f6771d18e4db723e2944fae555057` 的代码与测试树;后续仅文档变更不改变该证据。
85+
86+
- **工具历史**:畸形/超长 raw tool id 不再覆盖已有 FIFO 队列,后续调用与结果仍按到达顺序绑定;合法 id 与确定性映射不变(`src/tool-ids.js`、`test/tool-ids.test.js`)。
87+
- **终态**:预内容 Cascade 失败只发错误帧,不再追加成功 `[DONE]`;已交付部分内容的失败仍走既有 synthetic finish + 单次 `[DONE]` 兼容路径(`src/handlers/chat.js`、`test/s4-r4.test.js`、`test/stream-error.test.js`)。
88+
- **SSE 语义**:framer 的 payload 上限与网络分片无关;LF/CRLF/CR 统一;`data`/`event` 等字段允许空值;注释开头的内容不会被后续错误替换;忽略行、data、event 分别记账,dispatch 时合计仍受限(`src/sse-framer.js`、`test/sse-framer.test.js`)。
89+
- **SSE 性能**:分隔符扫描改为单游标 `/[\r\n]/g`,大批量帧从二次降为线性;本机 Node 24 固定批次观测 160k 帧约 28 ms(修复前约 3.6 s),不作为通用延迟保证(`src/sse-framer.js`)。
90+
- **平台门**:Windows `npm run gate`(含 `test:release`)**5,415 pass / 0 fail / 82 skip**(442 文件);Linux release **5,497 pass / 0 fail / 0 skip**(442 文件);wire **270/270** 对 `v3.9.40`。
91+
- **Linux 首次聚合 gate**:**exit 2**,原因是 detached clone 缺少 `origin/master`;这不是零退出。补跑缺失层 `spec-baseline-check` 得到 **85 specs / 0 drift / 0 untrustworthy**(base `6fd35b3`)。受影响 mutation 规格共 **11** 个预期:**10 caught + 1 个已声明 survivor**(`s4-r4` 5/5;`terminal-event-guard` 5 caught + 1 declared)。
92+
- **相关项目(独立)**:Any2API 候选 `a4b3406` 的 LF 集成树 `go test ./...` 为 **18 ok + 1 no-test / 0 fail**;二进制已构建并固定哈希。其 live 结果不在本版范围,不作为本版证据。
93+
8094
## 升级注意
8195

8296
- `WINDSURFAPI_TOOL_HYGIENE` 默认开启;依赖原始畸形工具名/ID 透传的调用方需要显式设 `0`。

0 commit comments

Comments
 (0)