Files
Jyotisha/docs/tasks/PROGRESS-rectification-candidate-compare-columns-20260908.md
T
Jesse_ChenandCursor a43a6db884
Independent Staging Quality Gate / validate (push) Successful in 14m8s
Independent Staging Quality Gate / publish (push) Successful in 10m21s
fix(rectification): three-column candidate compare card (BUG-597, BUG-598)
Replace the minute-row delivery card with up to three compare columns so users can pick the time that fits, and apply the adult-year floor on inspect fallbacks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 00:12:20 +08:00

4.5 KiB
Raw Blame History

PROGRESS · 生时校正交付卡三列对照(2026-09-08)

工作树:.worktrees/rectification-candidate-compare-columns-20260908 分支:codex/rectification-candidate-compare-columns-20260908 任务书:docs/tasks/TASK-rectification-candidate-compare-columns-20260908.md 基线:origin/staging @ a9125e3d(任务书已在该提交)

本单状态:待验收。代码在执行分支,尚未 commit / push。

未改:采用 RPC、确认门、各道门槛、minute_step_relative_supportpage.tsx。Skill 从 10.0.17 升到 10.0.18(只改 references/candidate-comparison.md 的卡片描述)。采集题「没有」按钮未做,等产品答复。

主仓仍停在 codex/minute-rectification-p0 且有脏文件,未 checkout / reset。本单在独立 worktree 基于 origin/staging 做。

做了什么

  • 决策 1 区间卡改成一行至多三列。按 inference_state.candidates 后验概率排序,精确 HH:MM 去重,最多三列。超过三列末尾写「还有 N 个分钟可能性更低,已并入范围」。不预标「排盘用」。
  • 决策 2 每列五段全由服务端算好:时间 + 相对可能性;D9/D10 类型表全文 + 月宿边界 traits;经历强/中/弱计数与最不吻合一件(年-月+领域,不写摘要);往后 12 个月 1–2 窗或「未来一年没有明显的窗口」;「更像这个」走现有 accept RPC,选择不计分。
  • 决策 3 卡底边界句与收起的「查看验证报告」保留。交付正文仍三句,不再写代表分钟「排盘用」。
  • 决策 4 compare 同一次返回 event_dasha_ledger_by_timeprospective_windows_by_time(HH:MM 键,≤3 分钟),与代表分钟 ledger 并存;耗时写入 column_compare_ms
  • BUG-598 inspectDiscriminatorProbes 接收 birthDate,与 followup 共用 adult-floor.ts。inspect 回退不再漏过成年下限。
  • P2「没有」按钮 跳过,等产品。

三栏(被触碰断言)

用例 原值 新值 理由
交付卡形态 每个候选分钟一行,点行采用 至多三列,「更像这个」采用 BUG-597 决策 1
「排盘用」 代表分钟预标 不预标 BUG-597 决策 1
列文案 只写与代表分钟不同的 D9/D10 三列写全 D9/D10/月宿 + 经历计数 + 未来窗 BUG-597 决策 2
引擎 compare 只有代表分钟 ledger 另有 by_time ledger 与 windows BUG-597 决策 4
Skill 10.0.17 10.0.18 任务书
inspect 成年下限 仅 followup 过滤 inspect 同样 below_adult_floor BUG-598
采集「没有」按钮 仍无 等产品

测试

  • frontend ./node_modules/.bin/tsc --noEmitexit 0
  • npm run lint0 errors / 108 warnings(仓库基线 warning,无新 error
  • 任务书指定 TS 切片:1040 tests / 1040 pass / 0 fail
  • tests/test_rectification_v5_services.py35 passed
  • Docker database-rectification-*.test.ts:本机未跑,记 blocked
  • 浏览器真人走查:无登录态,记 blocked

Skill 10.0.18 SHA256ad209a7824d7eb65f35efd7d6245e9a3752a8b32972de0fbafb751691e86a1ad。live SKILL.md + references/versions/10.0.18 字节一致。

偏离

  1. 不按 cluster_range 合并不同分钟。 任务书写「同簇合并取代表」。04:53 与 04:59 若同簇会被合成一列,正好把本单要对照的差别藏掉。实现按精确 HH:MM 去重。
  2. 引擎 column_timescandidate_decisions 前 3 个唯一分钟(引擎分序)并保证代表分钟在列里。卡片列按后验排序。后验前三若与引擎前三不一致,缺的分钟回退代表 ledger / 空窗口句。
  3. prospective_windows_for_time 用该分钟月曜起的未来 12 个月 Vimshottari 起始月,领域目前标 career;没有 static context / 月曜则空列表,卡片写固定句。
  4. 采集题「没有」按钮未做。
  5. BUG-598 真实 Case 出生年:本工作树没有该 Case 档案,不能用出生资料核对。按年份公式:2015 年迁居题越线当且仅当出生年 > 1997。≤1997 年生在 2015 年已满 18 岁,不越线。
  6. 本机主仓停在 codex/minute-rectification-p0 且有脏文件,未动。
  7. 预检系统 Python 缺 swisseph/pytest;不把预检失败写成云端未同步。
  8. .venvfrontend/node_modules 是指向主仓的 symlink,不提交。
  9. 浏览器真人走查:本会话无登录态,记 blocked。见 docs/testing/rectification-scenarios-20260907.md §5。