Occupation collect was wiping year-month into an unscored note, and idle gap copy never joined the evidence turn. Co-authored-by: Cursor <cursoragent@cursor.com>
4.6 KiB
4.6 KiB
PROGRESS · 职业题答出的年月不得被抹掉(2026-09-11)
工作树:.worktrees/rectification-occupation-dated-answer-20260911
分支:codex/rectification-occupation-dated-answer-20260911
任务书:.worktrees/staging-docs/docs/tasks/TASK-rectification-occupation-dated-answer-20260911.md(未推)
基线:origin/staging @ e36bda53(代码 dd8f35f7,Skill 10.0.23,BUG-646~648)
编号:开工时最大号 BUG-648;本单 BUG-649,工具轮缺口并入正文为 BUG-650。
已完成
- T1 / BUG-649:
applyOccupationCollectLedgerNorm在职业采集焦点下:无年月仍只写occupation_note;带occurredFrom/occurredTo且精度非 unknown 时另写career主评分行(模型 career kind 沿用,否则career_entry)。rectification-v9-toolsbatch/propose 按归一结果逐条写入,删除?? item.occurredFrom回落。覆盖判定仍不读正文、不用关键词、不依赖模型 domain。 - T2:通用职业题仍是「你平时主要做什么工作?」;毕业后第一份工作锚定题
targetDomain=career,isOccupationCollectFocus为 false。系统提示已加「职业题不得自行追加年份;要问年份走 career 锚定题」。 - T3:
rectification-replay-20260911.test.ts回放脱敏序列。两件学业后无生日「年前后」;四件带月 → holdout 1、训练 3、≥2 类、训练门开、下一问区分选择题且可渲染。无日期职业变体:训练门关、idle 缺口句、本轮正文含缺口、collect_waiting。 - T3 / BUG-650:
persistExhaustionGateTurn在已有turnId时不会跑。证据轮把精确缺口接到同一条复述后;交付旁白(无「现在记下的是 / 就能开始筛」)不拼接。 - T4:BUG-649/650、CHANGELOG、本文件、走查第 22 条。Skill 10.0.23 未升。未改
MIN_ACCEPTANCE_*/ 确认门 / 引擎计分。
三栏(既有断言)
| 位置 | 原值 | 新值 | 原因 |
|---|---|---|---|
applyOccupationCollectLedgerNorm 带年月职业回答 |
一律 occupation_note + unknown + 日期 null |
note(unknown/null)+ career 主评分行 | 产品收窄 BUG-442 P0 |
occupation_note 是否计入训练 3 件 |
不计 | 仍不计;计入的是 career_entry 等 |
BUG-356 / 389 / 442 |
| batch/propose 日期 | normalized?.occurredFrom ?? item.occurredFrom |
归一后的 null 就是 null | 账本 unknown 却带日期 |
| 通用职业题 | 「你平时主要做什么工作?」 | 仍不问哪年 | T2 |
| 毕业后第一份工作焦点 | 用户年份锚定 | domain=career,不是 collect:occupation: |
问年份走锚定 |
| 证据轮工具出口缺口 | 只在 idle hostNarration |
并入本轮 p_assistant_message |
BUG-650 |
验收
工作树内 frontend/node_modules 链到主仓以便跑 tsx。未部署;staging /api/health 仍是旧 SHA 时不要用真机当本单已上线。未 commit、未 push。
| 命令 | 结果 |
|---|---|
cd frontend && npx tsc --noEmit |
0 error |
cd frontend && npm run lint |
0 error / 119 warning(既有) |
相关 7 文件 npx tsx --test --test-force-exit |
95 pass / 0 fail(含本单 2 个新文件) |
npm test 全量 glob |
3119 / pass 3113 / fail 6:全是 Docker/Postgres 争用(migration failed、connection terminated、本机 socket 无 postgres),与本单无关。安静后未再全量重跑。 |
.venv/bin/python -m pytest tests/test_candidate_discriminator_contract.py -q |
8 passed |
run_quality_gate.py --profile quick 第一次 |
pytest 730 passed / 1 failed:test_block_scan_seven_events_finishes_within_fifteen_seconds 在与全量 npm test 并行时 18.2s > 15s |
| 同上测单独重跑 | 1 passed(3.9s) |
run_quality_gate.py --profile quick --skip-frontend-runtime |
Quality gate passed. pytest 731 passed / 1 skipped / 0 fail(451s)。前端 tsc/lint/相关测试/webpack 构建已在门外单独跑。 |
cd frontend && ./node_modules/.bin/next build --webpack |
退出 0;默认 Turbopack 仍拒 worktree 外 node_modules 软链。/ 为 ○ Static。首页 JS gzip(index.html 引用脚本去重后 gzipSync)572018 B / 18 chunks。相对 origin/staging 未改 page.tsx / layout.tsx / globals.css,首屏源码差为 0。 |
git diff --check |
干净 |
新增测试:+18(dated-answer 9、replay 7、collection-pool 2);occupation-coverage-exit 未改断言。Skill 10.0.23 未改。
环境缺口:无登录态,走查第 22 条未做。部署后须先打开绑定 10.0.22 的历史校正(BUG-621),再按本案序列真机走一遍,第四件带月说完必须出选择题。