Commit Graph
3 Commits
Author SHA1 Message Date
jesse-ux b85c4a686a fix(rectification): anchor candidate windows to civil dates across midnight
Independent Staging Quality Gate / validate (push) Successful in 13m27s
Independent Staging Quality Gate / publish (push) Failing after 1h0m1s
Carry explicit local date intervals instead of inferring the day from clock
order. Cluster width, delivery, adoption, and reports keep the actual civil
date; adopted date is stored separately from the reported birth_date.

Algorithm identity is scoring-9 / spec-v5. Scoring weights, confirmation
thresholds, and Skill version are unchanged. Isolated Linux final-3 gates
passed; four pre-existing Python failures remain. This is not a production
release.
2026-09-21 02:55:00 +08:00
Jesse_ChenandClaude Opus 5 3be740f84d docs(tasks): 跨午夜日期锚点单三点拍板,转待领取
D1 late_night:选 late_night 时追问一次「午夜前还是午夜后」,答不上退
同日两段 [D 00:00–03:59] ∪ [D 23:00–23:59],一律不得跨到 D+1。写明连锁
范围:退路会产生不连续候选集,枚举、聚类、簇跨度、交付区间、宽度与交付
卡都要支持两段,不得用「取两段最小到最大」糊成一段。

D2 允许窗口跨到前一天,附带义务是交付层必须说明「若落在 23:5x 则出生
日期是前一天」,不得静默改用户的出生日期。

D3 加窗口相对序号,排序取首尾算跨度一律用序号,钟点只作展示。序号入
契约会改候选身份与缓存指纹,验收必须核对 BUG-984 的身份校验并确认历史
结果只读不被重标。

让步顺序补一条:追问可先上、两段退路后上,但退路就绪前 late_night 宁可
只搜后半夜并说明,也不得搜到用户没申报过的日期。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
2026-09-20 20:24:09 +08:00
Jesse_ChenandClaude Opus 5 8aa5f6a444 docs(tasks): 跨午夜日期锚点与簇跨度任务书(BUG-982 + BUG-983)
两条 Bug 都实测复现,合并成一单,因为根因相同:契约只传钟点、日期不在
契约里,后端按钟点大小猜哪端跨日。

BUG-983 是静默算错盘:_candidate_datetimes() 把起始钟点无条件绑在申报
日期上,前端零补偿。实测申报 00:10 / 申报日 2000-06-15,申报分钟本身
落到 06-16 00:10,整套盘算在错误日期上。late_night 更重:其 00:00–03:59
共 240 分钟全部落在用户没有申报过的日期上。983 不修,BUG-981 的候选级
日期修复在这批人身上等于没上线。

BUG-982 影响面比原记录大:同缺陷在 _cluster_span、unionStillValidRange、
indistinguishableWidthMinutes 三处出现,原记录只写了 Python 两处。实测
跨午夜三分钟簇被报成 1440 分钟,且该链直达交付卡的「范围 X 分钟」。

三个待决点:late_night 的语义(按出生证明口径两段都在同一日,现行实现
一半落在次日)、申报贴近午夜时允不允许窗口跨到前一天、日期怎么进契约。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
2026-09-20 20:15:30 +08:00