docs(report): record staging personal_full after BUG-526 and BUG-534
Engine and five chapters now complete on accepted profiles; final assemble still fails as BUG-535. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+22
-6
@@ -8125,11 +8125,11 @@
|
||||
- 触发条件:资料 `birth_time_status` 为 `accepted`(不是 `confirmed`),worker 与 create route 因此去查 `agentic_rectification_cases` 的 `candidate_accepted` 行。
|
||||
- 根因:`20260814010000_immutable_skill_registry.sql` 已从该表收回 `service_role` 的表级权限,只许走 security definer RPC。报告链路仍 `from("agentic_rectification_cases").select(...)`。Postgres 三次 `permission denied for table agentic_rectification_cases`(与 job 三次 attempt、默认 5s/10s 重试对齐)。查询失败被映射成可重试 `calculation_unavailable`,报告从未调用引擎。第二读者:create route 同样 `if (error) throw error`,会把创建请求打成 `calculation_unavailable`。
|
||||
- 修复:新增只读 RPC `read_report_candidate_range`(不 re-grant 表权限)。worker 与 create route 经共享 helper 调用;任何读失败降级为无窗口并继续生成。`calculation_unavailable` 只保留给引擎调用失败。legacy 表终态以库约束为准:`confirmed` 与 `completed`(`20260720` 已纳入枚举;前端不再 `.in("status", ["confirmed", "completed"])` 直查)。
|
||||
- 验证:`tests/report-candidate-range.test.ts` 三态降级;`tests/personal-report-api.test.ts` null 窗口仍 201;`tests/database-report-candidate-range.test.ts` 权限矩阵与列白名单。staging @ `be6cf145`:accepted 档案 `personal_full` 五次 `POST /api/consultation_workflow` 均 200,career 章已落库;随后被 BUG-534 打断,完整 ready 待 534 部署后补。
|
||||
- 验证:`tests/report-candidate-range.test.ts` 三态降级;`tests/personal-report-api.test.ts` null 窗口仍 201;`tests/database-report-candidate-range.test.ts` 权限矩阵与列白名单。staging @ `e27d5dc5`:accepted 档案两次 standard personal_full 均 5× `POST /api/consultation_workflow` 200,五章有正文;不再出现 16 秒 `calculation_unavailable`。终稿被 BUG-535 `final_parse_rejected` 拦住,见该条。
|
||||
- 防复发:报告 worker 与 create route 不得再直接 SELECT 已收回 `service_role` 权限的校正表;候选窗读失败不得再变成 `calculation_unavailable`。
|
||||
- 相关记录:BUG-524、BUG-534
|
||||
- 相关记录:BUG-524、BUG-534、BUG-535
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
- 修复版本:`7baf2300`
|
||||
- 编号说明:rebase 到 `origin/staging` 时 BUG-525 已被采集拒答占用,本条落在 BUG-526。
|
||||
|
||||
## BUG-527 | 可评分事件不足 3 条时盘外核对抢跑到已拒答领域
|
||||
@@ -8255,8 +8255,24 @@
|
||||
- 触发条件:worker `onProgress` 把 `progress_phase` 写成 `section:<section_id>`(SQL 与 `isValidPersonalReportJobProgressPhase` 允许冒号)。随后心跳或 GET 把该行再读进 `recordFromRow`。
|
||||
- 根因:`recordFromRow` 用 `operationalCodePattern`(`^[a-z][a-z0-9_]{0,63}$`)校验 `progress_phase`,不接受冒号。`updateProgress` 写入成功后解析 RETURNING 行抛 `storage_invalid`;`onProgress` 吞掉非租约错误,生成继续。下一次心跳解析同一行再抛,worker 中止。GET 同一路径变成 HTTP 500。
|
||||
- 修复:`progress_phase` 改走已有的 `isValidPersonalReportJobProgressPhase`(与 SQL check、写入校验同一套,允许 `section:`)。
|
||||
- 验证:`personal-report-job-service`:写入 `section:theme-health_pressure` 后心跳与 `getOwnedByRequestId` 仍成功。
|
||||
- 验证:`personal-report-job-service`:写入 `section:theme-health_pressure` 后心跳与 `getOwnedByRequestId` 仍成功。staging @ `e27d5dc5` 干净一次跑完五章到 assemble 85%,心跳未再中断。
|
||||
- 防复发:job 行 round-trip 不得比写入校验更严。分章进度相位必须能读回。
|
||||
- 相关记录:BUG-526
|
||||
- 相关记录:BUG-526、BUG-535
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
- 修复版本:`e27d5dc5`
|
||||
|
||||
## BUG-535 | 五章写完后终稿 final_parse_rejected,accepted 报告仍无 ready 文档
|
||||
|
||||
- 状态:investigating
|
||||
- 首次发现:2026-09-04
|
||||
- 最近更新:2026-09-04
|
||||
- 影响面:`assembleReportDocumentV2` 之后的 `safeParseServerReportDocument`;standard `personal_full` 终装
|
||||
- 用户现象:报告中心显示生成失败。错误码 `report_schema_invalid`,日志 `innerReason=final_parse_rejected`。五章其实都已写完。
|
||||
- 触发条件:accepted 生时、默认五主题、staging @ `e27d5dc5`。干净 attempt 1 与此前被租约打断后恢复的 attempt 都复现。
|
||||
- 根因:未知。已排除:引擎未调用(BUG-526)、心跳死在 `section:`(BUG-534)、`applyReportGuard` 拒绝(会是 `report_guard_rejected`)、evidenceHash 不匹配(会是 `final_parse_evidence_hash`)。日志没有逐条 parse error。
|
||||
- 修复:未修。终稿失败码应带上 parse path,才能定案。
|
||||
- 验证:request `20c94bf4`:5× workflow 200;五章 ready、narrative 非空、refs 3–7 条;摘要 writer `stop`;随后 `generation_failed`。
|
||||
- 防复发:待定案后补。
|
||||
- 相关记录:BUG-526、BUG-534
|
||||
- 复发自:无
|
||||
- 修复版本:待修复
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
| --- | --- | --- |
|
||||
| 1 两处读取降级 + 语义修正 | 完成 | BUG-526 |
|
||||
| 2 只读 RPC + `test:db` | 完成(本文件定向套件已绿;全量 `test:db` 见下方门禁输出) | BUG-526 |
|
||||
| 3 部署后真实 personal_full | 进行中(引擎已通;被 BUG-534 打断) | BUG-526 / BUG-534 |
|
||||
| 3 部署后真实 personal_full | 部分完成(引擎与五章正文已通;终稿 `final_parse_rejected`,见 BUG-535) | BUG-526 / BUG-534 / BUG-535 |
|
||||
| 4 BUG-526 收口 | 完成(修复版本待 staging SHA) | BUG-526 |
|
||||
|
||||
## 实现要点
|
||||
@@ -42,18 +42,42 @@
|
||||
- `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`)
|
||||
## 任务 3 · staging 实测
|
||||
|
||||
health:`gitCommit=be6cf145`,`latestMigration=20260904010000_read_report_candidate_range.sql`。RPC 对 `candidate_accepted` 行返回窗口。无 `report_candidate_range_unavailable`。
|
||||
health:`e27d5dc5`(含 BUG-534),`latestMigration=20260904010000_read_report_candidate_range.sql`。RPC 对 `candidate_accepted` 行返回窗口。无 `report_candidate_range_unavailable`。
|
||||
|
||||
request `3c4d8311-d222-494b-8174-b8e731204fd2`(standard 五主题):
|
||||
### 第一次(`3c4d8311`,`be6cf145` 镜像)
|
||||
|
||||
| 项 | 结果 |
|
||||
| --- | --- |
|
||||
| 创建 | generating,未在 16 秒内 `calculation_unavailable` |
|
||||
| 引擎 | 5× `POST /api/consultation_workflow` 200(11:48:17–11:50:03Z);租约恢复后又 5× |
|
||||
| 章节 | `theme-career` ready 1776 chars;`theme-health_pressure` ready 1581 chars(attempt 2) |
|
||||
| telemetry | career `finishReason=stop` `inputTokens=5866` `elapsedMs=10765`;health 首次 `tripwire`×2(无 length) |
|
||||
| 阅读页 | GET 500 `report_generation_failed`(假失败) |
|
||||
| 引擎 | 5× `POST /api/consultation_workflow` 200 |
|
||||
| 章节 | career / health 先落库;随后心跳死在 `section:theme-health_pressure`(BUG-534) |
|
||||
| telemetry | career `stop` `inputTokens=5866`;health 首次 `tripwire`×2(无 `length`) |
|
||||
| 阅读页 | GET 500 假失败(同一 `recordFromRow`) |
|
||||
|
||||
随后 worker 心跳停在 `section:theme-health_pressure`。根因是 BUG-534:`recordFromRow` 不接受 `section:`。为避免第三次租约耗尽把报告标成 `calculation_unavailable`,将该 job 租约延长到 15:06Z,等 534 部署后再过期恢复。
|
||||
租约曾延长,避免第三次耗尽被标成 `calculation_unavailable`。
|
||||
|
||||
### 第二次(`20c94bf4`,`e27d5dc5` 干净 attempt 1)
|
||||
|
||||
| 项 | 结果 |
|
||||
| --- | --- |
|
||||
| 引擎 | 5× `consultation_workflow` 200(12:32:43–12:34:12Z) |
|
||||
| 五章 | 全部 ready,narrative 757–1960 字,均有 `evidenceRefs` |
|
||||
| 心跳 | 一次跑到 85% assemble,BUG-534 已不再打断 |
|
||||
| 终稿 | `report_schema_invalid` / `final_parse_rejected`(不是 guard,不是 evidenceHash) |
|
||||
| telemetry | 无 `finishReason=length`(五章 + 摘要均为 `stop`) |
|
||||
|
||||
Writer 回溯(只记 evidenceRef,不记正文):
|
||||
|
||||
| 章 | 绑定的 bundle 技法 |
|
||||
| --- | --- |
|
||||
| career | `ev-tech-d10` `ev-tech-a10` `ev-tech-amk` `ev-tech-vimshottari` |
|
||||
| marriage | `ev-tech-d9` `ev-tech-ul` `ev-tech-dk` |
|
||||
| wealth | `ev-tech-d2` `ev-tech-d11` `ev-tech-yoga` `ev-tech-ashtakavarga` |
|
||||
|
||||
### 2 倍线(对照 `PROGRESS-report-skill-parity-20260901.md` 改前 p50 est.tok 1135.5,2×=2271)
|
||||
|
||||
干净一次的五章 `inputTokens`:5804 / 5866 / 5921 / 6031 / 6405。p50=**5921 ≈ 5.22×**。墙钟 7.9–16.8s。摘要 1542 token / 2.9s。按红线 6 摆数据,不记成通过。
|
||||
|
||||
敏感度:RPC 有窗、无降级 warn、引擎 200;assemble 会在 sensitive 主题追加条件句。终稿未落库,无法从文档字段再确认 `candidate_window_only`。
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
| `TASK-report-blocked-repairs-20260902.md` | `PROGRESS-report-blocked-repairs-20260902.md` | 全主题 blocked 修复 | 已验收 | `7faf8555` |
|
||||
| `TASK-report-section-writer-failure-20260902.md` | `PROGRESS-report-writer-failure-20260902.md` | 写作阶段 report_schema_invalid | 已验收 | `eda37c15`(后续 `43294265`、`5c0bec0c`、`fbd6e480`、`cf6405ed`) |
|
||||
| `TASK-report-sensitivity-crash-20260904.md`(仓库根) | `PROGRESS-report-sensitivity-crash-20260904.md` | consultation_workflow float 时辰崩溃,全量 500 | 执行中 | `codex/report-sensitivity-crash-20260904`(BUG-524) |
|
||||
| `TASK-report-candidate-range-read-20260904.md`(仓库根) | `PROGRESS-report-candidate-range-20260904.md` | accepted 生时报告直读已收权校正表 | 待验收 | `codex/report-candidate-range-20260904`(BUG-526) |
|
||||
| `TASK-report-candidate-range-read-20260904.md`(仓库根) | `PROGRESS-report-candidate-range-20260904.md` | accepted 生时报告直读已收权校正表 | 待验收 | `e27d5dc5`(BUG-526/534;终稿见 BUG-535) |
|
||||
|
||||
### 前端基础与工程
|
||||
|
||||
|
||||
Reference in New Issue
Block a user