Files
Jyotisha/docs/tasks/PROGRESS-rectification-window-cluster-cap-20260909.md
T
Jesse_ChenandCursor 6008c07c81
Independent Staging Quality Gate / validate (push) Successful in 17m15s
Independent Staging Quality Gate / publish (push) Successful in 2m15s
fix(rectification): keep hour-window tail clusters and lock the search window (BUG-623, BUG-624, BUG-625)
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>
2026-09-09 20:45:11 +08:00

43 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:0015:00 | 61 | **17** | 17 | 14:00 … 15:00 |
| 14:3015:00 | 31 | 9 | 9 | 14:30 … 15:00 |
| 12:0016:0014:00 ±120 | 241 | 64 | 64 | 12:00 … 16:00 |
| 12:4716:4714: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`sha256 `9c09867591cc9e8726f3577346230339b5a6dd4b4f3d634a9cda3e66170d6ac6`)。§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 lint` 0 error(既有 warning 未动)
- `tsx --test` 任务书所列 `rectification-*.test.ts` + `birth-time-intake*.test.ts`(排除 database)→ **1073 pass / 0 fail**
本单状态:**待验收**。推 `origin HEAD:staging`