cd87437abd
CI / docs-build (push) Successful in 36s
用户拍板修改。原报告全篇使用本角色自拟名 `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>