k88936
|
61fe4c48af
|
图片画布接入 3D 资源:新增 model3d 类别、3D 预览与 3D 生成入口
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 16s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 18s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 18s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 18s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 16s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 16s
Project CI / Native shell tests (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Failing after 7s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Failing after 12s
- 后端资源投影按 asset_kind 分叉,新增 project_editor_client_media_src 与 EDITOR_MODEL3D_ASSET_KIND:model3d 只投影预览图,模型本体只留 objectKey,预览缺失才回落历史口径
- tripo3d 存储新增按字节魔数识别模型 content_type 与扩展名映射,不采信 provider 声明与下载响应头
- editor_project_storage 把 model3d 加入 EDITOR_CANVAS_ASSET_KINDS 白名单
- 前端 CanvasAssetKind 与 image-canvas-core 类型新增 model3d:画布卡片渲染预览图或 3D 占位,类型角标新增「3D模型」,覆盖资格只在它与空类别之间成立
- 新增 model3d-preview 子目录(Model3dViewerModal / Model3dViewerModel),Tailwind 内联、不新增 CSS,失败原因分超限 / 格式不可识别 / 无 WebGL2 三类展示
- 选中工具条新增只读 preview-model3d 能力位,仅 objectKey 为空时置灰;打开预览同时选中图层并暂停画布快捷键与舞台交互
- 查看器包源对象 format 改为可选,新增「声明 Content-Type → 字节魔数 → 地址扩展名」三级格式判定并导出支持格式清单
- 导出工作流新增 3d_models/ 目录,模型下载按真实响应头 MIME 定扩展名、对象键扩展名兜底
- 新增 3D 生成入口:底部工具栏浮动子选项与文生 / 图生 3D 面板,落 projectResource + canvasCompletion,复用占位框与任务侧栏
- 3D 定价只读实时定价查询,段缺失即入口不可提交;幂等键由前端铸造,用户重试必须换键
- 新增 ADR 0003 / 0004 与实施计划、里程碑文档;更新 Tripo 技术方案、后端架构、CONTEXT 术语、decision-log 与 pitfalls
- .gitignore 忽略仓库根目录手工下载的 3D 样例模型
|
2026-09-22 10:10:00 +08:00 |
|
k88936
|
9fc55a5cac
|
写入Tripo 3D泥点默认价并锁定credit换算口径
- 受控默认配置新增 model3d 段:底价按端点 × 模型版本 × 是否有贴图,add-on 六项独立计价
- 换算口径固定为泥点 = ceil(0.8 × Tripo 官方 credit),H 系列 10/20 与 20/30、P1 30/40 与 40/50、P2 100/110
- editor_generation_config 定向用例按 credit 表反算默认泥点价,改价必须先改 credit 表
- 段缺失语义改为显式摘段验证,仍保持 fail closed 不扣费不入队
- 主规范、里程碑、实施计划与定价管理方案同步默认价已确认与部署侧 override 风险
|
2026-09-21 22:07:55 +08:00 |
|
k88936
|
2691ca8aca
|
补记图生输入的OSS直读待讨论项
- api-server 的 image_source 模块头与 platform-tripo 的 upload_image 各留一条 TODO(oss-direct-read):交签名 URL 或对端直读 OSS 能省掉字节中转,但把私有对象与带时效凭据交给第三方,安全口径与可行性待讨论
- 技术方案文档把图生输入口径更新为当前的 source 站内引用 tagged enum,并补同一条待讨论说明
- 讨论清楚之前保持「api-server 自己读、自己传」的现口径,不改行为
|
2026-09-21 20:02:18 +08:00 |
|
k88936
|
14066eea11
|
产物下载改为按「无数据推进」判超时
- artifact reqwest client 不再设包含响应体的总超时,改成 connect_timeout + read_timeout(reqwest 0.12 的「每次读操作」语义,读完自动重置)
- 响应头之前没有数据推进时用显式 tokio::time::timeout 兜住,避免连上却不返回响应头时无限挂住
- 新增 TripoProviderClient::artifact_stall_timeout 统一承载三处预算,取值沿用 TripoSettings::request_timeout
- 补 3 个 mock TCP 用例:响应头一直不来、传输中途断流按无数据推进失败,慢速但持续的下载必须完整收完(后者能拦住「改回总超时」的回归)
- 同步技术方案与后端架构文档里的下载超时口径
|
2026-09-21 19:54:57 +08:00 |
|
k88936
|
609b24c779
|
text-to-model入口的submit改名带端点
- TripoProviderClient::submit 改名为 submit_text_to_model,与 submit_image_to_model / submit_multiview_to_model 一致
- 同步 api-server tripo3d worker 与 tripo_generation_smoke example 的调用点
- 同步技术方案文档里写死的 submit 口径,方法名不再与另两个入口分叉
|
2026-09-21 19:49:31 +08:00 |
|
k88936
|
3af0d3d90b
|
契约枚举的线上取值只由serde定义
- shared-contracts 新增 wire_str 与 wire_str_lossy:线上取值只从 serde rename / rename_all 取,不再维护第二份字面量
- 删除模型版本、纹理质量、纹理版本、纹理对齐、几何质量、输入方向、导出方向、压缩共 8 个枚举上手工维护的 as_str
- platform-tripo 新增 common/wire.rs 负责契约枚举到 provider 请求字符串的转换,三个入口的 to_sdk_params 改走它并把失败归一成 provider 错误
- api-server 的定价文案与 job 模型版本取值改用 serde 取值,job 的 model_version 由 &'static str 改为 String
- 取值来源只剩 serde 一处,改 rename 不会再静默分叉
|
2026-09-21 19:46:43 +08:00 |
|
k88936
|
c0d6531e92
|
三个入口的seed参数在TS契约里改用bigint
- seed 是 i64,JS number 表示不了全部取值却又没有范围校验,客户端传 64 位值会被静默舍入
- text_to_model / image_to_model / multiview_to_model 的 image_seed、model_seed、texture_seed 由 number|null 改为 bigint|null
- 同步重新生成的 ts-rs 绑定,仅这三个字段变化
|
2026-09-21 19:38:47 +08:00 |
|
k88936
|
a4d9418cd3
|
补记Tripo TS绑定目录化生成的重跑验证
- 实施计划进展记录 contracts:model3d:generate 重跑后 packages/shared 无 diff
- 验证命令清单补上该生成命令
|
2026-09-21 15:34:46 +08:00 |
|
k88936
|
7d842f0b15
|
补记spacetime-client重复副本文件的排障经验
- 记录 active.rs 用 path 属性指定真实模块、同名副本不参与编译的现象与原因
- 给出改动前先查 path 属性、只改 active 目录、用编译双绿确认的处理口径
|
2026-09-21 15:32:30 +08:00 |
|
k88936
|
d6c7a04a1c
|
同步Tripo3D的worker领取范围与长任务预算口径
- worker 领取清单补上 model3d_text_to_model 与 model3d_image_to_model
- 长任务预算说明补记两个 3D job kind 在单次 attempt 内轮询 provider 并占用并发位
- worker 化方案补记 Tripo provider 的四个环境变量、默认网关与缺密钥时的 503 口径
|
2026-09-21 15:31:04 +08:00 |
|
k88936
|
13dfe07f94
|
补记3D定价在模型定价体系中的例外口径
- 模型定价管理方案新增 model3d 段说明:形状、事实源仍为文件配置、后台改价不覆盖
- 说明段缺失即 fail closed,未确认前禁止写入猜测值或 provider credit 数字
- 记录后续把 3D 段迁入 SpacetimeDB 并接后台编辑的收敛路径
- 实施计划补记 spacetime schema guard 通过及其锚点
|
2026-09-21 15:26:31 +08:00 |
|
k88936
|
03d26d46af
|
修正provider文档里过期的下载包装类型名
- 文档写的 TripoDownloadedModel 已不存在,按当前代码改成 TripoDownloadedArtifact
- 上一条文档提交的说明里已提到这处改动,但当时补丁没落上,这次补实
|
2026-09-21 15:22:08 +08:00 |
|
k88936
|
c0fcb8553d
|
补Tripo worker纯逻辑定向用例
- checkpoint 只在 provider task id 非空且去空白后有效时才算存在,空白等同未提交
- 完成结果按端点严格区分,且序列化后不含 provider、taskId 与带签名的临时地址
- 预览图尺寸必须能真实解码,损坏字节直接失败而不是写占位宽高
- 预检用例去掉多余的通配导入,实施计划进展同步当前通过数
|
2026-09-21 15:22:01 +08:00 |
|
k88936
|
25ee11771c
|
同步Tripo provider文档与本次行为修正
- 脱敏输出保留原分隔符、带 userinfo 的地址解析即拒绝
- 图片与视图引用提交前 trim;校验原因分 Required / InvalidCombination / OutOfRange
- 下载前要求快照为完成态,filename 扩展名收紧为短 ASCII 字母数字
- 顺带把文档里的下载包装类型名改为当前的 TripoDownloadedArtifact
|
2026-09-21 15:21:12 +08:00 |
|
k88936
|
aebbd3bb99
|
多视图输入变体字段统一按camelCase序列化
- Model3dMultiviewInputs 的 serde 属性补 rename_all_fields = camelCase,结构体变体字段不再逐字段手工 rename
- TaskId 变体去掉冗余的 taskId 显式 rename,序列化结果与生成绑定均无变化
|
2026-09-21 15:20:36 +08:00 |
|
k88936
|
3e426a1006
|
容器首帧无尺寸时按真实比例重算取景
- 取景原先只在加载完成时按 measureViewport() 的宽高比算一次,隐藏面板里挂载时只能拿到方形兜底值
- 抽出 computeFraming(aspect),ResizeObserver 首次量到非零尺寸后按真实比例重算并复位一次,之后不再覆盖用户的缩放
|
2026-09-21 15:17:11 +08:00 |
|
k88936
|
f732555a44
|
为Tripo提交路由补应用级验收用例
- 走真实 build_router 断言两个端点未鉴权一律 401,路径写错或漏 merge 会退化成 404
- 断言缺 Idempotency-Key 在解析之后、组合校验与定价之前返回 400
- 断言贴图档位冲突与定价必填字段缺失都在定价与 provider 副作用之前返回 400 并定位字段
- 实施计划进展补记该组用例与当前全量测试通过数
|
2026-09-21 15:16:22 +08:00 |
|
k88936
|
d4af6802fb
|
补多视图请求契约的全字段往返用例
- 新增全字段往返:钉住 camelCase 字段名、各枚举线上取值与 Option 的可省略写法
- 新增显式 null 往返:确认可选字段回写时仍是 null 而不是整字段消失
- 补用例后字段改名或可空性漂移会被测试拦住,不再是只在 TS 绑定里可见
|
2026-09-21 15:16:06 +08:00 |
|
k88936
|
294b7461ff
|
去掉产物下载重试里的不可达panic分支
- download_artifact 原先用 for + last_error + expect 收尾,循环每轮都会 return,expect 实际不可达,却给库留下一条潜在 panic 路径
- 改为 loop 内递增 attempt,重试耗尽时直接返回最后一次错误,重试次数与退避行为不变
|
2026-09-21 15:15:07 +08:00 |
|
k88936
|
e9af6c0741
|
脱敏地址保留原始分隔符
- redacted 原先无条件用 ? 拼接脱敏标记,只有 fragment 的地址会被显示成带 query 的样子
- 改为按命中的分隔符原样拼接,日志里能区分 query 与 fragment
|
2026-09-21 15:14:51 +08:00 |
|
k88936
|
0f8ac57593
|
拒收带userinfo的产物地址
- TripoUrl::parse 原先只校验 scheme,带 user:password@ 的地址会被 Debug / redacted 原样打进日志
- 解析阶段直接拒绝 userinfo,产物地址不需要凭据
|
2026-09-21 15:14:07 +08:00 |
|
k88936
|
694a3c6f6c
|
产物下载前校验任务确实处于完成态
- download_model 与 download_rendered_image 原先只看 output 是否存在,快照字段全公开、status 与 output 可以被人为构造得不一致
- 两个入口统一走 completed_output:先校验 task_id,再要求 status=Completed 且有输出,否则按输出结构错误失败
|
2026-09-21 15:14:00 +08:00 |
|
k88936
|
6724f8b707
|
收紧产物文件名对远端扩展名的取值
- filename 直接取远端 URL 末段扩展名,path_segments 已百分号解码,%2F / %5C 会拼出跨目录路径
- 扩展名只接受长度不超过 10 的 ASCII 字母数字,其余一律退回 glb
|
2026-09-21 15:13:15 +08:00 |
|
k88936
|
03d5cde838
|
统一模型字节读取失败的报错口径
- response.arrayBuffer() 原先在 fetch 的 try/catch 之外,读到一半失败会直接抛出底层 DOMException
- 改为包一层并把失败归一成 Model3dViewerLoadError 的 load-failed,与其它加载失败路径一致
|
2026-09-21 15:11:30 +08:00 |
|
k88936
|
a87e19444b
|
修复模型查看器环境贴图失败时的显存泄漏
- RoomEnvironment 建好之后若 PMREM 生成失败,原先只把引用置空,它的几何与贴图不会释放
- 失败分支改为先释放已建出的 RoomEnvironment,再释放可能已建出的 PMREMGenerator
|
2026-09-21 15:11:25 +08:00 |
|
k88936
|
ae426df240
|
修复模型查看器自动旋转状态可能停在旧值
- 场景创建使用 effect 开始时的 autoRotateRef.current,加载期间 prop 变化时 setAutoRotate 的 effect 因 sceneRef 为空被丢弃
- 场景就绪后按最新的 autoRotateRef.current 重新同步一次,避免旋转状态与 prop 不一致
|
2026-09-21 15:11:20 +08:00 |
|
k88936
|
33cd943ff9
|
长度与范围越界改用独立校验原因
- TripoValidationReason 新增 OutOfRange,与「参数组合互斥」不再共用 InvalidCombination
- prompt 超 1024 字符、negative_prompt 超 255 字符改报 OutOfRange
- face_limit 越界属同一类范围错误,一并改报 OutOfRange,调用方可按原因分流
|
2026-09-21 15:11:12 +08:00 |
|
k88936
|
7193bd28c2
|
多视图可选视图去掉首尾空白再提交provider
- optional_view 先用 trim 判空、再把未 trim 的原串交给 FileInput,两侧口径不一致
- 改为提交前 trim,空白视图仍按未提供处理
|
2026-09-21 15:10:49 +08:00 |
|
k88936
|
e8467c2870
|
多视图前视图去掉首尾空白再提交provider
- front 只按 trim 后判空,但先前把未 trim 的原串交给 FileInput,带空白的取值会被原样发出
- 改为提交前 trim,与 image_to_model 的输入口径一致
|
2026-09-21 15:10:24 +08:00 |
|
k88936
|
0982b952cb
|
收敛Tripo三入口重复的extra字段构造
- 新增 common/extra.rs 统一构造 texture_version 与 delight 的 SDK extra 字段,键名只留一份
- text_to_model 与 image_to_model 删除各自的 extra_fields 副本,改调公共实现
- multiview_to_model 的内联 extra.insert 也改为复用同一构造
- 未提供的参数仍不写入 extra,请求体行为与原先一致
|
2026-09-21 15:08:50 +08:00 |
|
k88936
|
eb4256f883
|
图生3D图片引用改为提交时定点预检
- image_source 拆成预检与执行两条路径,预检只做归属、记录类型与对象键校验,不读正文也不调用 provider
- 定点解析改用既有 resolve_editor_reference_record_by_id_for_owner,取代列工程与读素材库的宽查询
- image-to-model 路由在扣费与入队前调用预检,跨 owner、未登记、已删除与 kind 不符统一返回 400
- editor_project 把定点引用查询暴露为 crate 内可见,供生成入口复用
- 新增源码钉住用例,防止预检退回宽查询或提前读图片正文
|
2026-09-21 15:08:46 +08:00 |
|
k88936
|
63c924dba0
|
补记Tripo图生3D图片引用提交预检口径
- 主规范明确图片引用解析分两步:提交时只做元数据预检,worker 执行时重新确认同一事实
- 主规范新增第 5 条验收标准,验收清单顺延至 12 条,里程碑同步引用范围
- 实施计划把图片输入预检写进固定执行顺序,并记录已改用定点引用查询取代宽查询
- 决策记录新增条目:站内引用禁止在提交路径读正文、调 provider 或列全量工程与素材库
|
2026-09-21 15:08:01 +08:00 |
|
k88936
|
02ef84d9b6
|
清理Tripo3D新代码的死代码与无意义断言
- 删除 job.rs 中无调用的 is_model3d_job_kind、source_entity_id 与本地 target_source_entity_id
- 删除 artifacts.rs 中未被引用的 map_artifact_error 及其 TripoError 导入
- 删除未被引用的 MODEL3D_JOB_MAX_ATTEMPTS 与只被同文件测试断言的 queue source module 常量
- 删除对常量自身取值的恒真断言测试
|
2026-09-21 14:45:04 +08:00 |
|
k88936
|
8a828a43ba
|
同步Tripo 3D生成的图片输入与完成结果口径
- 主规范明确图片输入先读字节再上传换 file_token,不把带签名的临时地址交给第三方
- 主规范补完成结果读取口径:由既有任务查询的 result 字段返回,标准消费者仅透传调用方显式给出的 result
- 实施计划把图片输入步骤改写为 file_token 口径,文件表补 storage.rs
- 实施计划新增进展一节,写清已落地步骤、未确认的定价数值与尚未跑通的真实端到端
- 风险一节补 worker 并发位与长任务超时的运维前提
|
2026-09-21 14:38:20 +08:00 |
|
k88936
|
29e554a30c
|
新增api-server Tripo3D worker执行链路与结果落库
- 新增 artifacts/result/worker 三个文件:产物读取、严格结果构造与 at-most-once submit 执行链路
- 没有 checkpoint 才 submit;submit 成功后先落 checkpoint 再轮询,checkpoint 写入失败按终态失败,不退回可重试队列
- 模型与预览图分别写入 OSS 并按 operation 稳定 ID 登记 asset_object,预览对象单独登记以便按对象键解析归属
- 落点按 target 分支写入项目资源或账号素材,imageSrc 与 thumbnailSrc 指向预览图,模型本体留在 objectKey
- 画布回填只走 placement-only;新增只依赖资源身份与尺寸的占位条目构造函数供 3D 复用
- 标准消费者的队列结果透传调用方显式给出的 result,使 3D 完成结果可从既有任务查询返回
- external_generation_worker 增加两个 job kind 分支并纳入长任务超时,用户可见失败文案收敛为稳定文本
|
2026-09-21 14:36:59 +08:00 |
|
k88936
|
ac08ccbe39
|
修正spacetime-client checkpoint facade的落点
- facade 方法补进真正参与编译的 active/external_generation.rs,此前误写在未被编译的重复文件里
- mapper 重新导出 ExternalGenerationJobProviderCheckpointRecordInput,调用方无需从子模块路径引用
- 删除未被编译的 src/external_generation.rs 重复副本,避免再次改到死文件
|
2026-09-21 14:33:51 +08:00 |
|
k88936
|
e809cdd850
|
新增api-server Tripo3D图片输入解析与产物对象写入
- editor_project 暴露按注册 ID 定点解析资源与素材对象键的入口,只认本账号已登记记录
- image_source 把站内引用解析成对象键后读字节并上传 provider 换 file_token,不把签名地址交给第三方
- storage 负责产物 PUT、HEAD 复核与 asset_object 登记,模型与预览图共用同一条链路
- asset_object ID 使用 operation 稳定派生值,避免被生成结果事务的白名单校验拒绝
- 完整字节写入路径留 TODO,等待 platform-oss 提供流式上传
|
2026-09-21 14:24:41 +08:00 |
|
k88936
|
a8799adf5d
|
platform-tripo支持图片上传与预览图下载
- 产物下载类型改名为 TripoDownloadedArtifact,模型与预览图共用同一条流式读取路径
- 新增 download_rendered_image,读取 task 结果里的预览图地址
- 新增 upload_image,把图片字节上传 provider 换 file_token
- 图片输入收敛为 TripoImageInput 枚举,只有 file_token 与公网地址两种形态,不再接受裸字符串
- smoke 示例跟随新的图片输入类型
|
2026-09-21 14:06:47 +08:00 |
|
k88936
|
4edeadae7d
|
登记Tripo 3D的生成结果operation_kind白名单
- SpacetimeDB storage 的编辑器生成白名单加入 model3d_text_to_model 与 model3d_image_to_model
- 白名单是原子落库的 operation_kind 门禁,未登记会让整笔结果事务被拒
- api-server 侧按源码钉住两个 job kind 已在白名单内,避免只在运行期才发现
|
2026-09-21 14:02:58 +08:00 |
|
k88936
|
931be509f1
|
补记Tripo model3d的assetKind接入清单对照
- 主规范新增 assetKind 接入清单对照表,逐行登记后端-only 类别的触碰点口径
- 主规范明确原子落库 operation_kind 白名单必须新增两个 Tripo job kind,画布回填只走 placement-only
- 主规范登记用户标签覆盖、快速编辑与改造 capability 三项结论均为不进入,并写明后续接前端需重评
- 实施计划把 provider 配置文件行更正为 provider.rs,并在产物落库步骤补白名单与 placement 口径验收
- 后端架构文档补充说明:不走编辑器前端的生成类别同样适用清单,不能靠无前端入口跳过
|
2026-09-21 13:59:53 +08:00 |
|
k88936
|
dd8f48bad9
|
新增api-server Tripo3D提交路由与入队
- tripo3d 目录按 job 身份、provider 配置、错误映射、入队与路由拆分小文件
- 两个内部路由要求 Bearer 与 Idempotency-Key,顺序固定为解析、组合校验、查价、入队
- 入队复用编辑器生成队列的幂等 dedupe key,同键同请求返回原 operation,同键不同请求 409
- Tripo job 走既有 editor-canvas 来源与单次尝试口径,不新建队列、不新增状态
- 提交响应返回 operation、job kind 与既有任务查询状态地址,不暴露 provider 信息
- 补齐 ExternalGenerationJobRecord 测试夹具新增的 checkpoint 字段
|
2026-09-21 13:46:41 +08:00 |
|
k88936
|
d012392779
|
api-server 增加 Tripo 生成的环境配置
- AppConfig 新增 tripo_base_url / tripo_api_key / 请求超时 / 重试四个字段
- 默认网关指向 Tripo 官方 v3 地址,可由 TRIPO_BASE_URL 覆盖
- 环境变量沿用 provider 示例的 TRIPO_* 口径,API Key 缺省为空
- 默认值断言补进配置测试
|
2026-09-21 13:23:18 +08:00 |
|
k88936
|
2182b075b8
|
新增Tripo生成Worker执行链路实施计划
- 固定 api-server 侧 tripo3d 目录的文件切分与各文件职责
- 明确提交路由执行顺序、幂等口径与图片输入解析边界
- 记录 Tripo job 固定 max_attempts=1 与 checkpoint 收口语义
- 里程碑二转 active 并回链实施计划,里程碑一补实施计划入口
|
2026-09-21 13:17:24 +08:00 |
|
k88936
|
a11fd709fa
|
同步external_generation_job表目录的provider checkpoint口径
- 补记 provider_kind 与 provider_task_id 的追加字段、租约栅栏与禁止覆盖语义
- 说明 checkpoint 不进 payload、read model、BFF 响应与公开契约
- 事件表目录补充 provider_checkpoint 事件
|
2026-09-21 13:11:06 +08:00 |
|
k88936
|
aa1a1a63ed
|
spacetime-client 暴露 provider checkpoint 写入入口
- 重新生成 module bindings,新增 checkpoint procedure 与输入类型、表行与快照投影
- mapper 增加 checkpoint 记录输入与到绑定输入的转换,快照映射补两个新字段
- facade 新增 set_external_generation_job_provider_checkpoint,复用 procedure 结果映射
- facade 注释说明已有 checkpoint 被拒是 at-most-once submit 保证,写入失败按失败处理
|
2026-09-21 13:10:11 +08:00 |
|
k88936
|
09ea0a5e76
|
新增external_generation_job的provider任务checkpoint
- provider_kind 与 provider_task_id 追加在表末尾,带显式默认值,旧行迁移时补 NULL
- 新增 set_external_generation_job_provider_checkpoint_and_return procedure,复用 running 租约栅栏
- 已有 checkpoint 时禁止覆盖并留下 provider_checkpoint 事件,作为 at-most-once submit 的数据层保证
- 快照与兼容快照同步投影两个新字段,轻量摘要按无 checkpoint 返回
- 增加 checkpoint 不可覆盖的不变量单测
|
2026-09-21 13:02:52 +08:00 |
|
k88936
|
36036eed7b
|
修正Tripo定价文档口径为 fail-closed 与无单位
- 主规范去掉 model3d 段的 unit 字段,3D 恒为按次计价
- 主规范把加载即校验改为段存在时必须全键,并补充段缺失即拒绝提交
- 契约里程碑验收第 6 条同步为段缺失 fail-closed
- 实施计划把定价步骤指向 api-server/src/tripo3d/pricing.rs
|
2026-09-21 13:00:45 +08:00 |
|
k88936
|
e105e34f83
|
新增Tripo生成请求的平台组合校验
- 价格相关参数必须显式给出,texture 与 textureQuality、pbr 不能互相矛盾
- 目标落点与图片引用的 ID 不能为空白
- provider 能力组合规则复用 platform-tripo 预检,不维护第二份
- 校验结果直接产出定价输入,路由在扣费与 provider 调用前执行
- api-server 依赖 platform-tripo
|
2026-09-21 12:53:22 +08:00 |
|
k88936
|
8f6458ffe2
|
新增api-server Tripo3D模块与泥点定价结构
- 新增 tripo3d/pricing.rs,底价按 endpoint × 模型版本 × 是否有贴图,add-on 按固定键表叠加
- 定价段加载即校验全部底价与 add-on 键,缺键即配置非法;缺段代表未配置,查价直接拒绝
- editor_generation_config 挂载可选 model3d 段并提供 fail-closed 查价入口
- 后台记录形状尚不支持 3D 段,暂由文件配置提供并留下同步待办
- model_version 增加 ALL 与排序,供定价表枚举校验
|
2026-09-21 12:53:02 +08:00 |
|
k88936
|
f90e114bcb
|
生成目录化的Tripo API与画布TS绑定
- 生成模型输入、结果落点、产物元数据与按端点的结果类型到 packages/shared/src/contracts/model3d 子目录
- 新增 editor-canvas 生成目录,画布占位载荷不再依赖手写 TS
- 更新 model3d 导出索引,移除已删除的占位作业类型
- contracts:model3d:generate 生成后自动跑 prettier
|
2026-09-21 12:39:33 +08:00 |
|