47 lines
3.6 KiB
Markdown
47 lines
3.6 KiB
Markdown
# PROGRESS · Pass 4 按句放行与思考死链清理(2026-09-18 第三轮)
|
||
|
||
工作树:`.worktrees/consult-pass4-streaming-20260918`
|
||
分支:`codex/consult-pass4-streaming-20260918`
|
||
基线:`origin/staging` @ `24a6fc98`(任务书写 `1e553976`,其后一笔纯文档已快进)
|
||
合入提交:`cd4775ae`
|
||
任务书:`docs/tasks/TASK-consult-pass4-streaming-20260918.md`
|
||
|
||
## 任务状态
|
||
|
||
| 任务 | 状态 | 说明 |
|
||
| --- | --- | --- |
|
||
| BUG-950 按句放行 | 完成 | 只缓冲当前句;无 reject 立刻 send;observe 不阻塞 |
|
||
| BUG-951 按句丢弃 | 完成 | `dropRejectedClauses`;全丢才用兜底句 |
|
||
| BUG-952 无分钟日期 observe | 完成 | `general_no_birth_time` 下 exact-timing 记 observe |
|
||
| BUG-953 删除 token 级 thinking | 完成 | 死链删除,测试翻转成否定合同 |
|
||
|
||
## 950 / 951 分界
|
||
|
||
Pass 4 是句门不是刀。闭合句整句发或整句不发,不对句内动刀。整篇重写(methodology,或 compose 在一句都还没发出时的退回)只允许发生在第一条 `answer.delta` 之前;已经发出过句子,后续命中句只丢不撤。这就是「不闪两次」和「要流式」的分界,写在 `stream-agent-response.ts` 注释里。
|
||
|
||
## 断言三栏(既有测试)
|
||
|
||
| 测试 | 原值 | 新值 | 原因 |
|
||
| --- | --- | --- | --- |
|
||
| `pass4 holds verified dates…` | 1 条 `answer.delta` | ≥3 条,日期句照发 + observe | BUG-950 按句放行 |
|
||
| `pass4 retries compose once…` | compose 2 次,整段 hold 后一次发出 | compose 1 次;保证句不在任何 delta 里 | 已发出过句子不再整篇重写 |
|
||
| `pass4 general mode second-pass replaces…` | 整段换成拒绝句 | 知识句发出,个人盘句不发,不出现兜底句 | BUG-951 按句丢弃 |
|
||
| `general mode … preserving general knowledge` | 二次整段 `GENERAL_NO_BIRTH_TIME_REFUSAL` | 知识句仍在,个人盘/保证句不在,无 `。。` | 恢复被 948 改掉的口径 |
|
||
| `output guards … stay byte-stable` 混合文本 | 二次整段拒绝 | 知识句保留,个人盘句丢掉 | 同上 |
|
||
| `never publishes reasoning-delta` | `mapStreamChunkToThinking` 能变成 thinking 行 | 源码不得有该函数;运行时丢弃 | BUG-953 否定合同 |
|
||
| `consecutive Chinese reasoning fragments…` | assembler 拼出可见行 | assembler 删除;连续分片仍丢弃 | 同上,测试不删只翻转 |
|
||
| `Chinese thinking stays internal…` | 内部 thinking.delta 对象 | 源码不得映射;`safePublicEvent` 仍丢 | 同上 |
|
||
|
||
## 测试
|
||
|
||
| 项 | 结果 |
|
||
| --- | --- |
|
||
| `tsc --noEmit` | 0 错 |
|
||
| `npm run lint` | 0 error(120 warning,基线 121 量级) |
|
||
| 定向 | timing-output-guard / birth-time-mode / birth-accuracy / agentic-runtime Pass 4 / rectification-step-answer / v9-stream 全绿(Windows 上 skill symlink EPERM 两条与基线相同,不是本单) |
|
||
| 全量 `npm test`(本机 Windows) | tests 3453 / pass 3375 / fail 78。较上一轮 Windows 实测 3449 / 3371 / 78 **+4 条绿、失败数不变**。78 条全是 symlink/EPERM、bash、无 Docker 的既有缺口,清单与上一轮同组 |
|
||
| Linux 门禁目标 | 基线 3491 / 3445 / 31;本单 +4 条,预期 3495 / 3449 / 31 |
|
||
| `next build --webpack` | 编译成功(71s)。收集 page data 时 `/api/daily-starlanguage` 撞 skill symlink EPERM,与测试同一环境缺口。改动全在服务端 `stream-agent-response` / `timing-output-guard` / 校正 mapping,不进 `/` 客户端包;`/` Static 与 468,388 B gzip 留给 Linux 门禁 |
|
||
|
||
本单新增:三 `text-delta` ≥3 条 delta;全丢才兜底;无分钟日期 observe 流式合同。
|