# PROGRESS · 三通道重做修复单(2026-09-18) 工作树:`.worktrees/consult-three-channels-fix-20260918` 分支:`codex/consult-three-channels-fix-20260918` 基线:`origin/staging` @ `b4fcb946`(任务书写 `7ae3aa9a`,其后两笔纯文档已快进) 合入提交:`e32ce624` 任务书:`docs/tasks/TASK-consult-three-channels-fix-20260918.md` ## 任务状态 | 任务 | 状态 | 说明 | | --- | --- | --- | | BUG-945 领域 schema 与执行上限解耦 | 完成 | 计划最多 6 条,执行仍按墙钟 2 条,其余 `omitted_domains` | | BUG-946 31s 预算断言 | 完成 | 6 条按 MAX=2 / 31s 重写,附三栏 | | BUG-947 校正思考分片 | 完成 | 选方案 (b):分片级 CJK 门,不复用 8 字条目门 | | BUG-948 Pass 4 按模式分流 | 完成 | 日期观察、保证句退回、无分钟个人盘整段拒绝 | | BUG-949 容量算术 | 完成 | 按四标题计划重测上下界 | ## 947 选型 选 **(b)**。校正流仍按 `reasoning-delta` 分片推到浏览器,不能拿 Pass 2 的整条门(≥8 字 + 句末标点)去滤。新门 `acceptThinkingFragment` 只判非空、含 CJK、不含工具名,不改写、不删词。另给 `createThinkingFragmentAssembler` 证明连续分片能拼出可见行。 ## 948 让步 1. 有 `composeAnswer` 的本命路径:Pass 4 命中保证句 / 个人盘时退回 Pass 3 一次,二次再落地(丢保证句或整段拒绝句)。正文 hold 到判定结束再发,避免闪两次。 2. 无 `composeAnswer` 的一般 / 窗口路径:不另开一轮模型,直接二次落地。 3. 非 agentic 的 `streamTextResponse` 旧路径不再套恒等壳,也不在流上改写。日期因此能出来;保证句在这条旧路径上没有模型重写。 4. `exact-timing` 在 `general_no_birth_time` 不记 observe、也不拦——产品表只给有盘 / 窗口模式观察日期。 ## 断言三栏(既有测试) | 测试 | 原值 | 新值 | 原因 | | --- | --- | --- | --- | | `MAX_CONSULTATION_DOMAINS` | 3 | 2 | 31s/领域,墙钟 65s 只能付 2 个 | | `executableDomainPlan` 5 个领域 | 执行 3 | 执行 2 | 同上 | | `domainFitsRunBudget(42_000, 2)` | true(按 21s) | 改为 31s 口径的 0/1/2 组 | 预算公式跟新时长 | | 超限计划 | schema 失败、execute 0 | schema 接受 ≤6,execute ≥1,`omitted_domains` 非空 | BUG-945 | | 未校正 / 分钟敏感日期 | `[具体时间已省略]` | 原文保留 + `pass4-observe:exact-timing` | BUG-948 产品授权 | | 无分钟个人盘 | 半句替换或恒等 | 二次整段 `GENERAL_NO_BIRTH_TIME_REFUSAL` | 不得半句替换 | | 1 域 thinkingSections JSON | 1200–2500 | 900–1300(实测 1053) | 四标题计划更小 | | 2/3 域 thinkingSections JSON | 1800–3500 / 2400–4500 | 1100–1600(实测 1267,12 步封顶同长) | 同上 | | 19 轮旧口径字符 | > 200,000 | 170k–190k(实测 177,973) | 分节变小后 19 轮不再必然撞旧额度 | | 19/50 轮详情字节 | 540k–590k / 1.45M–1.51M | 520k–550k / 1.38M–1.43M(533,113 / 1,402,384) | 同上;比例仍约 2.63 | ## 测试 | 项 | 结果 | | --- | --- | | `tsc --noEmit` | 0 错 | | `npm run lint` | 0 error(121 warning,与基线同量级) | | 原 12 条红 | 全绿(见上表) | | 全量 `npm test`(本机 Windows) | tests 3449 / pass 3371 / fail 78。多出来的失败是本机 symlink/EPERM、bash、无 Docker 的既有缺口,不是本单 12 条 | | 本单新增 | Pass 4 观察/退回/拒绝合同、范围用户日期合同、分片 assembler、容量上下界 | Linux 门禁才是验收数字:目标 fail 回到 31,总数 ≥ 3484。本机无法跑 skill symlink 的两条 Agent 探针(`personal Agent exposes…` / `general agent runtime has no Jyotish skill package…`),CI Linux 上应仍绿。