Hour windows no longer drop later signature clusters. Credible range uses cluster coverage, and a mid-session spoken birth window gets a fixed reply without calling the model. Co-authored-by: Cursor <cursoragent@cursor.com>
3.0 KiB
3.0 KiB
PROGRESS · 窗口簇上限(2026-09-09)
工作树:.worktrees/rectification-window-cluster-cap-20260909
分支:codex/rectification-window-cluster-cap-20260909
任务书:docs/tasks/TASK-rectification-window-cluster-cap-20260909.md
基线:开工时 15cede97;推 staging 前接到 origin/staging @ a31a5e24(BUG-621)
开工回执
- 目标:BUG-623 去掉按时间截断;BUG-624 簇覆盖进可信区间;BUG-625 中途说出时段固定回复、不改窗口、不进模型。
- 顺序:4.1 → 4.2 → 4.3 → 4.4 → 4.6。4.5 intake 自定义范围等产品,本单不做。
- 最大风险:一小时窗 17 簇依赖签名而不是分数;前端若不把
cluster_times写进快照,区间仍会缩成代表分钟。
实测簇数(虚构盘 1997-08-08,minute_step=1,与任务书 §1 同盘)
| 窗口 | 分钟数 | 签名簇 | 公开候选 | 覆盖 |
|---|---|---|---|---|
| 14:00–15:00 | 61 | 17 | 17 | 14:00 … 15:00 |
| 14:30–15:00 | 31 | 9 | 9 | 14:30 … 15:00 |
| 12:00–16:00(14:00 ±120) | 241 | 64 | 64 | 12:00 … 16:00 |
| 12:47–16:47(14:47 ±120) | 241 | 66 | 64(相邻低分合并) | 12:47 … 16:47 |
MAX_PUBLIC_CLUSTERS = 64 对 ±120 够用:66 簇会合并相邻低分,窗口两端仍在。没有按时间 break。
已完成
- 4.1 / BUG-623:
select_signature_representatives不再按时间截断;超 64 走cap_clusters_by_adjacent_merge。夹具:17 簇含 14:46–14:51;65 簇合并后仍覆盖01:04。 - 4.2 / BUG-624:每个公开候选带
cluster_times/cluster_start/cluster_end,经引擎 → 快照 JSONB → 推断层;engineClusterRange优先于换升聚类。簇 14:40–14:45、代表 14:40 → 区间右端 14:45。无新迁移。 - 4.3 / BUG-625:
parseDeclaredBirthWindow在选模型之前拦截自由文本。命中则persistV9DeterministicTurn固定回复,不调模型、不改窗口、不换焦点。不含钟点的句子不命中。 - 4.4:Skill 10.0.20(live +
versions/10.0.20,sha2569c09867591cc9e8726f3577346230339b5a6dd4b4f3d634a9cda3e66170d6ac6)。§4 禁止「以你说的为准」。词表删除该短语;只剩标点时回落到固定回复。 - 4.5:不做。
- 4.6:BUG-623 / 624 / 625 已写入
docs/BUG_HISTORY.md;CHANGELOG.md;走查docs/testing/rectification-window-cluster-cap-20260909.md(固定回复,不是确认卡)。
固定回复原文:「搜索范围是开始时按你的资料定的,校正过程中不改。想按别的时间段重来,请先到资料里改出生时间,再新建一次校正。」
验收命令
.venv/bin/python -m pytest tests/test_rectification_v5_services.py -q→ 全过frontend:tsc --noEmit过;npm run lint0 error(既有 warning 未动)tsx --test任务书所列rectification-*.test.ts+birth-time-intake*.test.ts(排除 database)→ 1073 pass / 0 fail
本单状态:待验收。推 origin HEAD:staging。