zizi
0e8e36e517
feat(aigc): Lane A2 后端三项跟进——source 列结构隔离 + failed 路 trace 补测 + stale 注释对齐
Task1(执行器↔编排器并发结构隔离,原 M-b §16-4 M-c 候选):
- V17.0.0 加 game_aigc_task.source 列(additive NOT NULL DEFAULT 'online',接 V16 不抢号,存量回填 online)
- AigcTaskDO 加 source 字段 + AigcTaskSourceEnum(online/orchestrator/worker)
- submitGenerate/retryTask 创建处落 online;编排器经同入口伪装在线提交、ReqVO 无 source 信号无法在此辨别 → 统一 online,
「编排器经契约声明 orchestrator + 执行器据此隔离」属后续契约决策(留口未接线,见 V17 头注/枚举)
Task2(组B 评审遗留 P2):
- DifyCallbackTxTraceTest 补 testTracePersist_failedPath:failed 回调→markTaskFailed 后 persistTraceQuietly
落失败轨迹 trace_json(updateById×3)、主链置 FAILED 终态、completeWithVersion/产物链一次不调
Task3(stale 注释对齐,只改注释不改逻辑):
- AigcTemplateConstants/getTemplateList/validateTemplateExists 三处「空白名单/clicker+merge」措辞 → 对齐真相
SUPPORTED_TEMPLATE_IDS=["generic"](getTemplateList 返回空选单列表与白名单是两个口径,注明区分)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>