Files
patbond-doc/docs
lixi cd87437abd
CI / docs-build (push) Successful in 36s
fix(docs): iteration-4/06 表名列名按正典回改,并暴露 first_attempt_at 缺口
用户拍板修改。原报告全篇使用本角色自拟名 `creation.generation_tasks`
(11 处,含 4 段可执行 SQL),正典 patbond_postgresql.sql:605 实为
`creation.generation_jobs`;列名亦不一致。而该报告 §4.2 自称「对后端
工单的硬要求」——照字面实现会建出第二张表或写错列名。

改动:
- 表名 11 处 → creation.generation_jobs(零残留;§4.2 修订说明中对旧名
  的引用刻意保留)
- 列名回改:queued_at→created_at、finished_at→completed_at、
  failure_reason→error_code/error_message、last_attempt_at→started_at、
  model_key→model_id(+generation_models.code / provider_model_snapshot)、
  style_key→style_code_snapshot;input/output count 改为由
  input_asset_id / output_asset_id 是否为 NULL 派生
- §4.2 新增 15 行逐列映射表,标明每列在正典中的对应与状态
- §5 未取证段更新:列名已回改,但 first_attempt_at 落地前两项 SQL 不可运行

**本次修改新发现的真问题(非改名)**:`first_attempt_at` 正典无对应列,
且 `ck_generation_jobs_state` 会主动销毁该信息——该 CHECK 规定
status='queued' 分支必须 started_at IS NULL,故失败重排队时首次尝试
时间不可恢复,导致「排队时长」与「纯执行耗时」永远无法分离(正是
§4.2 自己警告的后果)。处置:V6 增加 first_attempt_at timestamptz
(仅首次进入 running 写入、重试不覆盖),并在状态机 CHECK 的 queued
分支中排除该列。这是 §4.2 硬要求中唯一需改动正典结构的一项,另一项
是 A2 拍板(参考图选填)导致的 input_asset_id 改可空。

验证:secret-scan exit 0;mkdocs build --strict exit 0。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 16:30:30 +08:00
..
2026-08-14 17:09:15 +08:00
2026-09-03 16:03:20 +08:00