Skip to content

feat(quick-start): 角色确认后给出建 3D 资产的进阶入口 - #773

Open
johnnyzhang-eng wants to merge 1 commit into
feat/518-render3d-entryfrom
feat/quickstart-3d
Open

feat(quick-start): 角色确认后给出建 3D 资产的进阶入口#773
johnnyzhang-eng wants to merge 1 commit into
feat/518-render3d-entryfrom
feat/quickstart-3d

Conversation

@johnnyzhang-eng

Copy link
Copy Markdown
Contributor

Summary

Quick Start 里角色方案确认之后,给一个默认折叠的进阶入口,展开后复用 #518Render3DAssetPanel

本 PR 基于 #771feat/518-render3d-entry),diff 只含 quick-start 这一处改动。 #771 合入后本 PR 的 base 会自动落到 main。

为什么默认折叠

Quick Start 的主线是「一句话跑完」。建 3D 是按次计费(30 积分)、带人工确认闸、每账号还有名额上限的重动作——摊开在主线上会被读成必经的一步,而它是可选路线。

落法

组件抽成 quick-start/render3d-option.tsx,只依赖 { characterId, outfitId } 两个 id,不依赖整个 QuickStartSession。这样测试不必造一份完整会话,index.tsx(3895 行)也不再多一个组件。

建 / 审 / 弃的行为与文案全部来自 #518 的面板,本 PR 一个字都没改。

不包含

  • 不改 Quick Start 的 Agent 协议,不让 Agent 主动提议建 3D。按次计费的触发点只认用户显式点击。
  • 不做「建完自动把后续动作切到三渲二」。路线选择仍由造型有没有 model_3d_url 决定。

Test plan

  • format:check / lint / typecheck / test:coverage / build1216 passed, 82 files
  • 新增 3 条用例:默认折叠、展开后出现面板、没有角色时不渲染
  • 折叠与展开两态在真浏览器里看过

命令都跑在最后一次编辑之后。

备注

这块最近改动很密(#763 等)。落地形态与视觉交给该模块的主要维护者按需调整,本 PR 只负责把入口接通。

Closes #772

复用 workflow editor 那块面板,默认折叠。Quick Start 主线是一句话跑完,
建 3D 是按次计费、带人工确认闸、有名额上限的重动作,摊在主线上会被读成必经步骤。
@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
windup Ready Ready Preview Aug 26, 2026 9:53am

@github-actions

Copy link
Copy Markdown

⚠️ @johnnyzhang-eng,此 PR 尚未关联 issue。请在 PR 描述中使用 Closes #123 等关闭关键字;更新描述后,此提醒将自动标记为已解决。

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Impacted file tree graph

@@                     Coverage Diff                     @@
##           feat/518-render3d-entry     #773      +/-   ##
===========================================================
+ Coverage                    87.77%   91.97%   +4.20%     
===========================================================
  Files                          281      178     -103     
  Lines                        20535    11295    -9240     
  Branches                      3061        0    -3061     
===========================================================
- Hits                         18024    10389    -7635     
+ Misses                        1673      906     -767     
+ Partials                       838        0     -838     
Flag Coverage Δ
backend 91.97% <ø> (ø)
frontend ?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 103 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Quick Start integration is otherwise scoped cleanly and reuses the existing asset panel. The targeted test command could not run in this workspace because the local Vitest binary is not executable (Permission denied).

render3d={render3DApis}
characterId={info.characterId}
outfitId={info.outfitId}
precheck={null}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Preserve the master precheck before enabling 3D builds

Render3DAssetPanel treats precheck={null} as no gate, so this Quick Start path never calls precheckMaster for the confirmed template and enables the paid build flow immediately. The backend still rejects an unacceptable master, but only after the user opens the confirmation flow and submits the paid action, which removes the existing #518 precheck/readout behavior and gives a worse, late error instead of explaining the unusable master before submission. Pass the selected template URL through a precheck hook/report (or otherwise preserve the panel's precheck contract) before allowing buildOutfitAsset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant