Skip to content

feat(quick-start): continue creation in one conversation - #312

Open
huyanxius wants to merge 5 commits into
1024XEngineer:mainfrom
huyanxius:feat/305-quick-start-continuity
Open

feat(quick-start): continue creation in one conversation#312
huyanxius wants to merge 5 commits into
1024XEngineer:mainfrom
huyanxius:feat/305-quick-start-continuity

Conversation

@huyanxius

Copy link
Copy Markdown
Collaborator

本 PR 将 Quick Start 从分栏任务面板改为持续展开的单页创作对话,并保留现有真实生成、确认、导出、恢复和资产保存能力;完成后默认留在当前页面,由用户选择下一站。

Why

Quick Start 入口已经采用轻量、开放的创作画布,但提交后会切换成高密度工作流控制台,破坏创作上下文与视觉连续性。用户还需要反复寻找系统操作,最终完成后又被自动带离当前页面。

Changes

  • /quick-start/:runId 重排为单列对话流,角色候选、动作首帧、完整动作和错误恢复按时间顺序展开。
  • 保留底部输入器、原快捷提示、母版上传/替换/移除、重新生成、两次确认、中断、新建与恢复入口。
  • 为生成字幕、卡片和像素点阵画布增加连续动效,并支持 prefers-reduced-motion
  • 完整动作仍沿用原 approveReview() 自动保存;保存后不自动跳转,改为显式进入资产工作台或 Play Test。
  • 复用主线 ExportButtongetExportModel(),在同一对话界面保留统一导出能力。

Implementation

  • 动效组件与 CSS 全部收敛在 pages/quick-start,未修改共享 UI、设计令牌或其他页面。
  • service.ts、领域实体、后端接口、鉴权与登录逻辑均未改动;页面继续调用现有 QuickStartSession 能力。
  • 生产代码未加入 Quick Start Mock 路由或 Mock 数据;测试通过已有 service 注入口覆盖各阶段状态。

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

Quick Start desktop

Mobile — After

Quick Start mobile

Scope

  • 本 PR 不包含:模型能力、生成策略、后端 Agent、Workflow Editor、领域结构、真实接口或宣传页改动。
  • Issue feat(quick-start): 统一后续创作流程的视觉语言与对话体验 #305 中“候选点击即推进”和“最终人工确认入库”与本轮最新的原功能保留要求冲突,本 PR 不将其标记为关闭,后续需单独更新验收口径。

Related Issues

Refs #305

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.
@vercel

vercel Bot commented Aug 14, 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 14, 2026 4:36am

@codecov

codecov Bot commented Aug 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.36697% with 21 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
frontend/src/pages/quick-start/index.tsx 89.74% 4 Missing and 12 partials ⚠️
...ntend/src/pages/quick-start/kinetic-copy-cycle.tsx 91.93% 0 Missing and 5 partials ⚠️

📢 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.

@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.

本次重点核对了 Quick Start 单页对话中的状态推进、恢复、自动保存、导出/显式跳转以及动效降级。现有选择、首帧确认、保存和导出测试均通过,但持续输入器在关键状态仍无法执行其提示的操作,且入口交接的固定延迟没有随 reduced-motion 一起降级。

验证:98 项相关测试通过,npm run typecheckoxlintoxfmt --check 通过。

Comment on lines +904 to +906
const composerCanSubmit =
(isTemplateSelecting && Boolean(selectedCandidate)) ||
(isFirstFrameSelecting && Boolean(selectedFirstFrame))

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.

[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)
})

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] reduced-motion 下跳过固定交接等待

入口退场样式通过 motion-reduce:transition-none 立即隐藏内容,但这里仍无条件等待 460ms 才导航。开启“减少动态效果”的用户提交后会看到一段空白画布,而不是即时进入生成页,也意味着 JS 交接没有遵守本 PR 声明的 reduced-motion 支持。请在媒体查询匹配时跳过该等待,或改为只在实际过渡存在时等待 transitionend

@huyanxius
huyanxius requested review from minorcell and nighca August 14, 2026 13:42
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