Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
3.0 KiB
TASK · 验收补漏两条:申报时段拦截误伤带钟点的经历;by_time 只算 9 个候选(2026-09-09)
- 基线:
origin/staging@fef54b6e - 分支:
codex/rectification-followups-20260909,基于origin/staging;与 BUG-626~628 无重叠 - 执行方:coding agent;验收:Claude
- 涉及文件:
frontend/src/lib/rectification-agentic/v9/declared-window-utterance.ts、frontend/src/app/api/rectification/agent/route.tsL272、scripts/rectification/refinement_packet.py::column_times_for_compare - BUG 编号起点:BUG-631(
docs/BUG_HISTORY.md当前最大 BUG-630) - 优先级:P1(第一条会吞掉用户的经历)
1. BUG-631(P1):申报时段拦截只看钟点样式,不看语境
parseDeclaredBirthWindow 匹配 HH:MM / X 点 Y 分 加 到 / 至 / - 或 左右 / 前后。用户报经历时常带钟点:"2024 年 8 月 8 日 20:00 左右分手""下午 3 点到 5 点被车撞""2019 年 10 月 23 日 9 点半入职"。这些都会在 route.ts L272 被拦成"申报出生时段",回固定句、不进模型、证据不落库。
决策:命中钟点样式后再加两道门——(a) 句中含出生语境词(出生 / 生的 / 生于 / 出生时间 / 时辰 / 几点生 / 钟点是)才算申报;(b) 句中含年月日(\d{4}\s*年、\d{1,2}\s*月、\d{1,2}\s*日)且无出生语境词 → 一律当经历,不拦。用例:上面三句 → 不拦;"我的出生时间是 14 点 45 到 14 点 50""我是 14:47 左右生的" → 拦;"14:45–14:50"(裸范围,无语境) → 拦(intake 之后用户最常这样说)。
2. BUG-632(P2):by_time 只算引擎前 9 个候选
BUG-623 后引擎候选最多 64 个(一小时 17 个)。column_times_for_compare(limit=9) 只给前 9 个算经历对照与未来窗;推断层前三若不在其中,卡片列写"这一分钟还没对照"。决策:limit 改为候选全集(≤64);经历对照是字典查表,未来窗每分钟一次 Dasha 时间线,column_compare_ms 写进度记录,若 64 个超 3 秒则只对推断层 active 候选算(TS 把 active 列表作为 column_times 传入)。用例:17 候选 → by_time 17 键;column_compare_ms 断言上限。
3. 记录
BUG-631(关联 BUG-625)、BUG-632(关联 BUG-614 / 623);CHANGELOG.md;PROGRESS-rectification-followups-20260909.md;走查清单加"报经历带钟点不得被当成申报时段"。
4. 开工前置命令
git fetch origin --prune
git worktree add -b codex/rectification-followups-20260909 .worktrees/rectification-followups-20260909 origin/staging
cd .worktrees/rectification-followups-20260909
ln -s /workspace/Jyotisha/frontend/node_modules frontend/node_modules
ln -s /workspace/Jyotisha/.venv .venv
cd frontend && npx tsx --test tests/rectification-declared-window*.test.ts tests/rectification-v9-agent.test.ts 2>&1 | grep -E "^# (tests|pass|fail)"
cd .. && .venv/bin/python -m pytest tests/test_rectification_v5_services.py -q