k88936
|
5285832acb
|
3D 查看器容器宽高比变化时按新比例重算取景
- framing 新增 resolveModel3dViewerReframedCameraPosition:保留朝向与相对缩放并钳进新缩放范围
- scene 的 ResizeObserver 不再只认首次尺寸,宽高比变化超过 1% 就重算取景
- resetView 改为按容器当前宽高比重算,不再复用可能过期的取景
- 首帧直接套用创建时的取景,避免重复一次顶点采样
- 补 framing 测试:朝向保留、相对缩放保留、缩放钳制与方向退化
|
2026-09-23 11:51:26 +08:00 |
|
k88936
|
f4083dcb6d
|
3D 查看器给签名地址的兄弟资源补回鉴权 query
- loader 新增 resolveModel3dViewerSourceQuery / resolveModel3dViewerResourceUrl,只补模型目录下的资源地址
- glTF / FBX 解析改用带 URL 修饰器的专用 LoadingManager,不动全局 DefaultLoadingManager
- 补测试:query 提取与片段剔除、目录内外的补与不补、多文件 glTF 兄弟资源解析
|
2026-09-23 11:48:48 +08:00 |
|
k88936
|
c5a718ac0e
|
3D 定价后台可编辑补齐实现状态、验收证据与踩坑记录
- 主规范补公开读模型投影口径、覆盖文件缺段补齐、旧形状覆盖文件的发布前置门禁与加价项一致性约束
- 实施计划补实现状态表、逐条判据的验收证据与真实环境待验收项;里程碑标记已实现待验收
- 后端架构文档补 upsert input 的期望版本与事务内 CAS 语义
- pitfalls 补「省略即沿用会静默覆盖」与「公开读模型形状不能跟着存储形状走」两条
- decision-log 补实现期的四个口径:公开投影取文生加价项、CAS 复用 updated_at、覆盖文件缺段按默认补齐、旧形状不兼容改发布门禁
|
2026-09-23 11:48:30 +08:00 |
|
k88936
|
c901f6954f
|
后台模型定价页新增 3D 两段编辑区块与乐观锁提示
- 新增 3D 定价区块:按端点分「文生 3D / 图生 3D」,各渲染模型版本 × {无贴图, 带贴图} 底价与加价项输入,键全部来自接口返回
- 抽出 adminEditorGenerationPricing 纯模块:数值解析、提交前 ≥1 校验、加价项中文标签、保存请求组装
- 保存整段回传 models 与 3D 两段,并带 expectedUpdatedAtMicros;409 提示重新读取且提供入口
- 后端未配置 3D 段时提示并禁用保存,不在页面新建或停用整段
- API 类型与客户端补两段、定价版本与保存请求类型;补组件与纯模块用例
|
2026-09-23 11:44:44 +08:00 |
|
k88936
|
ee4a9434fa
|
后台定价读取带版本、保存整段必填并做事务内乐观锁
- shared-contracts 新增定价版本冲突标记,module 与 api-server 共用一处声明
- SpacetimeDB upsert input 增加期望版本,事务内比对不一致即整笔拒绝(种子写入显式不比对)
- 定价 store 记录当前版本,读取路径带出 updated_at 微秒值
- 后台 GET 返回 models / 3D 两段 / updatedAtMicros,POST 要求两段显式给出且带期望版本
- 缺 3D 段 400、版本不匹配 409,退役 with_previous_model3d 与「省略即沿用」用例
- 绑定按 input 新字段重新生成,模块补乐观锁比对用例
|
2026-09-23 11:38:23 +08:00 |
|
k88936
|
952bc1ccaa
|
覆盖文件缺 3D 段时按受控默认价补齐,不再把 3D 整段算成未配置
- 新增 backfill_legacy_model3d_pricing:旧覆盖文件整段没有 3D 时补上默认 JSON 的两段并告警
- 覆盖文件继续只承担种子与兜底,避免老种子文件把 3D 生成整段关掉
- 补用例覆盖覆盖文件缺 3D 段的读取
|
2026-09-23 11:15:42 +08:00 |
|
k88936
|
5e47f0c41e
|
3D 定价记录转换与读取归一化接上 SpacetimeDB 两段列
- 新增 editor_generation_model3d_records 深模块:配置与两段记录行之间双向转换
- 写入方向严格:落库前按契约强校验,缺键与契约外键都不写
- 读取方向归一化:记录缺键(含整段缺失的老行)用本地配置同段补齐,契约外键剔除并告警,补齐后仍不合法才判非法
- 定价配置读取以表为准,覆盖文件降级为种子与兜底;state.rs 保存路径写入两段
- spacetime-client 补导出 3D 定价记录类型,api-server 定向用例覆盖往返、补齐、剔除与拒绝
|
2026-09-23 11:12:57 +08:00 |
|
k88936
|
ebd904e193
|
公开读模型 3D 段保持迁移前的旧形状
- 新增 Model3dPricingPublicView,把内部两段结构投影回 basePrices 端点判别 + addOnPrices 单表
- 公开路由改用投影视图,画布 3D 入口与前端类型不需要随本次迁移改动
- 投影取文生 3D 段的加价项,两段不一致时打告警提示前端升级前不要差异化
- 公开路由用例补断言钉住 3D 段旧形状
|
2026-09-23 11:04:50 +08:00 |
|
k88936
|
9f4a71d2e3
|
3D 定价段拆成端点并列的两段结构
- Model3dPricingConfig 改为 textToModelPricing / imageToModelPricing 两段并列,各持自己的 versionPrices 与 addOnPrices
- 新增 Model3dEndpointPricing 承接单端点定价,校验与查价按端点委派,溢出检查覆盖两段
- 受控默认 JSON 的 model3d 段同步改为两段结构
- 3D 定价相关用例夹具与断言更新到两段形状
|
2026-09-23 11:01:20 +08:00 |
|
k88936
|
774b74d3d6
|
SpacetimeDB 定价表追加 3D 两段列,记录形状先能表达端点 × 版本 × 贴图与加价项
- editor_generation_pricing_config 末尾追加 text_to_model_pricing / image_to_model_pricing 两个 Option 列并带显式默认值
- 新增模型版本底价、加价项、端点定价三个 SpacetimeType 行类型,模块侧按段校验空段、缺半段、重复键与非正价格
- upsert 输入、快照、生成绑定与客户端记录映射同步两段字段
- api-server 保存路径本次先写空值,读取仍走本地文件缓存;补模块段级归一化用例
|
2026-09-23 10:54:01 +08:00 |
|
k88936
|
1327cd53b7
|
3D 生成定价迁移先落文档:两段并列结构、SpacetimeDB 权威与后台编辑
- 主规范把 3D 定价改成按端点两段并列结构,事实源改为 SpacetimeDB,补契约归一化、后台保存语义与验收项
- 新增 ADR 0005,记录权威事实源迁移、公开读模型不变的取舍与四条被否决做法
- 新增里程碑规范与实施计划,列出范围、验收标准、文件切分、验证命令与两个回滚点
- 同步 Tripo 技术方案的定价段形状、后端架构表目录的两列说明、CONTEXT.md 术语与决策记录
|
2026-09-23 10:53:28 +08:00 |
|
k88936
|
caafb8baa3
|
3D 提交体改用端点契约类型而非 Record
- Model3dSubmissionPlan.body 与 submitModel3dGenerationRequest 的 body 收紧为两个端点请求契约
- 提交计划按端点分支分别构造 text-to-model / image-to-model 请求体
- 幂等键入参同步收紧,测试夹具按契约补全 body
|
2026-09-22 17:04:11 +08:00 |
|
k88936
|
4e46202c10
|
3D 提交收到无任务状态的成功响应不再静默复位
- 新增 MODEL3D_SUBMISSION_MISSING_QUEUE_STATE_MESSAGE 提示文案
- 空 body 或缺 status 的 2xx 响应改判失败态并保留提示,不再直接回 idle
- 补用例断言不再触发排队链路且对话框进入失败态
|
2026-09-22 17:00:13 +08:00 |
|
k88936
|
00eed191c5
|
3D 提交把兜底铸的尝试代次写回对话框状态
- 新增 resolveModel3dAttemptNonce,提交计划带出本次实际使用的代次
- 提交编排在进入 generating 时把该代次写回 dialog,缺代次的老快照不再每次换键
- 补老快照场景用例,断言幂等键前缀与写回的代次一致
|
2026-09-22 16:59:18 +08:00 |
|
k88936
|
62f1ca4537
|
3D 提交失败提示不再直接显示传输层英文文案
- resolveModel3dGenerationErrorMessage 对超时单独给出中文可重试提示
- fetch 失败与中断收敛到中文兜底,服务端文案仍原样透出
- 补服务端文案透出、传输层兜底与超时提示的用例
|
2026-09-22 16:57:55 +08:00 |
|
k88936
|
852e65f7d8
|
查看器字节来源注明引用必须稳定
- Model3DViewerSource 的 bytes 分支补充 buffer 生命周期与稳定引用要求
- 说明同内容换新引用会触发场景重建与 GPU 重传的后果
|
2026-09-22 16:56:19 +08:00 |
|
k88936
|
aa6e3b8d79
|
SDK 请求错误不再丢弃响应体与底层错误链
- 映射 tripo3d_sdk::Error::Request 时带上 body 与 source 字段
- 响应体截断到 512 字符,疑似带 http(s) 地址的响应体整体丢弃
- 只取错误链底层文本,避免 reqwest 顶层 Display 带出完整签名 URL
- 补错误链收集、响应体过滤与截断的用例
|
2026-09-22 16:55:16 +08:00 |
|
k88936
|
3ab7b386f1
|
补外部生成主表 provider checkpoint 归一化单测
- 新增 old_external_generation_job_rows_default_to_unsubmitted_provider
- 断言旧迁移行的 provider_kind 与 provider_task_id 都归一成 null
- 守住 at-most-once submit 的向后兼容路径
|
2026-09-22 16:52:19 +08:00 |
|
k88936
|
ed2eb43fe6
|
补 3D 生成选项校验的表驱动单测
- 覆盖最简选项全模型放行、fast 必须配 v3.5 贴图版本
- 覆盖 generate_parts 的 texture/pbr/quad/smart_low_poly 互斥组合
- 覆盖 quad 家族限制与各模式 face_limit 的 min-1/min/max/max+1 边界
- 覆盖空白 task id 按 OutputSchema 失败与 trim 行为
|
2026-09-22 16:50:06 +08:00 |
|
k88936
|
62bf602fb1
|
多视图请求 DTO 补齐字段级说明并重生成绑定
- Model3dMultiviewToModelRequest 每个字段补一行中文语义说明与取值范围
- 结构体补严格反序列化与组合校验归属的说明
- 重新生成 ts-rs TS 绑定,注释同步进 Model3dMultiviewToModelRequest.ts
|
2026-09-22 16:48:57 +08:00 |
|
k88936
|
2348315dba
|
3D 结果打标契约测试补齐 preview 与 imageToModel 分支
- textToModel 用例补 preview 产物的相等断言
- 新增对称的 imageToModel 用例,守住 tag 路由与分支字段
- 裸字符串 source 的负例改为点名 Model3dGenerationSource 并单独反序列化 source 值
|
2026-09-22 16:46:19 +08:00 |
|
k88936
|
bba96e18a1
|
队列状态映射改为借用记录避免提交路径整行克隆
- editor_generation_queue_state 收 &ExternalGenerationJobRecord,只克隆输出需要的三个字段
- Model3dSubmissionResponse::from_job 不再克隆整行 job,status_url 提前算好避免额外克隆
- 其余调用点改为传引用,行为不变
|
2026-09-22 16:44:47 +08:00 |
|
k88936
|
433ffb4a15
|
落库的模型版本改用严格 wire 取值
- Model3dJobRequest::model_version 改为返回 Result 并使用 wire_str
- worker 落库前取不到契约取值即按服务端问题失败,不再写 Debug 兜底名
- 新增用例断言落库取值为契约线上值 v3.1-20260211
|
2026-09-22 16:40:48 +08:00 |
|
k88936
|
4e5ff179b2
|
3D 查价拒绝 texture=false 与贴图加价项的矛盾组合
- Model3dPricingError 新增 InconsistentTextureAddOn 变体与对应文案
- price() 在命中的 add-on 含贴图类而 texture=false 时失败关闭,不再照价收费
- 补齐矛盾组合报错与 texture=true 合法组合的价格用例
|
2026-09-22 16:38:24 +08:00 |
|
k88936
|
87ca86ae6a
|
图片输入解析抽出可注入查询的解析规则并补齐行为用例
- resolve_source_object_key 拆出 resolve_source_object_key_with 与 ResolvedReference 窄结果
- 新增按 ID 定点查询、类型不符、缺对象键、4xx 收敛与基础设施错误保留状态码的用例
- 源码文本断言不再按函数签名切片,只检查本模块不出现列工程 / 列素材库
|
2026-09-22 16:36:16 +08:00 |
|
k88936
|
48cde9624c
|
operation_kind 白名单改为两 crate 共用的共享常量
- 白名单常量迁到 shared-contracts 并从 crate 根导出
- spacetime-module 的原子落库事务改为引用该常量,删除本地重复定义
- api-server 的登记测试不再解析对方源码文本,改为直接断言常量内容
- 后端架构文档补上白名单常量的位置与共用口径
|
2026-09-22 16:30:28 +08:00 |
|
k88936
|
e359158ecf
|
校验文案的版本标签改为从契约枚举推导
- validate_generation_options 的错误文案改用 wire_str_lossy 取 serde 线上值
- v3.x 家族的模型标签收敛到 v3_model_labels 助手
- 契约改名后诊断文案随之更新,不再手写重复的版本字符串
|
2026-09-22 16:19:09 +08:00 |
|
k88936
|
bcac5a7c12
|
三个提交入口的生成选项映射收敛为单一字段清单
- common::validation 用 tripo_generation_options_from! 由一份字段清单派生三个 From 实现
- multiview 手写的 TripoGenerationOptions 映射改为复用该 From 实现
- 新增共享字段时三条路径一起跟上,缺字段会在编译期报错
|
2026-09-22 16:15:38 +08:00 |
|
k88936
|
c8b4160fcd
|
3D 查价错误并入统一的定价错误枚举
- EditorGenerationPricingError 新增 Model3d 变体并实现 From<Model3dPricingError>
- model3d_price 改为返回 EditorGenerationPricingError,内层文案直通保持响应不变
- 提交路由对 3D 定价错误与定价快照错误分别映射,未配置用例改断言 Model3d(NotConfigured)
|
2026-09-22 16:11:17 +08:00 |
|
k88936
|
9800477c7c
|
模型版本清单从声明表派生避免漏加新版本
- Model3dModelVersion 的变体、线上值与 ALL 改为由 model3d_model_versions! 单一声明表生成
- ALL 类型改为 &'static [Self],新增版本只需在声明表加一行
- 定价校验与测试的遍历改用 iter().copied()
|
2026-09-22 16:03:55 +08:00 |
|
k88936
|
2e9aed3750
|
三个提交入口统一校验 provider 返回的 task id
- 新增 submitted_task_handle:空白 id 在提交调用附近以 OutputSchema 失败
- text / image / multiview 提交路径共用它,任务不再以孤儿状态等到下游查询才报错
|
2026-09-22 15:53:37 +08:00 |
|
k88936
|
09f0c51b81
|
空白视图规则收敛到单一助手
- 新增 view_input 同时服务提交前计数校验与 SDK 参数转换
- 空白 / 纯空白视图的判定不再有两份实现,避免校验与转换漂移
|
2026-09-22 15:49:34 +08:00 |
|
k88936
|
be07eb79c6
|
未知任务状态错误带上 task id
- map_status 接收 task_id,Unknown 分支改用与其它映射失败一致的 OutputSchema
- provider 异常可与具体任务对上,不再是一条无主错误
|
2026-09-22 15:47:01 +08:00 |
|
k88936
|
1749f427c1
|
任务快照只在失败终态保留 failure
- failure 改由终态判定驱动,不再只看 provider 是否留下错误字段
- 已完成的任务即使带过期错误字段也不再挂 failure,保持快照内部自洽
|
2026-09-22 15:45:45 +08:00 |
|
k88936
|
d9aa686e9a
|
Merge remote-tracking branch 'origin/master' into feat/tribo3d-integeration
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m36s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m11s
Project CI / Frontend tests (pull_request) Successful in 4m15s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m36s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m33s
Project CI / Native shell tests (pull_request) Successful in 9m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m29s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
|
2026-09-22 15:35:47 +08:00 |
|
k88936
|
050909a0b7
|
后台定价保存不再清空 3D 段
- payload 的 model3d 缺席或为 null 统一表示沿用当前 3D 定价,显式给出时才覆盖
- 保存路径先取当前快照合并,避免改图 / 视频价格让 3D 提交一直失败关闭
- 补用例覆盖「省略保持」与「显式覆盖」两种语义
|
2026-09-22 15:27:19 +08:00 |
|
k88936
|
ee2d505eb3
|
3D 提交在扣费前预检落点归属
- 新增 target 预检模块:画布项目按 (project_id, owner) 定点确认,素材库文件夹按 owner 的库匹配
- 两个提交路由都在查价与入队之前调用;跨 owner / 不存在的落点回 400 model3d-target-unavailable
- 只剩基础设施故障保留原状态码,并补了收敛口径的单测
|
2026-09-22 15:21:25 +08:00 |
|
k88936
|
8473877bc3
|
5xx 错误响应不再回带 provider task id
- TaskFailure / OutputSchema / 上游兜底分支只回固定文案,完整错误写入服务端日志
- 补一条断言 502 details 不含 task id 与 provider 原文的用例
|
2026-09-22 15:17:50 +08:00 |
|
k88936
|
cda7724cae
|
上游瞬时状态不再回落成 400
- 408 / 425 / 429 与 platform-tripo 的 is_retryable 口径对齐,分别回 504 / 502 / 429
- 补上这三档与客户端 4xx 的分支测试
|
2026-09-22 15:15:27 +08:00 |
|
k88936
|
e18c6ee502
|
产物下载客户端不再跟随跳转
- 产物地址来自 provider 响应,禁止 reqwest 自动跳转以防 SSRF
- 需要跳转的地址会以非成功状态显式暴露,不再由服务端静默代发
|
2026-09-22 15:12:06 +08:00 |
|
lhk229
|
292e42cf5e
|
为全部 Rust 测试组启用隔离编译缓存
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / Backend tests (push) Successful in 5m35s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m8s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m11s
Project CI / Native shell tests (push) Successful in 7m6s
Project CI / Frontend tests (push) Successful in 3m30s
Project CI / Repository checks (push) Successful in 3m28s
Project CI / AI game creator shell web tests (push) Successful in 3m7s
扩展缓存消费到 AGC 双 lane、crates、smoke、后端及桌面壳测试
补齐各组实际编译目标和工作目录的可信快照预热
保留 SpacetimeDB 独立编译边界并排除发布构建缓存
根据完整快照体积将对象缓存上限调整为 4 GiB
更新工作流契约测试、运维文档及项目共享记忆
|
2026-09-22 05:52:16 +00:00 |
|
k88936
|
669a08c7c2
|
产物下载失败信息补上可诊断上下文
- 传输失败带上脱敏 URL 与底层错误 source 链
- 非成功状态补上状态码文案与脱敏 URL
|
2026-09-22 13:51:29 +08:00 |
|
k88936
|
01a9941cbc
|
任务快照映射不再多余克隆字符串
- task_id 与 error_message 直接移交所有权,只保留错误路径上的必要克隆
|
2026-09-22 13:51:23 +08:00 |
|
k88936
|
fd0a37969e
|
3D 产物落盘文件名补上安全处理
- URL 无可用扩展名时按 content type 兜底,预览图不再写成 .glb
- 文件名主干中性化路径分隔符与遍历片段,避免逃出目标目录
|
2026-09-22 13:50:29 +08:00 |
|
k88936
|
7dd7bdd3c7
|
provider checkpoint 存在性校验补上 provider_kind
- at-most-once submit 的两字段不变量在数据层一起判定
|
2026-09-22 13:50:24 +08:00 |
|
k88936
|
5049c27f3d
|
3D 定价表加载时拦截加总溢出
- 底价与加价项累加改用 checked_add 校验,配置阶段即失败
- 避免结算路径 saturating_add 在异常配置下静默少收
|
2026-09-22 13:49:01 +08:00 |
|
k88936
|
129e2234f3
|
删掉 3D 引用解析里两个无人调用的宽查函数
- 两个 pub(crate) resolver 全仓无调用方,且会整表列举项目与素材
- 定点解析仍走既有按 ID 的窄查函数
|
2026-09-22 13:48:53 +08:00 |
|
k88936
|
2916e112df
|
3D provider 重试次数按上限 10 封顶
- TRIPO_RETRIES 配置异常时不再让产物下载近乎无限重试
|
2026-09-22 13:48:13 +08:00 |
|
k88936
|
c5e0c6a14d
|
去掉被丢弃的 remove 返回值告警
- 幂等指纹字段摘除改为显式丢弃返回值,表明这是 best-effort 行为
|
2026-09-22 13:48:10 +08:00 |
|
k88936
|
e2809b83c0
|
3D 冒烟示例单端点失败不再中断其余端点
- wait_for_task / get_task / download_model 失败时记录该端点错误并继续
- 保留 throw_on_failure: false 的原有语义,仅补齐传输与超时类错误
|
2026-09-22 13:45:50 +08:00 |
|