fix(report): accept section: job progress phases on read-back
Independent Staging Quality Gate / validate (push) Successful in 8m41s
Independent Staging Quality Gate / publish (push) Successful in 1m53s

Heartbeat and GET were parsing progress_phase with a pattern that rejects the colon prefix the writer already persists, which aborted generation after the first chapter.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-04 20:09:11 +08:00
parent a793edb1ad
commit e27d5dc5a7
5 changed files with 57 additions and 4 deletions
@@ -10,7 +10,7 @@
| --- | --- | --- |
| 1 两处读取降级 + 语义修正 | 完成 | BUG-526 |
| 2 只读 RPC + `test:db` | 完成(本文件定向套件已绿;全量 `test:db` 见下方门禁输出) | BUG-526 |
| 3 部署后真实 personal_full | 待部署 | BUG-526 |
| 3 部署后真实 personal_full | 进行中(引擎已通;被 BUG-534 打断) | BUG-526 / BUG-534 |
| 4 BUG-526 收口 | 完成(修复版本待 staging SHA | BUG-526 |
## 实现要点
@@ -41,3 +41,19 @@
- 定向:`report-candidate-range` + `personal-report-api` + `personal-report-worker` + migration 源码锁 **75 pass**
- `npm run test:db``tsx --test --test-concurrency=1 tests/database-*.test.ts`):**35 pass, 0 fail**(含新 RPC 套件)。第一次全量 34/35,`database-admin-identity` 迁移在套件开头失败,单跑即过,属 Docker 争用。
- 非数据库 `tsx --test tests/*.test.ts`2626 pass;当时 2 fail 为 CSS 合同(已由 `0be51e65` 修)与 `identity-auth-integration`(与并行 `test:db` 抢 fixture,单跑已过)。
## 任务 3 · staging 实测(`be6cf145`
health`gitCommit=be6cf145``latestMigration=20260904010000_read_report_candidate_range.sql`。RPC 对 `candidate_accepted` 行返回窗口。无 `report_candidate_range_unavailable`
request `3c4d8311-d222-494b-8174-b8e731204fd2`standard 五主题):
| 项 | 结果 |
| --- | --- |
| 创建 | generating,未在 16 秒内 `calculation_unavailable` |
| 引擎 | 5× `POST /api/consultation_workflow` 20011:48:1711:50:03Z);租约恢复后又 5× |
| 章节 | `theme-career` ready 1776 chars`theme-health_pressure` ready 1581 charsattempt 2 |
| telemetry | career `finishReason=stop` `inputTokens=5866` `elapsedMs=10765`health 首次 `tripwire`×2(无 length |
| 阅读页 | GET 500 `report_generation_failed`(假失败) |
随后 worker 心跳停在 `section:theme-health_pressure`。根因是 BUG-534`recordFromRow` 不接受 `section:`。为避免第三次租约耗尽把报告标成 `calculation_unavailable`,将该 job 租约延长到 15:06Z,等 534 部署后再过期恢复。