Feat/tribo3d集成 #421
Open
k88936
wants to merge 300 commits from
feat/tribo3d-integeration into master
pull from: feat/tribo3d-integeration
merge into: GenarrativeAI:master
GenarrativeAI:master
GenarrativeAI:feat/external-scene-generation
GenarrativeAI:fix/mobile-style
GenarrativeAI:feat/msg-queue-to-rust
GenarrativeAI:opt/test-compile-warning
GenarrativeAI:fix/api-timeout
GenarrativeAI:codex/admin-gray-game-publish
GenarrativeAI:codex/remove-agc-codex-restrictions
GenarrativeAI:feat/gptimage2to2.5
GenarrativeAI:backup/agc-macos-dualarch-node-runtime
GenarrativeAI:feat/Crt_Ws
GenarrativeAI:codex/preview-llm-router-config
GenarrativeAI:fix/stroke-width-regression-from-285
GenarrativeAI:agent-organize
GenarrativeAI:feat/game-agent-canvas-resource-workbench-v2
GenarrativeAI:feat/agc-new-workflow
GenarrativeAI:fix/agc-release-version-sync
GenarrativeAI:codex/shared-components-followup
GenarrativeAI:codex/game-agent-runtime-interaction-design
GenarrativeAI:feat/spine-sequence-export-v2
GenarrativeAI:codex/game-agent-run
GenarrativeAI:codex/ui-spritesheet-durable-transaction-latest
GenarrativeAI:feat/art-agent-more-tools
GenarrativeAI:codex/editor-canvas-null-source-repair
GenarrativeAI:hotfix/editor-layout-2mib
GenarrativeAI:codex/showcase
No Reviewers
Labels
Clear labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Breaking change that won't be backward compatible
Something is not working
Documentation changes
Improve existing functionality
New functionality
This is security issue
Issue or pull request related to testing
Priority
Critical
1
The priority is critical
Priority
High
2
The priority is high
Priority
Low
4
The priority is low
Priority
Medium
3
The priority is medium
Reviewed
Confirmed
1
Issue has been confirmed
Reviewed
Duplicate
2
This issue or pull request already exists
Reviewed
Invalid
3
Invalid issue
Reviewed
Won't Fix
3
This issue won't be fixed
Status
Abandoned
3
Somebody has started to work on this but abandoned work
Status
Blocked
1
Something is blocking this issue or pull request
Status
Need More Info
2
Feedback is required to reproduce issue or to continue work
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
陶泥儿gameAgent
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: GenarrativeAI/Genarrative#421
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "feat/tribo3d-integeration"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
删除 TripoUrl 的 Display,避免 `{}` 这类通用格式化输出带签名的完整 URL 完整 URL 仍可通过 as_str() 显式读取,日志与调试统一走 redacted() 或脱敏后的 Debug 技术方案文档补充该收敛说明- apps/ai-game-creator-shell/src-tauri/Cargo.toml:[dependencies] 补回 master 侧新增的 `codex-patch-parser = { path = "vendor/codex-patch-parser" }` 与 `chrono = { version = "0.4", default-features = false, features = ["std"] }`(冲突解决时随同段落的 ts-rs 一起被丢掉,导致 src/agent/direct_patch.rs 与 src/agent/direct_codex_audit.rs 报 8 条 E0433 / E0432) - apps/ai-game-creator-shell/src-tauri/Cargo.lock:按清单恢复 genarrative-ai-game-creator-shell 条目里的 chrono 与 codex-patch-parser 依赖 - docs/project-memory/shared-memory/pitfalls.md:新增 2026-09-22 条,记录「合并后 CI 报 cannot find module or crate 先查对方新增的依赖行」的判据与踩坑点 - docs/project-memory/shared-memory/decision-log.md:在 2026-09-22 合并条目补记这次丢依赖与验证 验证:cargo metadata --locked(AGC workspace)、cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --no-run(bin + 4 个集成测试目标全部编译)、cargo check --locked --workspace --manifest-path server-rs/Cargo.toml、npm run check:native-shells:agc-rust-crates、npm run check:encoding、npm run check:doc-index、git diff --check9c63648547toe7b067e977- 新增 3D 定价区块:按端点分「文生 3D / 图生 3D」,各渲染模型版本 × {无贴图, 带贴图} 底价与加价项输入,键全部来自接口返回 - 抽出 adminEditorGenerationPricing 纯模块:数值解析、提交前 ≥1 校验、加价项中文标签、保存请求组装 - 保存整段回传 models 与 3D 两段,并带 expectedUpdatedAtMicros;409 提示重新读取且提供入口 - 后端未配置 3D 段时提示并禁用保存,不在页面新建或停用整段 - API 类型与客户端补两段、定价版本与保存请求类型;补组件与纯模块用例- buildModel3dSubmissionPlan 接收当前素材夹与素材名,与图片/图标/音效等工具一样同时发 projectId + assetFolderId + assetLabel(素材名缺省回落本次结果标题),没有素材夹时只发 projectId。 - useModel3dGenerationTask 新增 assetFolderId 入参,画布生成链路把当前素材夹透传下来;结果仍走既有画布路径读回,刷新素材库沿用 applyGeneratedProjectSnapshot 的既有行为,不新增 3D 专用刷新。 - 素材库行加 model3d 分支:缩略图按预览图(asset.src)渲染,objectKey(模型本体 .glb)不参与图片签名,与画布 3D 卡片的 objectKey={null} 口径一致,避免素材行去加载模型文件。 - 用例补齐:请求体同时带两个落点、无素材夹时不带 assetFolderId/assetLabel、素材夹只 trim 且素材名回落标题,以及素材行 3D 预览不签模型对象键 / 普通图片仍按 objectKey 换签名地址。 - 验证:npx vitest run src/components/image-editor/model3d-generation src/components/image-editor/ImageCanvasAssetRowView.test.tsx(67 passed)、npm run typecheck、check:encoding / git diff --check 通过。- 契约新增 Model3dViewInput(url / fileToken 的 tagged enum),views 的四个视图都改用它,裸字符串在契约层即被拒绝 - platform-tripo 不再走 SDK 的位置数组形态:按 Tripo 文档推荐的 view-key 构造 inputs,值写成显式 {url} / {file_token},种类由契约字段决定、链路上不再猜前缀 - 视图校验(front 必填、至少两张、空白按未提供)与 inputs 构造合并成一条路径,不再两处重复规则 - 新增 4 条定向用例钉住发出的 JSON 形状、空白视图、视图数量与 taskId 复用;契约用例补齐裸字符串与视图内未知字段被拒 - 重新生成 ts-rs 绑定与导出索引,技术方案同步 multiview 输入口径- apps/admin-web/src/pages/adminEditorGenerationPricing.ts:提交前校验对 3D 端点段做存在性判断,缺段直接跳过该段 - apps/admin-web/src/pages/adminEditorGenerationPricing.ts:versionPrices / addOnPrices 取值补 `?? {}` 兜底,接口返回残缺时降级为「校验不出问题」,不再抛异常白屏- apps/admin-web/src/pages/adminEditorGenerationPricing.ts:分层计价分支改为仅当 prices 真的有档位时进入,`prices: {}` 不再让 modelPricing.price 逃过提交前校验- src/components/image-editor/model3d-generation/Model3dGenerationForm.tsx:已选参考图槽位补 disabled={disabled},提交中不再能删掉这次请求用的参考图,与面板其余控件的禁用口径一致- server-rs/crates/api-server/src/tripo3d/image_source.rs:预检对 object_key 加非空判断,空串 / 纯空白与缺字段同义。此前 Some("") 能过预检,等任务已入队计费后才在下载源图时失败- server-rs/crates/platform-tripo/src/common/types.rs:TripoArtifactBytes 去掉 derive(Debug),改为手写实现,只输出 url / content_type / content_length / 字节数,几十 MB 的 bytes 不会再被一次 {:?} 刷进日志 - server-rs/crates/platform-tripo/src/common/types.rs:补用例锁住 Debug 只带字节数、不带字节内容View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.