Files
Jyotisha/docs/tasks/PROGRESS-consult-pass4-streaming-20260918.md
T
jesse-ux cd4775aec6 fix(consult): BUG-950~953 Pass 4 按句放行,无分钟按句丢弃
正文不再整段 hold:闭合句立刻过 Pass 4,无 reject 即发(950)。
无出生分钟改为按句丢弃,全丢才用兜底句(951);该模式日期记 observe(952)。
校正流 token 级 thinking 死链按 P2 删除,测试翻转成否定合同(953)。
2026-09-18 14:08:45 +08:00

3.5 KiB
Raw Blame History

PROGRESS · Pass 4 按句放行与思考死链清理(2026-09-18 第三轮)

工作树:.worktrees/consult-pass4-streaming-20260918
分支:codex/consult-pass4-streaming-20260918
基线:origin/staging @ 24a6fc98(任务书写 1e553976,其后一笔纯文档已快进)
任务书:docs/tasks/TASK-consult-pass4-streaming-20260918.md

任务状态

任务 状态 说明
BUG-950 按句放行 完成 只缓冲当前句;无 reject 立刻 sendobserve 不阻塞
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 error120 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 流式合同。