From 63eba4208e91ed0f01d8c33d271e37e49e1126b2 Mon Sep 17 00:00:00 2001 From: Jesse_Chen Date: Mon, 7 Sep 2026 07:53:46 +0000 Subject: [PATCH] docs(tasks): accept 4e0db55f (stale compare fix, BUG-577~580) Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P --- docs/tasks/README.md | 2 +- ...ectification-stale-compare-fix-20260907.md | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/tasks/README.md b/docs/tasks/README.md index c9d6ee46..14430d57 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -68,7 +68,7 @@ | `TASK-rectification-unknown-time-20260906.md` | `PROGRESS-rectification-unknown-time-20260906.md` | 完全不知道出生时间的两段式路线:`stage=block_scan` 以 10 分钟步长扫 24 小时只做事件计分、出五时段四选卡(不写账本不采用),选定后进现有分钟流程;引擎加 `minute_step`;开场读 `birth_time_clue`;删 intake 劝退文案 | 已验收(带修复单:时段支持度按段长偏置,下午段先天 25%,P1) | `814c924e`;修复单 `TASK-rectification-capability-fix-20260907.md`(BUG-570) | | `TASK-rectification-capability-fix-20260907.md` | `PROGRESS-rectification-capability-fix-20260907.md` | 能力补齐修复单:答后旁白把 `range_start/range_end`(搜索窗口)当范围比较,每题都说「范围没变」;`block_scan` 五段支持度按段内原始分求和,长时段先天占优(24/24/36/30/30 个候选);`TRACK_LABEL` 音译与产品 Vimshottari/Narayana 口径不一;BLK-001 写到 `docs/BLOCKED.md` 应回根目录 | 已验收通过(P2:block_scan 15 s 壁钟断言在门禁里可能间歇红) | `517df002`(BUG-569~570);staging 未部署,需先 Migrate Staging Database | | `TASK-rectification-declared-uncertainty-20260907.md` | `PROGRESS-rectification-declared-uncertainty-20260907.md` | 出生时间「有多确定」只在 intake 问一次:三档(医院记录 / 家人大概 ±15·30·60·120 / 时段或未知),校正窗口读档案(现在有钟点一律 ±15,声明值被忽略,BUG-571);吻合率 <60% 且代表分钟贴窗口边缘时出服务端一键放宽卡,放宽后重算并写回档案(BUG-572);窗口 >120 分钟先切三子段迭代到 ≤120 再进分钟(BUG-573);日级事件问一次可靠度;四个脚本化手测场景进 docs/testing | 已验收通过(2 P3 建议:可靠度正则去掉「记得」、档案写回改走 account-profile-patch) | `8e31680b`(BUG-571~573);迁移 `20260907020000` 待应用,部署前先 Migrate Staging Database | -| `TASK-rectification-stale-compare-fix-20260907.md` | `PROGRESS-rectification-stale-compare-fix-20260907.md` | **P0**:BUG-559 把过长 `candidate_split_hash` 塞进引擎比较键,答完性格/边界卡后比较静默失败;快照过期压过用户停止;holdout 用过期领域被改写成「再说一件事」;采集轮正文双写 | 待验收(当天须合入部署) | `codex/rectification-stale-compare-fix-20260907`(BUG-577~580;任务书仍写 575~578,开工时 575/576 已被占用) | +| `TASK-rectification-stale-compare-fix-20260907.md` | `PROGRESS-rectification-stale-compare-fix-20260907.md` | **P0**:BUG-559 把过长 `candidate_split_hash` 塞进引擎比较键,答完性格/边界卡后比较静默失败;快照过期压过用户停止;holdout 用过期领域被改写成「再说一件事」;采集轮正文双写 | 已验收通过(P2 正文双写根因未拆、P3 重算节流 Map 只增不减) | `4e0db55f`(落地编号 BUG-577~580);staging 未部署 | | `TASK-api-not-configured-mislabel-20260904.md` | `PROGRESS-api-not-configured-mislabel-20260904.md` | 16 处路由把数据库瞬断(部署切换窗口)兜底翻译成 503「服务尚未配置」;改为仅配置错误用该文案,其余 `service_unavailable`,收敛为共享 helper | 已验收 | `5483649b`(BUG-542);2 条子进程测试留 CI Node 22 复核 | | `TASK-rectification-ux-20260902.md` | `PROGRESS-rectification-ux-20260903.md` | 会话面空白假死与交互摩擦 | 已验收 | `d159f08e`(09-03 在新基线重做后合入,BUG-505~509) | diff --git a/docs/tasks/TASK-rectification-stale-compare-fix-20260907.md b/docs/tasks/TASK-rectification-stale-compare-fix-20260907.md index 551d3078..8fecb815 100644 --- a/docs/tasks/TASK-rectification-stale-compare-fix-20260907.md +++ b/docs/tasks/TASK-rectification-stale-compare-fix-20260907.md @@ -90,3 +90,24 @@ ln -s /workspace/Jyotisha/.venv .venv .venv/bin/python -m pytest tests/test_rectification_input_contract.py tests/test_rectification_v5_services.py -q cd frontend && ls tests/rectification-*.test.ts tests/consultation-*.test.ts tests/agent-voice-copy-contract.test.ts | grep -v database | xargs npx tsx --test 2>&1 | grep -E "^# (tests|pass|fail)" ``` + +## 验收(Claude,2026-09-07,`origin/staging` @ `84a29754`,实现 `4e0db55f`;落地编号 BUG-577~580) + +| 门 | 结果 | +| --- | --- | +| tsc / lint | 0 错 / 0 error(84 warning,既有类型) | +| 前端 rectification + consultation + birth-time + voice(非 DB) | 1556 / 0 | +| Python input_contract / v5_services / event_probes / engine_convergence / growth contract | 全绿 | +| 引擎实测:把事故里 128 字符的 varga split hash + 一个 250 字符键传给 `normalize_rectification_request` | 不再 400:128 字符保留,250 字符跳过并计数 `dropped_asked_probe_keys=1`,`score_candidates` 正常返回,receipt 带计数 | +| `minute_step=1` 字节级不变(虚构 7 件事新旧复跑) | candidate_scores / result_id / spec_hash 全等 | + +| 项 | 结论 | +| --- | --- | +| 5.1 BUG-577 | 通过。TS 只传 `semantic_key` + 账本年份键,再过滤 `:varga.` 与 >200;引擎上限 200、超长跳过计数。与任务书"跳过 128"冲突处按决策 1(上限 200)处理,执行方已写明 | +| 5.2 BUG-578 | 通过。失败 receipt 带 `safe_error_code` + `engine_message`(120 字);正文追加固定句;闲置/非终止退出在快照过期时先重算,同 case+指纹+turn 只一次 | +| 5.3 BUG-579 | 通过。`userStopped && ranked>0` 提前;STOP 与无焦点停止先重算,失败则按上一次成功比较交付并加旁白 | +| 5.4 BUG-580 | 通过。holdout 领域排除账本已有带年月事件;题干改 `USER_COLLECT_QUESTION[domain]` 口述采集。执行方没把决策层改成 `unavailable`(避免落到无卡的 offer),理由成立 | +| 5.5 P2 正文双写 | 部分:只做了与题干近重复句的删除;两段复述的根因(`intent.classified` 双触发)未拆,执行方如实记为偏离 | +| P3 | `rescoreAttempts` 是进程内 Map,只增不减(有测试用 reset 钩子),长期运行会缓慢增长;建议加上限或按 case 清理 | + +部署:staging 当前 `3f4d38d4`,本轮无迁移,直接部署即可;部署后按 `docs/testing/rectification-scenarios-20260907.md` 第 0 条先复现"答完性格卡再说一件事"。