lili 790f53dc71 feat(aigc): 配置控制面阶段二 步骤1+2 生成配置治理子域(配置集建模+yudao治理骨架 / 版本行与历史 MySQL) (配置控制面阶段二 步骤1+2)
在 game-module-aigc 落生成配置治理子域,把散落的生成配置旋钮升级为「可版本、可回滚、可归因」的受治理
资产。治理单元=配置集(不塞 infra_config KV),走「改→定版→审核挂点→激活→回滚」生命周期(设计 §3.2)。
版本账本落 MySQL 版本行(prompt 存 MEDIUMTEXT、不进 Nacos):设计 §3.1 三约束——prompt 越 Nacos 100KB
上限 / 定版要原子(元数据+全量内容同库同事务一行) / diff 与检索要就地。

数据模型(V29,现行最大 V28→取 V29,replay 全绿):
- game_aigc_config_set:配置集(tier cheap/tier2 + set_key uk + 生命周期 status + 草稿工作副本 draft_prompt/
  draft_content_json + active_version_id 当前激活版指针[只由激活前移、定版不动])。
- game_aigc_config_version:版本行(全量快照,只增不删;prompt MEDIUMTEXT + content_json + content_hash +
  content_bytes[utf8mb4 字节数,按字节非字符] + uk_set_version 同集版本号唯一)。

能力面(admin,@PreAuthorize 权限门):建/改配置集(save)、定版(freeze,单库事务快照草稿→版本行、状态转待审、
不动激活指针)、历史列表/任一版取回/两版 diff(query,应用层拍平点路径逐项增删改)、归档(archive)。
状态机 AigcConfigStatusEnum 单点裁决合法流转。错误码续编 aigc 004 子段(不跳段)。

步骤3 接缝(非孤儿):激活的双路下发编排(值域校验 + PATCH /agent+/session + publish Nacos)属步骤3、本波不做;
激活的账本收口 GenConfigService#markVersionActivated(状态转 ACTIVE + 指针前移,纯 MySQL)已就位并单测,
步骤3 在双路下发成功后调它、失败不调(指针不前移、保留上一激活版为账本权威,设计 §3.6);controller 不暴露激活端点。

验证:aigc-server 单测绿(状态机流转 §3.2 / 权限门反射 / 定版事务 / content_bytes 字节口径 / diff;新增 26 测,
既有全不变);真 MySQL IT 绿(mini-infra 100.64.0.8,绕系统代理直连)——① V1..V29 全量迁移按版本序真库全应用
(replay 全绿,多语句交服务端解析,正确处理 V1 注释内分号)② 30KB/64KB 边界 prompt 无截断(证 MEDIUMTEXT 非 TEXT)
+ utf8mb4 字节口径(含中文/emoji round-trip、LENGTH>CHAR_LENGTH)+ uk_set_version 幂等;单体 huijing-server 编译绿。

范围说明:契约仅动 game-cloud;近期迁移 V26/V27/V28 均只在 db/migration(contracts/db-schemas 镜像自 V25 起已停维护,
R2 charge 亦未动 contracts),故 V29 循此现行先例、不动 contracts;新 admin 治理 API 未入 aigc.yaml 契约,与 R2 同——
待 fable 终审裁定是否补契约。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 09:32:21 -07:00
Description
No description provided
240 MiB
Languages
Java 38.3%
JavaScript 28.5%
Python 19.4%
Vue 6.2%
TypeScript 3.8%
Other 3.7%