Add Apache-2.0 @4n6h4x0r/stem-branch 0.8.0, a seven-governors adapter, and POST /api/qizheng, /api/western, /api/ephemeris_events. BUG-700 remains blocked (do not call --pillars). BUG-701 and BUG-702 are resolved. BUG-703 is investigating (panchanga Lahiri). Skill is not bumped.
任务书与进度记录(docs/tasks/)
这里存放每一轮协作的任务书(TASK-<主题>-<日期>.md)和执行方的进度记录(PROGRESS-<主题>-<日期>.md)。2026-09-03 之前它们堆在仓库根目录,已整体搬到这里;新文件一律直接写在本目录。
- 任务书由产品/架构侧(通常是 Claude)写,包含:基线 commit、事故实证、根因、决策记录、硬红线、任务分解、验收标准。
- 进度记录由执行方(coding agent)写:做了什么、测试数字、偏离与原因。
- 被环境或依赖挡住的事项写进根目录
BLOCKED.md;Bug 事实写进docs/BUG_HISTORY.md;两者不在这里重复。 - 纯文档改动不触发 staging 门禁(见
deploy/gated-paths.txt)。
状态板
这一节是所有任务的总板。任务书推上来时加一行,状态变化时改这一行,不另开文件。
状态含义:
| 状态 | 含义 |
|---|---|
| 待领取 | 任务书已推 staging,还没有执行分支 |
| 执行中 | 有执行分支,尚未回报 |
| 待验收 | 执行方已回报,验收未做 |
| 已验收 | 验收通过并合入 staging;浏览器级真实走查仍可能欠着,见 docs/testing/ |
| 已合入 | 代码在 staging 上,但本板没有留下独立验收记录(以 PROGRESS / BUG_HISTORY 为准) |
| 待核对 | 状态板建立时无法从 staging 历史确认,需要人工核对 |
| 已上线 | 已随 main 提升进入生产 |
截至 2026-09-03,main 停在 2026-08-16 的 7b620c7a,下表没有任何一项已上线。
生时校正(rectification)
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|---|---|---|---|---|
TASK-rectification-convergence-20260830.md |
PROGRESS-rectification-convergence-20260830.md |
收敛重构 v2 | 已验收 | 3a4396a4、86ba17ee |
TASK-rectification-decision-authority-20260831.md |
PROGRESS-rectification-decision-authority-20260831.md |
决策权威归一与停止语义 | 已合入 | 9f011194 |
TASK-rectification-billing-20260831.md |
— | run_failed 与开场问题槽为空 | 已合入 | 47b4b06b |
TASK-round2-cost-and-delivery-20260831.md |
— | 第二轮真实成本与交付物 | 待核对 | — |
TASK-rectification-provisional-adopt-20260901.md |
— | provisional 采用成为一等成功出口 | 已验收 | 20df8c60(BUG-463) |
TASK-rectification-engine-convergence-20260901.md |
— | 引擎侧相邻分钟可区分 | 已验收 | 8743dcb1 |
TASK-rectification-nonterminal-exit-20260901.md |
— | 非终态轮出口统一 | 已合入 | e404b6f4 |
TASK-rectification-tails-20260901.md |
— | Round A/2 收尾 | 已验收 | c48a9656(PR #47) |
TASK-consultation-birth-accuracy-20260901.md |
— | 咨询侧出生时间精度真值传递 | 已合入 | 56daf6be(PR #49) |
TASK-rectification-question-in-message-20260902.md |
— | 题目进消息、删问题槽 | 已验收 | d9404976 |
TASK-rectification-question-ownership-fix-20260902.md |
— | 选项回归服务端、fail-closed | 已验收 | 8dfe457f |
TASK-rectification-walkthrough-polish-20260902.md |
— | 首次真实走查抛光(服务端) | 待核对 | — |
TASK-rectification-adopt-flow-20260902.md |
— | 采用流程整治 | 已验收 | 35e5781e(BUG-497~500) |
TASK-rectification-adopt-flow-fix-20260903.md |
— | 采用流程修复单(含删「用这个时间看盘」) | 已验收 | e8c98c37(BUG-501/502) |
TASK-rectification-uncertainty-stop-20260903.md |
— | 不确定度停止规则加样本下限 | 已验收 | 0c0df426(BUG-503) |
TASK-rectification-adopt-narration-20260904.md |
PROGRESS-rectification-adopt-narration-20260904.md |
探针池耗尽时采用卡旁白改 Agent 生成 + 已丢弃探针绕过 BUG-472 早退 + 区分题答否关线 | 已验收(4.1.4 点选入口未通过,见修复单) | 0aaa0d70(BUG-519/520) |
TASK-rectification-adopt-narration-fix-20260904.md |
PROGRESS-rectification-adopt-narration-fix-20260904.md |
采用旁白 Agent 在点选入口从不运行(早退分支重算过期决策)+ 校验器/可观测/超时 | 已验收(5.1/5.2 实现通过;超时测试挂死事件循环,见修复单 2) | 13dded9f(BUG-521/522) |
TASK-rectification-adopt-narration-fix2-20260904.md |
PROGRESS-rectification-adopt-narration-fix2-20260904.md |
采用旁白超时用了 unref 的 AbortSignal.timeout,测试挂死取消同文件后三条用例,门禁 npm test 退出码 1 |
已验收(门禁通过,staging 已部署) | 45bdb63e(BUG-523) |
TASK-rectification-collect-direction-20260904.md |
PROGRESS-rectification-collect-direction-20260904.md |
可评分事件 2 条时盘外核对抢跑到刚拒答的家人领域,Agent 只能改写成不指向任何领域的泛问;缺第三件带年份的事却先问职业 | 已验收:5.1/5.3/5.4 通过;5.2 顺序错位(任务书责任)见修复单 | codex/rectification-collect-direction-20260904(BUG-527~530) |
TASK-rectification-collect-direction-fix-20260904.md |
PROGRESS-rectification-collect-direction-fix-20260904.md |
dated 补采集分支插在方法轮转之前,新案例第二问被家人抢占感情/事业;7ee7f825 CSS 与合同测试脱节挡住门禁 |
已验收通过(0be51e65),待 staging 部署核对 | codex/rectification-collect-direction-fix-20260904(BUG-531~532) |
TASK-rectification-post-adopt-verify-20260904.md |
PROGRESS-rectification-post-adopt-verify-20260904.md |
采用后核对题重复已问题;核对卡「这题跳过」等于整案停止、已采用仍念"选一个先用着"、前端"没有拿到下一个问题";采用旁白承诺的 holdout/OOS 核对与实际计划不同源(原任务书 §4 错误);家庭采集题带年份前缀自相矛盾 | 待验收 | codex/rectification-post-adopt-verify-20260904(BUG-536~539) |
TASK-rectification-quality-probe-dedupe-20260904.md |
PROGRESS-rectification-quality-probe-dedupe-20260904.md |
候选区分阶段同一道"上大学"题问两次:pickProbe 按种类取第一条质量探针无视 semantic_key(第二次答案绑到错的证据);引擎对毕业等学业 kind 也套"高考发挥"模板;同域同分组质量探针不去重 |
已验收通过(浏览器走查欠) | codex/rectification-quality-probe-dedupe-20260904(BUG-540~541) |
| — | PROGRESS-rectification-adopt-card-anchor-20260905.md |
采用卡钉在历史采集题下,最新旁白没有卡;单分钟交付旁白机器腔 | 已验收通过(浏览器走查欠) | codex/rectification-quality-probe-dedupe-20260904(BUG-544~545) |
| — | PROGRESS-rectification-family-collect-continue-20260905.md |
家人答「没有」后直接给结果,未继续收能区分分钟的经历 | 已由 cd704a92 修正并验收通过 |
codex/rectification-quality-probe-dedupe-20260904(BUG-546) |
TASK-rectification-family-collect-continue-fix-20260905.md |
PROGRESS-rectification-family-collect-continue-20260905.md |
998406ce 修复单:家人之后的 dated 补采集无条件抢在现成区分卡之前(choice-card A/B 卡用例回归),另两条顺序断言缺三栏说明 |
已验收通过(浏览器走查欠) | cd704a92(BUG-547) |
TASK-rectification-probe-answer-covers-domain-20260905.md |
PROGRESS-rectification-probe-answer-covers-domain-20260905.md |
区分卡答 A/B 后紧接着又问同领域"哪年…"采集题:点选答案只进推断层不写账本,计划层领域覆盖只看账本;改为 yes/weak_yes 视为该领域采集已覆盖(不写账本、不动门) | 待验收 | 988d97ae(BUG-549) |
TASK-composer-live-input-and-stop-20260906.md |
PROGRESS-composer-live-input-and-stop-20260906.md |
生成中输入框整个禁用致焦点丢失、回车丢消息(改为永不禁用 + 排队发送);生时校正停止呈现为红色告警且选择题等待中停止无效(改为中性停止态、所有 fetch 挂 abort) | 已验收 | 055b7adc(BUG-551/552);验收段见 PROGRESS |
TASK-session-list-title-and-order-20260906.md |
PROGRESS-session-list-title-and-order-20260906.md |
历史对话标题改为首轮模型总结(一次、不扣点数、校正/今日运势保持日期标题)、侧栏去资料前缀;排序只按置顶排且元数据 PATCH 推进 updated_at(改为置顶 + 活动时间,改名/收藏/换模型不动顺序);历史区加 今天/昨天/7天/30天/更早 分组;列表按游标分页(每页 40、置顶首页全量、滚到底静默续取) |
已验收(1 项 P1) | a1956deb(BUG-553);服务端标题守卫恒不命中,修复单 TASK-session-title-guard-fix-20260906.md |
TASK-settings-dialog-and-billing-pane-20260906.md |
PROGRESS-settings-dialog-and-billing-pane-20260906.md |
设置弹窗尺寸随分区跳变、星盘资料格无条件铺开整张添加表单(改为固定尺寸四分区、列表→详情);「账户与点数」成为弹窗分区,删除 /membership 与 /membership/orders 页面并重定向,七处入口改回调 |
已验收 | dc6598d7(BUG-554);真人走查欠 |
TASK-consultation-context-and-cache-20260906.md |
PROGRESS-consultation-context-and-cache-20260906.md |
普通对话历史只取每条前 4,000 字(报告结论被砍、无标记)、历史窗口不看模型 context_window、无溢出识别;改为检查点式会话摘要 + append-only 尾巴 + 按模型预算 + 一次降级重试;Anthropic 历史断点;共享方法段进系统块;后台用量页显示缓存命中率 |
已验收 | bf8ad0d1(BUG-555/556);test:db 环境缺口;部署前先 Migrate Staging Database |
TASK-session-title-guard-fix-20260906.md |
PROGRESS-session-title-guard-fix-20260906.md |
BUG-553 修复单:consult/route.ts 标题守卫比较的是 RPC 前快照,append_consultation_question 已改写标题,守卫恒 0 行,模型标题只靠客户端 PATCH 落库 |
待验收 | codex/session-title-guard-fix-20260906(BUG-557) |
TASK-rectification-collect-vs-offer-consistency-20260905.md |
PROGRESS-rectification-collect-vs-offer-consistency-20260905.md |
带年份采集没问完就出采用卡 + 报告,同一轮又被搬家采集题把卡挤掉:决策层判 adopt_representative 而计划层仍有 dated 采集(BUG-546 只修了一半);改为剩余采集未完保持 collect_evidence,出牌轮才出卡写报告 |
已验收通过 ca4e2408(2026-09-05;staging 部署仍停在 afd14948,deploy-staging 自 c295b853 起连续失败,先解决 bab07187 的待迁移) |
codex/rectification-collect-vs-offer-consistency-20260905(BUG-550) |
TASK-rectification-convergence-exit-20260906.md |
PROGRESS-rectification-convergence-exit-20260906.md |
采集问完落到「也可以再说一件事」无出口(非收敛出牌/非终止修复兜底 other)、同年月多领域拆题与同域同年重复问、relative_support 正比例归一把引擎证据压平成 7–9 使 lead 8 不可达;改为穷尽即交付 + 口述态停止按钮、同年月合并为「发生了什么」四选卡 + 同域同年去重 + 性格题须锚点、prior 按 (分−窗口最低分) 归一并过 20 例公开 holdout 校准门 |
已验收(部分完成:B2 合并卡未做、C 校准未过门未启用;1 P1 + 2 P2 见修复单) | 150d7ef1 / 3a9ae736 / 62afa521(BUG-558~560,已合入 staging) |
TASK-rectification-convergence-exit-fix-20260906.md |
PROGRESS-rectification-convergence-exit-fix-20260906.md |
BUG-558 修复单:门槛翻译句每回合写 2~3 条相同助手消息(persistExhaustionCollect 自己写 turn + 非终止修复再写一次)、穷尽分支排在问题持久化前吞掉可渲染区分卡/holdout 题、范围小字变按钮但文案仍是状态句;并把校准结论(引擎原始分分钟级区分力≈随机)写进 BUG-560 与 BLOCKED |
已验收通过 | 814c924e(BUG-565~567);staging 未部署,需先 Migrate Staging Database |
TASK-rectification-explain-layer-20260906.md |
PROGRESS-rectification-explain-layer-20260906.md |
过程解释层(对照上游 yinduzhanxing 旧工作台唯一领先的业务层):每张卡服务端生成「为什么问这题」与 A/B/C/D「答了会怎样」、答后旁白改成「哪段升降 + 范围从 X 收到 Y」、每轮步骤条「第 N 步 / 为什么 / 下一步」;不做双视图 | 已验收(带修复单:答后旁白比的是搜索窗口,永远「范围没变」,P1) | 814c924e;修复单 TASK-rectification-capability-fix-20260907.md(BUG-569) |
TASK-rectification-range-reading-20260906.md |
PROGRESS-rectification-range-reading-20260906.md |
可信区间成为一等公民:采用时落库 adopted_credible_range,报告 read_report_candidate_range 与聊天 verified_chart(accepted) 都改读它并接同一份 birth_time_sensitivity(现在报告读的是开工窗口,BUG-568);引擎 >15 分钟只取 3 样本改为 ≤31 逐分钟;采用旁白加「稳定 / 随分钟变」两句;declared_birth_window 复用 |
已验收通过(test:db 37/0 为执行方数字,本机无 Docker) | 814c924e(BUG-568);两条迁移待应用 |
TASK-rectification-unknown-time-20260906.md |
PROGRESS-rectification-unknown-time-20260906.md |
完全不知道出生时间的两段式路线:stage=block_scan 以 10 分钟步长扫 24 小时只做事件计分、出五时段四选卡(不写账本不采用),选定后进现有分钟流程;引擎加 minute_step;开场读 birth_time_clue;删 intake 劝退文案 |
已验收(带修复单:时段支持度按段长偏置,下午段先天 25%,P1) | 814c924e;修复单 TASK-rectification-capability-fix-20260907.md(BUG-570) |
TASK-rectification-capability-fix-20260907.md |
PROGRESS-rectification-capability-fix-20260907.md |
能力补齐修复单:答后旁白把 range_start/range_end(搜索窗口)当范围比较,每题都说「范围没变」;block_scan 五段支持度按段内原始分求和,长时段先天占优(24/24/36/30/30 个候选);TRACK_LABEL 音译与产品 Vimshottari/Narayana 口径不一;BLK-001 写到 docs/BLOCKED.md 应回根目录 |
已验收通过(P2:block_scan 15 s 壁钟断言在门禁里可能间歇红) | 517df002(BUG-569~570);staging 未部署,需先 Migrate Staging Database |
TASK-rectification-declared-uncertainty-20260907.md |
PROGRESS-rectification-declared-uncertainty-20260907.md |
出生时间「有多确定」只在 intake 问一次:三档(医院记录 / 家人大概 ±15·30·60·120 / 时段或未知),校正窗口读档案(现在有钟点一律 ±15,声明值被忽略,BUG-571);吻合率 <60% 且代表分钟贴窗口边缘时出服务端一键放宽卡,放宽后重算并写回档案(BUG-572);窗口 >120 分钟先切三子段迭代到 ≤120 再进分钟(BUG-573);日级事件问一次可靠度;四个脚本化手测场景进 docs/testing | 已验收通过(2 P3 建议:可靠度正则去掉「记得」、档案写回改走 account-profile-patch) | 8e31680b(BUG-571~573);迁移 20260907020000 待应用,部署前先 Migrate Staging Database |
TASK-rectification-stale-compare-fix-20260907.md |
PROGRESS-rectification-stale-compare-fix-20260907.md |
P0:BUG-559 把过长 candidate_split_hash 塞进引擎比较键,答完性格/边界卡后比较静默失败;快照过期压过用户停止;holdout 用过期领域被改写成「再说一件事」;采集轮正文双写 |
已验收通过(P2 正文双写根因未拆、P3 重算节流 Map 只增不减) | 4e0db55f(落地编号 BUG-577~580);staging 未部署 |
TASK-rectification-stop-rescore-fix-20260907.md |
PROGRESS-rectification-stop-rescore-fix-20260907.md |
P0:BUG-579 的停止路径用「裸重算」(rescoreMinuteAfterWindowChange 不重建 inference_state、不重放已答探针、不写 transition),停止后范围变宽、卡片变成引擎裸支持度、采用 RPC 报 candidate_state_inconsistent;无框区分题经 spokenCollectFallbackFollowup 变成 domain=other 的采集题,再次冒出开场句 GENERIC_COLLECT_QUESTION;holdout 采集排在带年月采集之前 |
已验收通过(逻辑);但同提交含区间卡 tsc 错,整体不可部署 | ab57d03f(BUG-581~582) |
TASK-rectification-range-delivery-card-20260907.md |
PROGRESS-rectification-range-delivery-card-20260907.md |
结尾重设计:四张分钟卡 + 相对支持度换成一张区间交付卡(范围、代表分钟、稳定/敏感主题、边界句)+ 只列未问 D9/D10/月宿分歧的 2~3 列对比面板(文案只取类型表),动作只有「按这个范围用 / 再补一件经历」;删交付旁白里三行预测窗口;Skill §9 口径改、bump 10.0.15 | 未通过:tsc 1 错(判空顺序);P2 预测窗口句兑现不了;P3 再补经历无提示 | ab57d03f;修复单 TASK-rectification-range-delivery-fix-20260907.md |
TASK-rectification-range-delivery-fix-20260907.md |
PROGRESS-rectification-range-delivery-fix-20260907.md |
区间卡修复单:candidateResult 判空提到最前(tsc 阻断);预测窗口接到采用后首轮或删句;「再补一件经历」隐藏卡后给采集提示;进度记录须贴 tsc 原文 |
待验收 | codex/rectification-range-delivery-fix-20260907(BUG-583) |
TASK-rectification-duplicate-narration-20260907.md |
PROGRESS-rectification-duplicate-narration-20260907.md |
每轮采集旁白说两遍 + 题干在正文与问题块各一次:step-answer 的 set-focus 例外(BUG-533)放行了 set-focus 前后两个 step 的正文并拼接;detachCollectSpokenAssistantText 只剥逐字后缀,模型写进正文的问句没有代码守卫(BUG-488 防线只在提示词) |
已验收通过 | 9d1c08ca(BUG-584~585) |
TASK-rectification-other-collect-fallback-20260908.md |
PROGRESS-rectification-other-collect-fallback-20260908.md |
七领域问完落到「也可以再说一件」、职业题从未出现、不自动出卡:USER_COLLECT_QUESTION.other 仍有三条活路(职业焦点 target_domain 压成 other 后被 active-focus 承接 followup 重建;set-focus 两次无效兜底查表;无领域采集归 other),collect:other:* 焦点挂着让 persistNextInterviewIfIdle 的出卡路径永远不跑 |
已验收通过(触发链仍 investigating,BUG-586 mitigated) | 9aec5029(BUG-586) |
TASK-rectification-probe-replay-loss-20260908.md |
PROGRESS-rectification-probe-replay-loss-20260908.md |
P0 收敛不了的直接原因:答完 5 道题范围收到 8 分钟,之后每补一件经历触发的重算换了候选集,buildInferenceState 找不到已答题定义(引擎与对照包按 asked keys 排除、状态 probes 不携带、分盘 key 内嵌分钟列表)→ rounds:[]、posterior=prior,交付回到 29 分钟;证据轮旁白不报范围变化;交付卡闪现待证实 |
已验收通过(真实 Case 范围收到 2 分钟;BUG-589 闪现 investigating) | df182c16(BUG-587~589) |
TASK-rectification-covered-domain-recollect-20260908.md |
PROGRESS-rectification-covered-domain-recollect-20260908.md |
范围已收到 2 分钟、决策已是采用,却再问答过的财务题:职业覆盖后的 yearless→采集分支(L2224)不看领域是否已覆盖;shouldSkipFollowupPersist 把它当剩余采集挡住出卡;persistCollectFocus 撞 id 无条件 :next 再插;holdout occupied 不认 health/health_pressure 同义 |
已验收通过 | 7ca6ade2(BUG-590~591) |
TASK-rectification-same-year-probe-dedupe-20260908.md |
PROGRESS-rectification-same-year-probe-dedupe-20260908.md |
答完「2023 年 5 月前后」又问「2023 年前后」(BUG-559 复发):点选不重跑引擎,同一份 probes 里同域同年两题并存;TS 侧 existenceProbeAsked 只降权不排除,inspectDiscriminatorProbes 连领域+年份规则都没有。决策:同域同年硬排除、相邻年维持降权 |
已验收通过(真实环境未再出同年题) | 8ae17a26(BUG-592) |
TASK-rectification-delivery-report-facts-20260908.md |
PROGRESS-rectification-delivery-report-facts-20260908.md |
交付轮验证报告写「宽度 29 分钟」「主限偏向 05:06 / 分盘大运偏向 04:59」「04:53 D10 升狮子座」,与卡片(04:51–04:53)矛盾:skill_verification_report 用引擎推断前的 width / dasha_agreement,分盘星座让模型自算 |
已验收通过(Skill 10.0.16) | 06e44104(BUG-593) |
TASK-rectification-new-minute-inherit-20260908.md |
PROGRESS-rectification-new-minute-inherit-20260908.md |
5 题答完范围 13 分钟,补迁居事件后回弹到 28 分钟:重算换入的新分钟在携带题的 supports/conflicts 里没名字,一律中性、零冲突存活(BUG-587 决策 2 定错,本单推翻:按分盘星座 / 连续分钟段推结论);batch 内重算不触发 BUG-588 范围句 | 已验收通过(真实环境范围不再回弹) | be711043(BUG-594) |
TASK-rectification-delivery-ui-simplify-20260908.md |
PROGRESS-rectification-delivery-ui-simplify-20260908.md |
产品决定:时间卡按候选分钟逐行直接点选采用(删分歧两列 + 都不像/说不好/按这个范围用/再补一件经历)、删输入框上方「先这样」按钮、删采用后状态条、交付正文收成三句 + 八法报告折叠块(Skill 10.0.17)、交付轮两条助手消息守卫(investigating) | 已验收通过(逐行卡随后被三列方案取代) | 7e3b6cdc(BUG-595~596,Skill 10.0.17) |
TASK-rectification-candidate-compare-columns-20260908.md |
PROGRESS-rectification-candidate-compare-columns-20260908.md |
产品决定交付卡改一行三列:每列相对可能性、D9/D10/月宿性格处事、经历对照计数、往后 12 个月事件窗、「更像这个」即采用;引擎按候选分钟各算 ledger 与窗口;顺带 BUG-598 点选题成年下限在 inspect 回退路径缺失(需核对)、采集题「没有」按钮(产品可否决);Skill 10.0.18 | 已验收通过(「没有」按钮等产品答复) | a43a6db8(BUG-597~598,Skill 10.0.18) |
TASK-api-not-configured-mislabel-20260904.md |
PROGRESS-api-not-configured-mislabel-20260904.md |
16 处路由把数据库瞬断(部署切换窗口)兜底翻译成 503「服务尚未配置」;改为仅配置错误用该文案,其余 service_unavailable,收敛为共享 helper |
已验收 | 5483649b(BUG-542);2 条子进程测试留 CI Node 22 复核 |
TASK-rectification-ux-20260902.md |
PROGRESS-rectification-ux-20260903.md |
会话面空白假死与交互摩擦 | 已验收 | d159f08e(09-03 在新基线重做后合入,BUG-505~509) |
TASK-rectification-timeline-20260909.md |
— | 常驻吸顶时间轴:轴锁当前搜索窗口并随放宽缩放、时段/分钟两套标记、候选点二元编码不分置信度(BUG-560 blocked)、无 hover(BUG-575)、只读不可采用。实现用第三个 grid 行而非 position: sticky,useConversationScrollAnchor 一行不改;条高固定是正确性要求;吸顶条只留区间与宽度两个元素 |
已验收通过;宽度口径与空心点两处未通过→修复单 | ce91a0d2 |
TASK-rectification-timeline-fix-20260909.md |
PROGRESS-rectification-timeline-fix-20260909.md |
时间轴修复单:宽度读数改含两端分钟数(与 BUG-593 报告/卡片一致);标记改读推断层候选全集,被淘汰分钟留在原地变空心(客户端投影只含 active,DESIGN §10 描述在真实数据下画不出) | 已验收通过 | 92e3d5e7(BUG-602~603) |
TASK-rectification-conversation-economy-20260909.md |
PROGRESS-rectification-conversation-economy-20260909.md |
对照竞品后产品拍板三条:开场三句讲做法 + 一次收多件(推翻 opening brief「不要一次说完/不举例」与 SKILL L52);采集题「没有 / 记不清」按钮(不做示例骨架条);每轮只留一句(方法句进活动记录、点选旁白去领先落后、证据轮正文一句复述 + 服务端裁剪);Skill 10.0.19 | 已验收通过(2 条 P3 备注) | aa7ccb30 + 1453fb16(BUG-604~606,Skill 10.0.19) |
TASK-consultation-daily-empty-answer-20260909.md |
PROGRESS-consultation-daily-empty-answer-20260909.md |
首页「深入看今日」计算完成却 empty_answer:入口定的 timing 被模型改成 general(canonicalDomainPlan 以模型为准),分段写作标题与今日格式错位,分段 maxSteps=1 且工具仍可调 → 模型在分段里再调工具、零正文;思考流按 chunk 过滤漏出缺词英文 |
已验收通过 | 17b36f3a(BUG-612~613) |
TASK-rectification-compare-card-polish-20260909.md |
PROGRESS-rectification-compare-card-polish-20260909.md |
三列卡两列经历对照 0、三列无未来窗:引擎按引擎前三算 by_time,卡片按推断前三查表,键不匹配(BUG-614);交付旁白被 BUG-606 裁成一句(BUG-615);设计减法:相同性格句只写一次、经历对照说人话、删小标题、右栏本命宫位改北印星盘、换升时刻默认折叠 | 已验收通过(by_time 只算 9 个 → BUG-632) | (BUG-614~615) |
TASK-rectification-history-open-20260909.md |
PROGRESS-rectification-history-open-20260909.md |
历史生时校正打不开:open_agentic_rectification_case_v2 把 Case 绑定 Skill 身份与当前注册版本做相等比较,两天内 10.0.15→10.0.19 五次 bump 让所有旧 Case 被拒;错误码未映射成 500;错误只画在首页卡下 → 表现为点了没反应。决策:session 打开用绑定身份(v1 取 Case → 读身份 → 注册表核验 → v2),不改迁移 |
已验收通过 | a31a5e24(BUG-621) |
TASK-rectification-window-cluster-cap-20260909.md |
PROGRESS-rectification-window-cluster-cap-20260909.md |
P0 真实用户:一小时窗口分 17 个签名簇,select_signature_representatives 按时间取前 12 个,14:40 之后整簇丢弃(本机复现表);区间按代表分钟跨度而非簇覆盖;中途说出真实时段时助手口头答应却未改 → 改为固定回复"范围开始时按资料定、中途不改"(产品否决口头改范围);intake 自定义范围等产品答复 |
已验收通过(申报拦截误伤经历 → BUG-631;intake 自定义范围等产品) | 6008c07c(BUG-623~625,Skill 10.0.20) |
TASK-rectification-skipped-health-deadend-20260909.md |
PROGRESS-rectification-skipped-health-deadend-20260909.md |
真实用户:健康题「记不清」后职业答完即断(『没有拿到下一个问题』):holdout 的 declined 未归并 health/health_pressure,把跳过的健康线再问一次,撞同 id 焦点 duplicate_focus 静默;出口闸门把 exhausted 当已交付不修复;『重新加载』只重取快照 |
待验收 | codex/rectification-skipped-health-deadend-20260909(BUG-626~627) |
TASK-rectification-domain-alias-audit-20260909.md |
PROGRESS-rectification-domain-alias-audit-20260913.md |
领域命名审计:健康线 health(账本/焦点)与 health_pressure(计划/引擎)在十处比较里六处未归并(holdout declined、reverse-verify、conflict probes、probeYearAlreadyCovered、引擎 oos_blind_prompts / _event_years / volunteered);职业线焦点存为 other 只靠 questionId 兜底。其余六领域三层同名无问题。决策:TS/Python 各一个归并函数 + 源码合同禁字面量比较 |
待验收 | codex/rectification-domain-alias-audit-20260913(BUG-672;任务书写 BUG-628,该号已被口述采集按钮占用) |
TASK-rectification-yearless-probe-downgrade-20260909.md |
PROGRESS-rectification-yearless-probe-downgrade-20260909.md |
产品拍板:无年月性格题(D9/D10 风格、月宿边界)降级为平局裁决——带年月题问完且候选仍分不开才问,分值减半(±1)、不计淘汰,报告标「参考」;三列卡性格描述不动;新增离线命中率测量脚本 + 导出 SQL(有出生证用户,聚合);Skill 10.0.21 | 已验收通过 | fef54b6e(BUG-629,Skill 10.0.21) |
TASK-rectification-followups-20260909.md |
PROGRESS-rectification-followups-20260909.md |
验收补漏:申报时段拦截只看钟点样式,带钟点的经历(『20:00 左右分手』『3 点到 5 点被车撞』)会被吞(BUG-631);by_time 只算引擎前 9 个候选,一小时窗 17 个候选时卡片列写『还没对照』(BUG-632) | 待验收 | codex/rectification-followups-20260909(BUG-631~632) |
TASK-rectification-evidence-turn-empty-answer-20260910.md |
PROGRESS-rectification-evidence-turn-empty-answer-20260910.md |
证据轮模型无正文被判整轮失败:证据、评分、下一问都已落库却只剩『没有拿到下一个问题』(BUG-633);答题旁白只说『范围没变』、时间线写死『还在收窄』(BUG-634) | 待验收 | |
TASK-rectification-unwritten-evidence-claim-20260910.md |
PROGRESS-rectification-unwritten-evidence-claim-20260910.md |
证据轮模型只说『记下了』却没调 batch、没设下一问,财务一件静默丢失、流程停在原题且照常扣点(BUG-635);校正流不识别 Mastra schema 拒绝信封,会把被拒的 batch 报成 completed(BUG-636) | 已验收通过(2026-09-10,Claude;环境缺口:next build / 真人走查) |
codex/rectification-unwritten-evidence-claim-20260910 |
TASK-rectification-latent-audit-20260910.md |
PROGRESS-rectification-latent-audit-20260910.md |
顺带审计:账本派生同年键误杀 known_event_quality(BUG-637,BUG-389 复发);双轨一致性按 31 分钟逐分判冲突并降置信度、与报告两套口径(BUG-638);不可分宽度按簇代表分钟少算(BUG-639);引擎与推断层两套代表分钟、回执宫位表不是卡片那一分钟(BUG-640);另 8 条观察项 |
已验收通过(2026-09-10,Claude;环境缺口:next build / 真人走查) |
codex/rectification-unwritten-evidence-claim-20260910 |
TASK-rectification-collect-semantics-20260910.md |
PROGRESS-rectification-collect-semantics-20260910.md |
产品决策三改:Skill 去掉「财务/健康只有主动说才问」并清空 Python VOLUNTEER_ONLY,升 10.0.22(BUG-641);带年份线索的采集题优先、题干带线索不矛盾,推翻 BUG-539 的整句去前缀(BUG-642);删掉「没有/记不清」原字匹配,分类器分 no/unsure 两类(BUG-643) |
待验收 | 52db714b(BUG-641~643) |
TASK-rectification-superseded-focus-duplicate-20260910.md |
PROGRESS-rectification-superseded-focus-duplicate-20260910.md |
P0:一轮两次 batch 让感情采集题被顶替成 superseded 行;题号唯一约束含已结束行、汇总只聚合 declined/skipped,计划层看不见→撞号 duplicate_focus 被当「已问过」→出口误走交付旁白无卡(BUG-644);交付口吻与 can_adopt=false 矛盾(BUG-645) |
待验收(环境缺口:next build / 真人走查) |
a3a51c32(BUG-644/645) |
TASK-rectification-exhausted-gate-exit-20260910.md |
PROGRESS-rectification-exhausted-gate-exit-20260910.md |
五领域全拒答 + 三件带月经历:门槛句后无载体、客户端误报「没有拿到下一个问题」并循环「接着问」(BUG-646);第三件被留作 holdout 导致永远没有选择题(BUG-647)。含产品建议:一次性开放追问 + 终态标记 + 穷尽后释放 holdout | 已被取代(并入采集重设计单) | — |
TASK-rectification-collection-redesign-20260910.md |
PROGRESS-rectification-collection-redesign-20260910.md |
产品口径:用户先说、系统从已说的事锚定追问、不得用生日推年份、不得说「领域」、永远交付结果。无固定题数:收集问题池按信息价值排序问到训练门开;选择题问到收敛门开或增益见底;门关不出结果只出精确缺口句并保持开放;≥4 件才留 holdout;撤回 BUG-642 年份线索、BUG-646 单终态与「暂定采用」;Skill 10.0.23(BUG-646~648) | 待验收 | dd8f35f7 |
聊天主链路与首页
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|---|---|---|---|---|
TASK-chat-message-authority-20260901.md |
— | 消息服务端权威化 | 已验收 | b6989c3e(BUG-464) |
TASK-session-url-20260901.md |
— | 会话 URL 化 | 已验收 | 924f4202 |
TASK-cloud-truth-convergence-20260901.md |
— | 本地/云端双份真相收敛 | 已验收 | ce6a8a7e(BUG-466) |
TASK-home-split-20260901.md |
PROGRESS-home-split-20260901.md |
拆分首页巨石组件·第一批 | 已验收 | 54269fcf |
TASK-contract-repairs-20260901.md |
PROGRESS-contract-repairs-20260901.md |
孤儿契约红修复 | 已验收 | 551d6317(与第二批同提交) |
TASK-home-split-batch2-20260901.md |
PROGRESS-home-split-batch2-20260901.md |
拆页第二批:聊天主链路 | 已验收 | 551d6317 |
TASK-home-split-batch3-20260901.md |
PROGRESS-home-split-batch3-20260901.md |
拆页第三批:onboarding/profile | 已验收 | bf6989ec + 058e5db9(BUG-470) |
TASK-agent-voice-20260901.md |
— | Agent 输出语气 | 已合入 | ed9497e7(PR #48) |
TASK-chat-streaming-ux-20260901.md |
PROGRESS-chat-streaming-ux-20260901.md |
流式体验与双会话面统一 | 已验收 | 4dc0c8c7(BUG-473~478) |
TASK-unified-loading-20260902.md |
PROGRESS-unified-loading-20260902.md |
首页一次等待一次揭幕 | 已验收 | 482796fc(BUG-479) |
| — | — | 初始化后点首页「家庭」报运行合同未完成:本命第一步未强制计算工具、主题卡无入口钉死 | 入口已下线,机制保留供历史会话 | codex/consultation-family-contract-incomplete-20260909(BUG-630);主题卡发出点已删,guided_topic 枚举仍可读回;走查 docs/testing/consultation-family-contract-incomplete-20260909.md 不再可执行 |
TASK-chat-reading-load-20260915.md |
PROGRESS-chat-reading-load-20260915.md |
首页主题卡下线 + 回答两层可见性 + 折叠层宽表可横滑 + 输入框 16px。内容一字不删。⚠️ BUG-630 走查路径失效 | 已验收(2 条契约测试未通过,见修复单) | 8144fca2 |
TASK-mobile-touch-and-breakpoints-20260915.md |
PROGRESS-mobile-touch-and-breakpoints-20260915.md |
消息操作按钮触屏命中区 27×34、相邻仅隔 1px(BUG-695);CSS 平板上限 900px 与 sidebarViewportForWidth 的 1024 不一致,901–1023 是混合态(BUG-696);报告域 720/760/860 三个断点互不对齐,761–860 目录已塌、正文还是桌面(BUG-697)。含断点白名单契约测试。串行在 chat-reading-load 之后 |
已验收 | 6c748d86(BUG-695~697) |
TASK-chat-reading-load-fix-20260915.md |
PROGRESS-chat-reading-load-fix-20260915.md |
验收修复单:chat-bundle-splitting-contract(message-markdown 包裹数 1→2、plainParagraphs(spoken) 字面量已不存在)与 chat-navigation-a11y-contract(window.location.assign("/login") 4→3,建议问题入口删除带走一处)两条既有断言被本轮打红且未更新;Linux 全量 27→29。只改测试不改产品代码 |
待验收 | codex/chat-reading-load-fix-20260915 |
TASK-rectification-open-retitles-session-20260915.md |
PROGRESS-rectification-open-retitles-session-20260915.md |
P0 复发单:点侧栏历史校正会话,openRectificationCase 无条件用墙钟重算 title 并把 updatedAt 盖成此刻(同一处 pinned/archivedAt 却从 existing 继承了),persistSession 把改名写回服务端 → 12 号的会话被改成「9月15日 · 生时校正」并顶到列表最前。标题永久损坏、排序刷新可恢复。复发自 BUG-553(其防复发只是一句话,无测试执行,且没覆盖校正 open 路径)。含历史标题按 created_at 修回(BUG-699);另两条:校正答题从不推进 chat_sessions.updated_at,会话边用边下沉、名字是今天而位置是旧日期(BUG-700);?c= 只比对已加载那一页,翻不到就报「该对话不存在或已被删除」并清掉 URL(BUG-701) |
待验收 | codex/rectification-open-retitles-session-20260915 |
TASK-rectification-tiebreak-card-loss-20260915.md |
— | P0:点交付卡上「再答两道参考题」,新写的未答题让 applyLiveCandidateOffer 把 candidateOffer 从每条消息剥掉 → 卡整条消失(BUG-702);按钮可用判据(tieBreakPersonalityAvailable)与题目可渲染判据(buildChoiceCard 的 styleOptions.ok)不一致 → 题目渲染成没有选项的裸题,两条路都断(BUG-703);交付旁白写「相对支持度都是 16」违反 VOICE 禁用词,且自称不再问分盘题却同时提供分盘题入口(BUG-704)。产品重申:卡上不要这个按钮,出卡前收集、以卡结算 |
待领取 | codex/rectification-tiebreak-card-loss-20260915 |
TASK-settings-dialog-size-and-nav-20260915.md |
— | 复发单:设置弹窗四个分区尺寸仍随内容跳变(BUG-698,复发自 BUG-554——旧防复发只查「有没有写 height」,查不到「写了没生效」);首要嫌疑是 .settings-modal 的 dvh 没有 vh 回退,不支持时整条 height 作废退化成内容高度,需先复现确认。另按产品要求去掉分区菜单左侧强调条,并拆开与悬停共用的选中态 |
待领取 | codex/settings-dialog-size-and-nav-20260915 |
个人报告
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|---|---|---|---|---|
TASK-report-sectioned-generation-20260830.md |
PROGRESS-report-sectioned-20260830.md |
分章节生成 | 已合入 | 见 PROGRESS |
TASK-report-skill-parity-20260901.md |
PROGRESS-report-skill-parity-20260901.md |
内容对齐 skill 解读深度 | 已验收 | 90bad10d、ef1bd6df |
TASK-report-blocked-repairs-20260902.md |
PROGRESS-report-blocked-repairs-20260902.md |
全主题 blocked 修复 | 已验收 | 7faf8555 |
TASK-report-section-writer-failure-20260902.md |
PROGRESS-report-writer-failure-20260902.md |
写作阶段 report_schema_invalid | 已验收 | eda37c15(后续 43294265、5c0bec0c、fbd6e480、cf6405ed) |
TASK-report-sensitivity-crash-20260904.md(仓库根) |
PROGRESS-report-sensitivity-crash-20260904.md |
consultation_workflow float 时辰崩溃,全量 500 | 执行中 | codex/report-sensitivity-crash-20260904(BUG-524) |
TASK-report-candidate-range-read-20260904.md(仓库根) |
PROGRESS-report-candidate-range-20260904.md |
accepted 生时报告直读已收权校正表 | 待验收 | e27d5dc5(BUG-526/534;终稿见 BUG-535) |
TASK-report-chart-cap-20260904.md(仓库根) |
PROGRESS-report-chart-cap-20260904.md |
文档 charts 上限绑定 CHART_IDS | 待验收 | 4ef4c406(BUG-535) |
TASK-report-longform-parity-20260905.md(仓库根) |
PROGRESS-report-longform-parity-20260905.md |
长报告对齐全量版并挂入产品附录 | 待验收 | codex/report-longform-parity-20260905(任务 6 待部署后核对) |
TASK-report-longform-gaps2-20260906.md(仓库根) |
PROGRESS-report-longform-gaps2-20260906.md |
长报告真实参数组合下的装配缺口 | 待验收 | codex/report-longform-gaps2-20260906(BUG-561/562 cfcd369d;补洞 BUG-564 e4d16b75) |
TASK-report-md-page-20260906.md |
PROGRESS-report-md-page-20260906.md |
长报告 Markdown 直接作为报告页 | 已合入 | cfcd369d / 809bdf13(BUG-563 lint 随后修) |
TASK-report-list-500-20260907.md(仓库根) |
PROGRESS-report-list-500-20260907.md |
列表 PostgREST JSON 路径 500 | 待验收 | b466a6fc(BUG-574) |
| — | PROGRESS-report-progress-20260909.md |
生成等待屏只有 spinner 与秒表:后端 progressPercent / progressPhase 与分章行已产出,前端解析后一字未渲染,且分章行在 generating 时根本不出服务端。改为按章分格进度条 + 章节清单,停滞 90 秒改「用时较长,仍在写」;不画百分比条、不做插值动画、不报预计剩余 |
已验收 | 848e39e6、5565b632(BUG-601) |
TASK-report-chart-render-20260909.md |
PROGRESS-report-chart-render-20260909.md |
报告页所有分盘标题下空白:引擎 22 张 <svg> 被 skipHtml 丢弃(09-06 Markdown 直渲回归)。引擎旁加 ```jyotish-chart 围栏 JSON,前端 zod 校验后用自绘北印式组件全部渲染;不放开原始 HTML |
已验收(2fdcb14f):tsc/lint 0 error、chart 测试 29/29、/ Static、gzip +0.96%;围栏构造在 try 外的 P2 并入 TASK-upstream-sync2-fix-20260909.md 任务 3 |
codex/report-chart-render-20260909(BUG-607) |
TASK-report-chart-layout-fix-20260909.md |
PROGRESS-report-chart-layout-fix-20260909.md |
星盘渲染回归修复:22 张北印盘全部重叠(浮动 + 负 margin 凑两栏对连续多对无效)+ 滚动时 components 每渲染新建导致整篇报告卸载重建、页面卡;改 rehype 成组进既有两栏 grid、文章树 useMemo、目录状态下沉 |
待验收 | 87daffe2(BUG-616/617);已 merge origin/staging df090fd5 |
TASK-report-provenance-binding-20260915.md |
PROGRESS-report-provenance-binding-20260915.md |
专业报告溯源绑定:result_binding 只绑到中间态包(实测 18/36 个顶层键、6.24 MB / 交付 10.04 MB),full_report_pack、chart_identity、timing_precision_contract 等全在覆盖外,而质量门只比自洽所以恒 passed(BUG-693);被哈希的载荷含墙钟 ai_and_audit.summary.elapsed_seconds,同一输入两次跑出不同 result_hash(BUG-694)。末尾按交付对象重绑 + 显式排除集写进回执 + 质量门补覆盖校验;上游 09-14 的有界投影实测收益 < 0.1 秒,不抄 |
已验收(1d2aeffa):三次 CLI + 三个 PYTHONHASHSEED 哈希全同、变异法验证覆盖 33/40 键、耗时中位数 2737 ms(修复前 2769 ms)、npm test fail 27 = 基线;快速门唯一红的 test_shadbala_endpoint_returns_ranked_planet_strength 在修复前同样红(timezone 依赖缺)。遗留补漏单 TASK-report-binding-scope-lock-20260915.md |
1d2aeffa |
TASK-report-binding-scope-lock-20260915.md |
PROGRESS-report-binding-scope-lock-20260915.md |
验收补漏单:BUG-694 的「排除集只能三类」是纸面规矩——质量门与测试引用的是生产者同一对常量,往常量里加第四类会自动放行;把允许集的字面量钉进合同测试(改动即红)。另把 --profile quick 必红的 timezone inference dependency unavailable 记进 BLOCKED.md(修复前同样红,非回归)。不新增 BUG 编号,只更新 BUG-694 |
已验收(8d56d0ab):生产代码零改动;变异法验证字面量锁(加 **.generated_by 只红这一条,恢复即绿);timezone 那条经查是验收机少装已声明依赖,装上 timezonefinder 9.0.0 后快速门 pytest 段 740 passed / 0 failed,BLOCKED.md 该条已划掉并改记 npm test 27 条无 Docker 失败 |
8d56d0ab |
前端基础与工程
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|---|---|---|---|---|
TASK-frontend-optimization-20260828.md |
PROGRESS-frontend-optimization-20260828.md |
前端优化九条 | 待核对 | 分支 codex/frontend-optimization-20260828 |
TASK-frontend-followup-20260829.md |
PROGRESS-frontend-followup-20260829.md |
九条收尾 | 待核对 | — |
TASK-frontend-interaction-20260830.md |
PROGRESS-frontend-interaction-20260830.md |
交互与 UI 收尾 | 待核对 | 分支 codex/interaction-20260830 |
| — | PROGRESS-react-compiler-20260817.md |
React Compiler 接管首页 | 已回滚 | 结论见 BLOCKED.md |
TASK-engine-runtime-hygiene-20260901.md |
PROGRESS-engine-runtime-hygiene-20260901.md |
Python 引擎运行时治理 | 已验收 | 124d3990(staging 实机三条待部署窗口) |
TASK-billing-pricing-20260830.md |
PROGRESS-billing-pricing-20260830.md |
计费闭环与功能级定价 | 已合入 | aaaa5fb7~a499c344 |
待开的任务书(2026-09-03 审查决定)
| 主题 | 内容 | 状态 |
|---|---|---|
| staging 测试账号 | 给验收环境一个虚构资料的受控账号,让 API 级端到端验收可做 | 待产品负责人提供 |
仓库整备与发布前置
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|---|---|---|---|---|
TASK-repo-hygiene-20260903.md |
PROGRESS-repo-hygiene-20260903.md |
岁差默认 Raman + 用户设置可选、参考集锁口径、发布门本地可复现、注册表白名单、仓库地址、早期日志搬家、远端分支清理 | 已验收(带修复单) | b6a70aa7、2415e751、01a45363(BUG-511);验收结论见修复单附录 |
TASK-repo-hygiene-fix-20260903.md |
PROGRESS-repo-hygiene-fix-20260903.md |
Gulika 全局岁差泄漏(P1)、设置类名无样式、提示语对齐校正现状、剩余 lahiri 字面量、测试不写仓库 | 已验收 | 027e4b08、c1e3f32a(BUG-512/513);Gulika 泄漏实验已复核为不泄漏,全量 pytest 后仓库干净 |
上游同步与能力接入
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|---|---|---|---|---|
TASK-upstream-sync-20260903.md |
PROGRESS-upstream-sync-20260903.md、PROGRESS-upstream-capabilities-20260903.md |
上游快照推进到 a6f47abd、引擎三方合并、health 三窗 / VedAstro REST 桥 / 专业报告导出 / 新字段接聊天与报告 / 校正解冻三项 |
已验收 | 0/1/2/4/6:45d13258、f2241463、734d2059;3/5/7:c2f23131~6063c1f7(BUG-514)。staging 已部署 6063c1f7。修复单 4ee79210 已验收 |
TASK-upstream-sync-fix-20260903.md |
PROGRESS-upstream-sync-fix-20260903.md |
非原生主题恢复 degraded、finance Yogi/D11/confidence cap、模板注册表引用、VedAstro/MCP finance 路由与 quick CORE 扩列 |
已验收 | 4ee79210(BUG-515);staging health 已到该 SHA;十主题 e2e 合同全对,Python 红 90→69 无新增 |
TASK-upstream-sync2-20260909.md |
PROGRESS-upstream-sync2-20260909.md |
上游活跃分支 b9a0ef8f(未进 main):婚恋三层触发模型(punarphoo / event_class_split 进证据链)+ 十套条件大运接 full reading 与长报告时间系统表;快照锁推进;Skill 6.9.16;不取 shadbala profile / PL9 用户版 / 校正泄漏项 |
已验收(04ad3325):定向 176 通过、quick 门 708/1 env 失败、pl9 时间系统表 5+10 行;1 P1(网页咨询路径 dasha_info 无 MD/AD,事件类拆分空转)→ 修复单 TASK-upstream-sync2-fix-20260909.md |
分支 codex/upstream-sync2-20260909(BUG-608) |
TASK-upstream-sync2-fix-20260909.md |
PROGRESS-upstream-sync2-fix-20260909.md |
修复单:_thematic_dasha_info 改读 dasha_sub_periods.current、婚恋 activation 句按事件类出、_render_south_chart 围栏失败不打断报告、health 版本读 __version__ |
待验收 | 7d3bb0c5(BUG-609~611) |
TASK-rectification-occupation-dated-answer-20260911.md |
PROGRESS-rectification-occupation-dated-answer-20260911.md |
09-11 真机:职业题答出的年月被 applyOccupationCollectLedgerNorm 抹成 unknown 不计分(BUG-649)+ 工具轮缺口句未并入正文(BUG-650) |
已实现 1fa994ea,已部署 |
codex/rectification-occupation-dated-answer-20260911 |
TASK-rectification-probe-pool-exhausted-exit-20260911.md |
PROGRESS-rectification-probe-pool-exhausted-exit-20260911.md |
09-11 真机:六道带年月题问完后决策仍判「出区分题」(性格题被当区分题)而持久化无载体 → 「没有拿到下一个问题」(BUG-651/652) | 已实现 66f63c76 + f870d3d7,已部署 |
codex/rectification-probe-pool-exhausted-exit-20260911 |
TASK-rectification-narrow-before-deliver-20260911.md |
PROGRESS-rectification-narrow-before-deliver-20260911.md |
09-11 真机:池空即出卡但范围仍 20 分钟——探针只在引擎跑时按初始簇生成一次、家人题被 0.85 先验丢弃、交付前无定向补事(BUG-653/654,Skill 10.0.24) | 已实现 6c9a0896,已部署;验收见修复单 |
codex/rectification-narrow-before-deliver-20260911 |
TASK-rectification-targeted-collect-persist-20260911.md |
PROGRESS-rectification-targeted-collect-persist-20260911.md |
09-11 真机:6c9a0896 后六题答完又无题无卡——定向/锚定/通用采集题 kind_hint 违反 target_kind CHECK 落不了库、引擎刷新用整网格空转、targetedCollectExhausted 按池非空判定成永久等待。执行方只拿到 T0/T3 片段,做成 BUG-655(刷新空题不写库) |
部分实现 512be9b7;余项见修复单 |
codex/rectification-targeted-collect-persist-20260911 |
TASK-rectification-targeted-collect-persist-fix-20260911.md |
PROGRESS-rectification-targeted-collect-persist-fix-20260911.md |
修复单:BUG-656 采集焦点 kind 映射到 CHECK 枚举;BUG-657 引擎刷新按 column_times 取剩余候选;BUG-658 刷新尝试持久化 + 等待收窄以已问过判定(512be9b7 让无新题时 GET 永远等待且每轮重调引擎) |
已实现 eae049d0 + 529fcc09,已部署;静态验收通过,真机六题流程待走 |
codex/rectification-targeted-collect-persist-fix-20260911 |
TASK-rectification-set-focus-tool-failed-20260912.md |
PROGRESS-rectification-set-focus-tool-failed-20260912.md |
09-12 真机:记完两件学业后 rectification-set-focus 连续六次 tool_failed(兜底码,原始错误无处记录;焦点其实已由 batch 工具落下)、宿主兜底正文日期重复(BUG-659/660) |
待验收 | codex/rectification-set-focus-tool-failed-20260912 |
TASK-rectification-after-pool-empty-decision-20260913.md |
— | 决策单草案:六道带年月题问完、引擎刷新无新题后,定向补事是开放式口述题,体感死板。给出 A 逐条点选 / B 放宽引擎出题(先离线量收益)/ C 参考题可选入口 / D 文案 四个方案,建议 A+D(+C) | 已拍板 2026-09-13:A+D+C 进 TASK-rectification-targeted-collect-cards-20260913.md,B 进研究单 |
— |
TASK-rectification-targeted-collect-cards-20260913.md |
PROGRESS-rectification-targeted-collect-cards-20260913.md |
定向补事改逐条点选卡(有/没有/记不清 → 有则口述年月;没有不计分只防复问;全没有出卡)+ 文案说清剩余候选与线 + 卡下「再答两道参考题」入口(BUG-661~663,Skill 10.0.25) | 已实现 530f260f,已部署;2026-09-13 验收:T1/T2/T4 通过,T3 入口留死角 → TASK-rectification-tie-break-entry-fix-20260913.md |
codex/rectification-targeted-collect-cards-20260913 |
TASK-rectification-probe-supply-research-20260913.md |
— | 研究单:六题后引擎在剩余候选上再出带年月题的四种放宽规则,20 例公开 AA 数据离线量收益,有收益才立实现单 | 已合入(离线测量,不改线上) | b063c668 |
TASK-rectification-refresh-r3-r4-20260913.md |
PROGRESS-rectification-refresh-r3-r4-20260913.md |
刷新阶段 R3(MIN_BOUNDARY_DAYS 45→30)+ R4(pratyantar 与 D9/D10 上升 Narayana);首轮出题不变。即使放宽仍有 0 题例子,定向补事另线保留(BUG-664/665) | 已实现 ab1ade59,已部署;2026-09-13 验收通过(实现单由执行方自拟,无产品决策记录段;收益口径见研究文档) |
codex/rectification-refresh-r3-r4-20260913 |
| TASK-rectification-tie-break-entry-fix-20260913.md | PROGRESS-rectification-tie-break-entry-fix-20260913.md | 修复单:参考题入口只读 window_scan 标志位 → 两道答完后仍显示、再点弹「现在没有可答的参考题」;并按产品拍板改成点一次连出 D9+D10(BUG-666~668,Skill 10.0.26) | 待验收 | codex/rectification-tie-break-entry-fix-20260913 |
| TASK-rectification-targeted-card-dead-20260913.md | PROGRESS-rectification-targeted-card-dead-20260913.md | P0:定向补事卡在快照投影里拿不到 choice_card(承接焦点分支不重建 choice_frame),卡片看得见点不动、流程停在采集等待态;模型还会把定向题改写成口述题(BUG-669~671)。先于 tie-break 修复单执行 | 待验收 | codex/rectification-targeted-card-dead-20260913 |
| TASK-rectification-tiebreak-hold-exit-fix-20260914.md | PROGRESS-rectification-tiebreak-hold-exit-20260914.md | P0 回归修复单:BUG-686 的风格题前置把耗尽与收口路径的交付也压住了,npm test 由 27 红涨到 33(6 条「该交付却不交付」)。后续 6fd7925a 只改断言把它们改绿:4 条文案放宽可接受,2 条实质弱化(「恰好一条交付闸」退化成短路、参考题确认语被算作出口载体)必须恢复;行为层根因未动。hold 要带出口、不得作用于 exhausted/closed-ceiling,最多 hold 一次(BUG-688)。尚未部署,未影响线上 | 待验收 | codex/rectification-tiebreak-hold-exit-20260914 |
| TASK-rectification-invite-copy-and-assertions-fix-20260915.md | PROGRESS-rectification-invite-copy-fix-20260915.md | P0 验收修复单:BUG-689 的邀请语硬编码「这两分钟」却与同段话的「4 个候选」矛盾;BUG-689/690 各自把 4 条与 1 条契约断言留红(npm test 27→32)。修文案按候选数出话、两处断言跟上、并给精度研究 M1b 的 V1/V2 追加「未测」勘误(BUG-692) | 待验收 | codex/rectification-invite-copy-fix-20260915 |
| TASK-rectification-record-conflict-copy-20260914.md | PROGRESS-rectification-record-conflict-copy-20260914.md | BUG-690 的 D4 收口:产品 2026-09-14 拍板记录优先、分歧如实呈现——默认仍按出生记录时间排盘(行为已成立),校正区间标成「证据倾向」,采用入口在冲突时改成「改用校正结果」;系统不得宣布记录错或校正无效(BUG-691) | 待执行 | codex/rectification-record-conflict-copy-20260914 |
| TASK-rectification-birth-time-provenance-20260914.md | PROGRESS-rectification-birth-time-provenance-20260914.md | 与上游流程对照发现的缺口(上游 R2):录入时已问「医院记录 / 家人记得大概 / 只知道时段」并落库 birth_time_source,但整条校正链只在放宽窗口时用过一次,决策与文案一律不看它——家人推算的时间和出生证在系统里等同对待,输出还直接称「你的出生时间」。本单把来源标签接进投影并分档措辞(BUG-690) | 待验收 | codex/rectification-birth-time-provenance-20260914 |
| TASK-rectification-precision-adaptive-boundary-research-20260914.md | PROGRESS-rectification-precision-gate-research-20260914.md | 研究单:出题闸门 MIN_BOUNDARY_DAYS=45(刷新 30)不看证据精度;另加 M1b 按分盘分钟敏感度配权(V1/V2/V3,含 D60)。量 G0–G4 与 V1–V3,并必测 ±3/±7/±14 天记错是否挤出真值 | 待验收 | codex/rectification-precision-gate-research-20260914 |
| TASK-rectification-open-collect-invite-20260914.md | PROGRESS-rectification-open-collect-invite-20260914.md | P0:固定七条采集线问完后只说「能问的都问完了」,用户不知道还能补经历、也不知道补了有用;而两轮研究证明补带年月经历是唯一有效手段。产品拍板:交付卡照出 + 卡上给不限领域的补充邀请(先要确切日期,再退年月;举七条线之外的例子),补完必须可见生效(BUG-689) | 待验收 | codex/rectification-open-collect-invite-20260914 |
| TASK-rectification-cluster-width-research-20260914.md | PROGRESS-rectification-cluster-width-research-20260914.md | 研究单:上一轮证明调权重改不动交付区间宽度——所有方案宽度中位数都等于整个搜索窗。先确认 sweep 的宽度口径是否含淘汰(M0),再画簇结构像(M1),最后量三个改法:放宽簇上限、按分差决定是否合并、交付区间改分位覆盖(M2)。真值覆盖率不得下降 | 待验收 | codex/rectification-cluster-width-research-20260914 |
| TASK-rectification-minute-resolution-research-20260914.md | PROGRESS-rectification-minute-resolution-research-20260914.md | 研究单:候选分不开的根因是打分尺度——窗口内恒定项 11.5 分 vs 随分钟变化项 2.125 分(≈5:1)。先修封存基准(v3 每例仅 3 件事且被标 invalidated)出 v4,再离线量五个改法:分盘除数、去底座、KP 宫头子主计分(产品 09-14 拍板,推翻 BUG-325 一条红线)、年精度事件改边际似然、聚类签名层对齐。有收益才立实现单 | 待验收 | codex/rectification-minute-resolution-research-20260914 |
| TASK-rectification-tiebreak-before-card-20260914.md | PROGRESS-rectification-tiebreak-before-card-20260914.md | P0:点「再答两道参考题」服务端 ok 但界面无反应(requestTieBreak 的 loadCaseSnapshot() 不带合并回调,新 turn 不入对话区)(BUG-685);产品拍板放宽版 A——出交付卡前只要参考题可用且没用过就先问两道(不看分差),卡上收起按钮(BUG-686);交付文案列出用户已拒答的线(BUG-687) | 待验收 | codex/rectification-tiebreak-before-card-20260914 |
| TASK-rectification-tied-first-premature-delivery-fix-20260914.md | PROGRESS-rectification-tied-first-fix-20260914.md | P0 回归修复单:BUG-680 的 tied_first 早退被实现到 coverageBlocks 之前且无 probe 守卫 → 新案子答两题、区间还是整个开局窗口就宣布 can_adopt/代表分钟(BUG-683);交付态下仍出现死卡致 delivered 终态不触发、印「没有拿到下一个问题」(BUG-684 investigating) | 待验收 | codex/rectification-tied-first-fix-20260914 |
| TASK-rectification-delivery-vs-collect-split-20260914.md | PROGRESS-rectification-delivery-vs-collect-20260914.md | P0:并列到顶(tied_first)时 POST 播了交付结论、GET 又算回 collect_evidence——刷新尝试落库失败仍回报「已尝试」+ stillNeedNarrowing 压过 exhausted(BUG-680);交付话术闸门与交付卡闸门不一致,completed_with_range/provisional_range 能说不能画(BUG-681);缺口状态机没有终态,兜底印「没有拿到下一个问题」(BUG-682) | 待验收 | codex/rectification-delivery-vs-collect-20260914 |
| TASK-rectification-spoken-orphan-and-engine-representative-20260914.md | PROGRESS-rectification-spoken-orphan-20260914.md | P0:口述题(定向补事年份追问)没有 askedTurnId 时仍是无头像裸行——BUG-675 的挂回规则只覆盖选择题(BUG-678);同屏两个范围口径(旁白用活跃候选首尾、时间轴用 credible_range);引擎 representative_time 把已淘汰分钟的宫位表带进模型上下文(BUG-676 收敛为 resolved) | 待验收 | codex/rectification-spoken-orphan-20260914 |
| TASK-rectification-unstampable-probe-and-naked-card-20260914.md | PROGRESS-rectification-unstampable-probe-20260914.md | P0:探针池空后判别题盖不上 probe → 焦点写不进 → 题干被念进正文、同一题反复问且答了不算数(BUG-674,推翻前一单 D3);快照已有 choice_card 但 persisted_question 仍只画一行裸题(BUG-675);同一轮 receipt 里 representative_time 取到 eliminated_ids 里的候选(BUG-676,investigating) | 待验收 | codex/rectification-unstampable-probe-20260914 |
| TASK-rectification-targeted-collect-spoken-focus-20260913.md | PROGRESS-rectification-targeted-collect-spoken-focus-20260913.md | P0:定向补事题以采集型 schema 存进焦点,前端只能裸画一行题干(无头像无卡无修复入口),本轮计划的 D9 题被静默吞掉;BUG-670 的识别条件只认 targeted_collect 章,复原不了(BUG-673,复发自 BUG-670) | 待验收 | codex/rectification-targeted-collect-spoken-focus-20260913 |
| TASK-rectification-house-lord-gochara-research-20260913.md | PROGRESS-rectification-house-lord-gochara-research-20260913.md | 研究单:宫主触发与木星/土星过运(合冲本命宫主、罗睺紧密合、年精度、用于 block 选上升)四种放宽,20 例公开 AA 离线量 block 层与 minute 层两组指标;引擎里已有宫主/功能吉凶/受控过运,只量缺的四条 | 待验收(无收益,关闭;不立实现单) | codex/rectification-house-lord-gochara-research-20260913 |
| TASK-qizheng-native-chart-20260915.md | PROGRESS-qizheng-native-chart-20260915.md | 后端单(独占 scripts/jyotish_api_server.py):vendored stem-branch 0.8.0(Apache-2.0)归档 + API 镜像 Node runtime + 七政适配器(计都派别与宿度坐标系参数化、boundary 按实测重写)+ 三个只读端点 /api/qizheng、/api/western、/api/ephemeris_events。实证三条:四柱时柱按 UTC 算(BUG-700,本轮不修不调用)、ketuMode 写死未暴露(BUG-701)、boundary 把空神煞与未闭合庙旺说成已生成(BUG-702)。BUG 段 700–703 | 已实现,推送中 | codex/qizheng-native-chart-20260915 |
| TASK-chart-page-20260915.md | PROGRESS-chart-page-20260915.md | 前端单(独占 app-sidebar.tsx,同时加星盘与星历两个入口):P0 只读星盘页,五个 Tab(星盘 / 基础信息 / 大运 / 西洋盘 / 七政四余),中宫排盘参数卡,三套坐标系各自标注且禁止互相换算。不扣点不调模型不出 spinner;不碰 page.tsx(1951/2000);不搬 vedic-chart-svg.tsx(rectification-board 也在用)。BUG 段 704–706 | 待领取 | — |
| TASK-ephemeris-page-20260915.md | PROGRESS-ephemeris-page-20260915.md | 前端单:P1 星历页,今日五要素 + 当日行运(相对本命宫位)+ 未来九十天换座与停滞,底部「带这天去提问」出口。页面不得出现任何运势判断。含实证缺陷:panchanga 写死 Lahiri 与账户 Raman 分裂(BUG-707,只标注不修)。侧边栏入口由 chart-page 单交付。BUG 段 707–709 | 待领取 | — |
| TASK-api-server-decomposition-20260916.md | PROGRESS-api-server-decomposition-20260916.md | 重构单(串行在 qizheng 单之后):把业务逻辑搬出 JyotishAPIHandler。核心不是行数,是全仓 3 处靠 JyotishAPIHandler.__new__ 伪造空壳 handler 借方法(consultation_workflow_service ×2、capture_report_blocked_repairs_golden、local_accuracy_report,MCP 也走这条),依赖方向反了、handler 没有 headers/wfile 随时可炸。四阶段:拆 __new__ 后门 → 抽 ≥150 行业务方法 → do_POST/do_GET 改路由表 → 重新冻结行数 baseline(余量 300→50)。纯搬运不改行为,test_api_server_security.py 3841 行断言一条不许改。预计 11,314 → 约 9,230 行。BUG 段 710+ | 待领取 | — |
命名与归档
- 文件名:
TASK-<kebab-主题>-<YYYYMMDD>.md;同主题的修复单加-fix;进度记录同名换前缀。 - 一轮结束后不删除文件;结论沉淀到
docs/BUG_HISTORY.md(Bug)、CHANGELOG.md(行为/skill 变化)、frontend/DESIGN.md(视觉与交互合同)。 - 任务书里的行号会随代码漂移,定位以符号名为准。