From a61725003e23e60c2d530706b8b8560355434d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Thu, 24 Sep 2026 19:51:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E5=AE=9A=E4=BB=B7=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E9=87=8C=E6=BC=8F=E6=8E=89=E7=9A=84=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=AF=94=E5=AF=B9=EF=BC=9A=E6=8A=80=E6=9C=AF=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E4=B8=8E=E5=86=B3=E7=AD=96=E8=AE=B0=E5=BD=95=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=B8=BA=E6=95=B4=E6=AE=B5=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/technical Tripo 集成方案:删掉「后台保存携带定价版本做事务内比对、不一致 409」这句,改成整段覆盖、不做版本比对 - docs/project-memory 决策记录:在 2026-09-23 那条设计决策末尾追加 2026-09-24 的修订说明,指向同日「模型定价保存去掉版本比对」 --- docs/project-memory/shared-memory/decision-log.md | 1 + docs/technical/【技术方案】Tripo 3D生成API集成-2026-09-21.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/project-memory/shared-memory/decision-log.md b/docs/project-memory/shared-memory/decision-log.md index 53ac8d659..e72133e1d 100644 --- a/docs/project-memory/shared-memory/decision-log.md +++ b/docs/project-memory/shared-memory/decision-log.md @@ -9389,6 +9389,7 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在 - 代价与取舍:必须做加载期归一化,否则发布新增模型版本时表内缺键会让整段读取失败,且失败点同时打掉后台定价页,形成「进程起不来、后台也补不了价」的死锁;加价项目前按端点各留一份,用少量冗余换未来按端点差异化加价的空间。公开读取保持旧投影,代价是存储形状与公开形状短期内不一致。 - 验证方式:文档先行阶段(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)。 +- 后续修订(2026-09-24):本条决心里后台保存的「携带定价版本做事务内 CAS、不一致返回 409」已整体删除,保存改为整段覆盖,见同日决策「模型定价保存去掉版本比对」。 ## 2026-09-23 3D 定价后台可编辑的实现口径:公开投影取文生加价项、CAS 复用行内 updated_at、覆盖文件缺段按默认补齐 diff --git a/docs/technical/【技术方案】Tripo 3D生成API集成-2026-09-21.md b/docs/technical/【技术方案】Tripo 3D生成API集成-2026-09-21.md index e94ce81fc..0b0c7aa9d 100644 --- a/docs/technical/【技术方案】Tripo 3D生成API集成-2026-09-21.md +++ b/docs/technical/【技术方案】Tripo 3D生成API集成-2026-09-21.md @@ -142,7 +142,7 @@ price = <端点段>.versionPrices[modelVersion][texture ? "texture" : "noTexture `model3d` 段缺失仍是合法形态:缺失即 3D 定价未配置,提交被拒绝(fail closed),既不扣费也不调用 provider;段存在时走上面的强校验路径。 -2026-09-23 起这两段的事实源是 SpacetimeDB `editor_generation_pricing_config` 的两段强类型列,后台「模型定价」页面直接编辑,保存与 `models` 段在同一事务内生效,改价不再需要改文件或重启进程。读取方向按契约归一化:表内缺键用默认 JSON / 覆盖文件同段值补齐,契约之外的遗留键剔除并告警;写入方向要求两段完整合法。后台保存携带读取时拿到的定价版本,procedure 在事务内比对,不一致返回 409 并要求重新读取。公开读模型 `GET /api/editor/generation-pricing` 的 3D 段形状保持不变,画布 3D 入口的价格真相与前端零兜底口径不变。详见 [ADR 0005](../adr/【ADR】0005-3D生成定价迁入SpacetimeDB与后台编辑-2026-09-23.md) 与 [编辑器模型定价配置管理方案](../【编辑器】模型定价配置管理方案-2026-06-22.md)。 +2026-09-23 起这两段的事实源是 SpacetimeDB `editor_generation_pricing_config` 的两段强类型列,后台「模型定价」页面直接编辑,保存与 `models` 段在同一事务内生效,改价不再需要改文件或重启进程。读取方向按契约归一化:表内缺键用默认 JSON / 覆盖文件同段值补齐,契约之外的遗留键剔除并告警;写入方向要求两段完整合法。后台保存是整段覆盖、不做版本比对(后台同时只有一个管理员在操作,2026-09-24 起删除版本号与 409)。公开读模型 `GET /api/editor/generation-pricing` 的 3D 段形状保持不变,画布 3D 入口的价格真相与前端零兜底口径不变。详见 [ADR 0005](../adr/【ADR】0005-3D生成定价迁入SpacetimeDB与后台编辑-2026-09-23.md) 与 [编辑器模型定价配置管理方案](../【编辑器】模型定价配置管理方案-2026-06-22.md)。 扣费依据固定为**提交时定价**:用户在提交前就能得到确定价格,失败退款是单次冲正,不需要按实际消耗退差额。provider 返回的实际消耗只写日志用于成本对账,不进入契约、不进 API 响应、不进资源行。