3D 生成定价迁移先落文档:两段并列结构、SpacetimeDB 权威与后台编辑
- 主规范把 3D 定价改成按端点两段并列结构,事实源改为 SpacetimeDB,补契约归一化、后台保存语义与验收项 - 新增 ADR 0005,记录权威事实源迁移、公开读模型不变的取舍与四条被否决做法 - 新增里程碑规范与实施计划,列出范围、验收标准、文件切分、验证命令与两个回滚点 - 同步 Tripo 技术方案的定价段形状、后端架构表目录的两列说明、CONTEXT.md 术语与决策记录
This commit is contained in:
@@ -9364,4 +9364,12 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- 代价与取舍:ts-rs 重新进入 AGC 构建脚本与 `spacetime-module`(wasm32-unknown-unknown)依赖图,即 `a5ee45aa4` 省下的编译开销不再保留。已实测该依赖图可编译:`cargo check -p spacetime-module --target wasm32-unknown-unknown` 通过(`ts-rs` / `ts-rs-macros` 在 wasm32 上可编译)。
|
||||
- 影响面:`server-rs/Cargo.toml`、`server-rs/crates/shared-contracts/Cargo.toml`、`server-rs/crates/shared-contracts/src/game_creation_app/asset_kind.rs`、`apps/ai-game-creator-shell/src-tauri/Cargo.toml`;以及本文件、`pitfalls.md`、`docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md`、`docs/project-memory/todos/【待办】AGC资源kind枚举化扫描清单-2026-09-15.md`、`docs/project-memory/plans/【实施计划】AGC资源kindRust枚举与ts-rs绑定-2026-09-15.md` 里的生成命令(去掉 `--features ts-bindings`)。
|
||||
- 验证方式:`cargo metadata --locked`(server-rs 与 AGC 两个 workspace)、`cargo test -p shared-contracts`(119 + 5 + 5 + 2 + 2 全绿、无告警)、`npm run contracts:model3d:generate` 后 `packages/shared` 零 diff、`cargo check -p spacetime-module --target wasm32-unknown-unknown`、`npm run check:encoding`、`npm run check:rustfmt`、`npm run check:spacetime-schema`、`git diff --check`。
|
||||
- 合并结果还丢过依赖:`apps/ai-game-creator-shell/src-tauri/Cargo.toml` 里 master 新增的 `codex-patch-parser` 与 `chrono` 在解决同段落 `ts-rs` 冲突时被一并丢掉(vendor crate 仍是 workspace member,光看 members 不显眼),CI 编译 AGC Rust 分片时报 8 条 `cannot find module or crate codex_patch_parser`。已按 manifest 恢复这两行并同步 lock;排障口径记在 `pitfalls.md` 2026-09-22 条。
|
||||
|
||||
## 2026-09-23 3D 生成定价迁入 SpacetimeDB 并由后台编辑,两段并列结构取代端点判别键
|
||||
|
||||
- 背景:3D 生成定价此前只存在于受控默认 JSON 与旧 override 的本地缓存;`editor_generation_pricing_to_records` 只序列化 `models`,`from_record` 再从文件把 `model3d` 补回来,因此后台改 3D 价只在进程内存生效、重启即回滚;而 admin-web 把读取到的整份配置原样回传,陈旧的浏览器标签页保存图片价时会静默写回旧 3D 段。
|
||||
- 决策:3D 定价改为 SpacetimeDB `editor_generation_pricing_config` 权威。表新增 `text_to_model_pricing` / `image_to_model_pricing` 两列(沿用 `models` 的展平风格:版本键一行含无贴图 / 带贴图两档价,加价项一行一条),不在一段里用端点做判别键;定价文件同步为两段并列结构,各段自带版本底价与自己的六个加价项键(当前数值相同)。后台「模型定价」页新增 3D 区块编辑两段,POST 两段必填并携带读取时的定价版本做事务内 CAS,不一致返回 409;读取方向做契约归一化(缺键用默认 JSON / 覆盖文件同段值补齐,契约外遗留键剔除并告警),写入方向仍要求两段完整合法;覆盖文件降级为种子与兜底。公开读模型 `GET /api/editor/generation-pricing` 的 3D 段形状与画布 3D 入口不变。
|
||||
- 原因:价格是运营参数,不该绑定发布物与进程重启;把 3D 纳入与 `models` 同一行、同一事务、同一 writer 与审计语义后,「谁是权威」只剩一个答案,价格编辑回到已经处理过并发与权限问题的后台路径。
|
||||
- 代价与取舍:必须做加载期归一化,否则发布新增模型版本时表内缺键会让整段读取失败,且失败点同时打掉后台定价页,形成「进程起不来、后台也补不了价」的死锁;加价项目前按端点各留一份,用少量冗余换未来按端点差异化加价的空间。公开读取保持旧投影,代价是存储形状与公开形状短期内不一致。
|
||||
- 验证方式:文档先行阶段(ADR 0005、主规范、里程碑与实施计划、`CONTEXT.md` 术语);实现与验收证据见 [`【实施计划】3D生成定价后台可编辑-2026-09-23.md`](../plans/【实施计划】3D生成定价后台可编辑-2026-09-23.md)。
|
||||
- 关联文档:[ADR 0005](../../adr/【ADR】0005-3D生成定价迁入SpacetimeDB与后台编辑-2026-09-23.md)、[编辑器模型定价配置管理方案](../../【编辑器】模型定价配置管理方案-2026-06-22.md)、[技术方案 Tripo 3D生成API集成](../../technical/【技术方案】Tripo 3D生成API集成-2026-09-21.md)。
|
||||
|
||||
Reference in New Issue
Block a user