feat(quick-start): continue creation in one conversation - #312
Open
huyanxius wants to merge 5 commits into
Open
Conversation
Quick Start needs reusable subtitle transitions across entry and generation states. Add a page-local copy cycle with ordered exit and entrance motion. Respect reduced-motion preferences while preventing overlapping text.
The creation entry and run view currently feel like separate products. Reshape the run as one flowing transcript with a persistent composer and result-focused states. Reuse existing session calls while making completed destinations explicit.
The redesigned flow must preserve every existing Quick Start capability. Cover entry motion, generation states, selections, recovery, saving, and explicit destinations. Keep runtime Mock routes excluded while protecting the real service boundary.
The visible redesign needs reviewable desktop and mobile evidence. Capture the completed conversation with export and explicit destination controls. Keep the screenshots alongside the repository existing visual evidence.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Frontend CI rejects private color values in authenticated product pages. Replace the two inline RGB shadows with the existing semantic panel shadow. Keep the visual depth while preserving the shared color-system boundary.
Comment on lines
+904
to
+906
| const composerCanSubmit = | ||
| (isTemplateSelecting && Boolean(selectedCandidate)) || | ||
| (isFirstFrameSelecting && Boolean(selectedFirstFrame)) |
Contributor
There was a problem hiding this comment.
[P1] 让持续输入器在选择阶段之外真正可提交
这里把发送条件限制为角色候选或首帧选择,continueConversation 也只处理这两个分支;因此生成中、保存完成和失败恢复时,输入框虽然显示“完成后可以继续修改”等提示,发送按钮始终禁用,用户无法补充修改或原地重试。这直接破坏了本 PR/关联 Issue 所描述的持续对话与失败恢复路径;需要为这些状态接入实际的继续/重试命令,或在暂不支持时移除可编辑输入和误导性提示。
Comment on lines
+288
to
+293
| const handoffPromise = new Promise<void>((resolve) => { | ||
| handoffTimer.current = setTimeout(() => { | ||
| handoffTimer.current = null | ||
| resolve() | ||
| }, ENTRY_HANDOFF_MS) | ||
| }) |
Contributor
There was a problem hiding this comment.
[P2] reduced-motion 下跳过固定交接等待
入口退场样式通过 motion-reduce:transition-none 立即隐藏内容,但这里仍无条件等待 460ms 才导航。开启“减少动态效果”的用户提交后会看到一段空白画布,而不是即时进入生成页,也意味着 JS 交接没有遵守本 PR 声明的 reduced-motion 支持。请在媒体查询匹配时跳过该等待,或改为只在实际过渡存在时等待 transitionend。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
本 PR 将 Quick Start 从分栏任务面板改为持续展开的单页创作对话,并保留现有真实生成、确认、导出、恢复和资产保存能力;完成后默认留在当前页面,由用户选择下一站。
Why
Quick Start 入口已经采用轻量、开放的创作画布,但提交后会切换成高密度工作流控制台,破坏创作上下文与视觉连续性。用户还需要反复寻找系统操作,最终完成后又被自动带离当前页面。
Changes
/quick-start/:runId重排为单列对话流,角色候选、动作首帧、完整动作和错误恢复按时间顺序展开。prefers-reduced-motion。approveReview()自动保存;保存后不自动跳转,改为显式进入资产工作台或 Play Test。ExportButton与getExportModel(),在同一对话界面保留统一导出能力。Implementation
pages/quick-start,未修改共享 UI、设计令牌或其他页面。service.ts、领域实体、后端接口、鉴权与登录逻辑均未改动;页面继续调用现有QuickStartSession能力。Verification
npx oxfmt --check src/pages/quick-start/index.tsx src/pages/quick-start/index.test.tsx src/pages/quick-start/kinetic-copy-cycle.tsx src/pages/quick-start/kinetic-copy-cycle.test.tsx src/pages/quick-start/kinetic-copy-cycle.css src/pages/quick-start/quick-start-motion.css src/app/app.test.tsx:7 个文件格式通过。npx oxlint src/pages/quick-start/index.tsx src/pages/quick-start/index.test.tsx src/pages/quick-start/kinetic-copy-cycle.tsx src/pages/quick-start/kinetic-copy-cycle.test.tsx src/app/app.test.tsx:通过。npm test -- src/pages/quick-start/index.test.tsx src/pages/quick-start/service.test.ts src/pages/quick-start/kinetic-copy-cycle.test.tsx src/app/app.test.tsx src/features/export-package/export-panel.test.tsx src/features/export-package/progressive-export.test.ts:6 个文件、98 项测试通过。npm run typecheck:通过。npm run build:通过。git diff --check upstream/main...HEAD:通过。Screenshots
Desktop — After
Mobile — After
Scope
Related Issues
Refs #305