Skip to content

feat(workspace): add creation workspace - #223

Merged
minorcell merged 16 commits into
1024XEngineer:mainfrom
huyanxius:feat/216-workspace-context-selector
Aug 12, 2026
Merged

feat(workspace): add creation workspace#223
minorcell merged 16 commits into
1024XEngineer:mainfrom
huyanxius:feat/216-workspace-context-selector

Conversation

@huyanxius

@huyanxius huyanxius commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

新增独立的创作工作台,用四个入口连接 Quick Start、Workflow Editor、资产库与 Playtest,并从真实项目、工作流和角色资产中恢复创作上下文。

Why

原有根页面是临时入口界面,无法承载项目、工作流和可试玩造型的真实上下文,也与正在独立开发的宣传页职责重叠。工作台需要成为登录后的稳定创作入口,同时把 / 留给宣传页。

Changes

  • 新增固定视口工作台与四个创作入口,使用克制的灰度到主题色交互。
  • 接入真实 Project、WorkflowRun、Character 与 Outfit 数据,覆盖加载、空态、失败重试和分页。
  • 新增四张语义化命名的彩色像素素材,并移除旧的临时首页界面。
  • 将工作台注册到受保护的 /workspace,复用 Playtest 的真实帧可播放判断。

Implementation

  • 工作台页面仅负责入口选择与上下文定位,具体创作仍由现有业务页面承接。
  • /workspace 位于 ProtectedRoute 内;公开根路由由独立的 Landing PR 接管。
  • 四张素材保存在 frontend/src/assets/workspace/,生产代码中不包含演示或 mock 数据。

Verification

  • npm test -- src/pages/workspace/index.test.tsx src/pages/workspace/visuals.test.tsx src/app/app.test.tsx src/app/layout/app-header.test.tsx src/entities/character/outfit-playback.test.ts src/pages/playtest/entry.test.tsx:6 个测试文件、49 项测试通过。
  • git diff --check upstream/main...HEAD:通过。
  • 本地全量前端门禁未运行;本次按局部 UI 与路由影响面执行定向验证,完整门禁由 PR CI 执行。

Screenshots

Desktop

Workspace desktop

Added Assets

Quick Start Workflow
Quick Start pixel artwork Workflow pixel artwork
Asset Library Playtest
Asset Library pixel artwork Playtest pixel artwork

Scope

  • 本 PR 不包含宣传页实现;feat/main-landing-page 合入后,本分支需要更新到最新 main 再进入合并。
  • 合并顺序为 Landing PR 在前、Workspace PR 在后;两个 PR 均直接指向 main

Related Issues

Closes #216

@vercel

vercel Bot commented Aug 11, 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 12, 2026 7:15am

@codecov

codecov Bot commented Aug 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.64162% with 11 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
frontend/src/pages/workspace/index.tsx 93.41% 1 Missing and 10 partials ⚠️

📢 Thoughts on this report? Let us know!

@huyanxius

Copy link
Copy Markdown
Collaborator Author

@fennoai 快起来加班了 /review

@fennoai

fennoai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Complete

已提交 1 个非阻塞 PR review,共 4 条行内问题:

  • 2 条 P1:当前基线缺少 / 根路由;移动端双栏布局会使核心入口不可用。
  • 2 条 P2:“最近项目”的排序与后端实际顺序不符;四张入口图冷启动合计约 3.1MB。
  • 验证通过:定向测试 6 个文件 / 49 项、typechecklint、production build、git diff --check
  • 审查锁定提交为 2581b40;提交 review 时 PR 已前进到 f30f6c0,后续更新后建议重新触发审查。

View job run

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

发现 4 个需要处理的问题,已放在对应 diff 行内。定向测试(49 项)、typecheck、lint、production build 均通过;安全审查未发现新增风险。

Comment thread frontend/src/app/app.tsx
Comment thread frontend/src/pages/workspace/index.tsx Outdated
Comment thread frontend/src/pages/workspace/index.tsx Outdated
Comment thread frontend/src/pages/workspace/visuals.tsx
@huyanxius

Copy link
Copy Markdown
Collaborator Author

发现 workspace 错误地将原有的 homepage 的 workfloweditor 两个入口简化为一个入口,这个问题将在下次 commit 修复

@huyanxius

Copy link
Copy Markdown
Collaborator Author

发现 workspace 错误地将原有的 homepage 的 workfloweditor 两个入口简化为一个入口,这个问题将在下次 commit 修复

另发现 workfloweditor 不会自动创建 workflowrun,拿不到 runID 导致无法 跳转到画布界面,本次只做逻辑同步,不做修复,这个 bug 会在下一个 PR 修复

@xyh202131
xyh202131 marked this pull request as ready for review August 11, 2026 23:26

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

本轮基于固定范围 ff8726d...f30f6c0 重新审查,未发现需要新增的高置信问题。当前 head 相比上次审查仅包含格式化调整;此前 4 条行内 review thread 仍处于未解决状态,因此不重复提交相同反馈。

View job run

@huyanxius

Copy link
Copy Markdown
Collaborator Author

@fennoai 再次 review

@fennoai

fennoai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Re-review Complete

已提交 1 个新的行内问题:

  • P1:max-md:hidden 隐藏了全部上下文选择器,窄屏下 Playtest 与“继续已有工作流”点击后只改变选中状态,无法继续核心流程。
  • 已确认:“按更新时间”错误文案已修正;此前根路由依赖已按合并顺序处理。
  • 图片体积线程仍未解决,但作者已明确接受并安排后续优化,本轮未重复反馈。
  • 验证通过:定向测试 6 个文件 / 51 项、typechecklint、production build、git diff --check

View job run

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

本轮基于固定范围 ff8726d...6bc09d3 复审,确认项目排序文案已修正,但窄屏修复引入了 1 个新的核心流程问题,已放在 diff 行内。定向测试(51 项)、typecheck、lint、production build 与 git diff --check 均通过;未发现新增安全问题。此前图片体积线程仍未解决,但作者已明确作为后续优化,本轮不重复提交。

Comment thread frontend/src/pages/workspace/index.tsx
@minorcell

Copy link
Copy Markdown
Member

@huyanxius

  1. 有代码冲突,记得解决;
  2. “playtest” 更像是你们产品系统内部的概念,不应该这么直接的暴露给用户,可以换一个表达。

@huyanxius

Copy link
Copy Markdown
Collaborator Author

@huyanxius

  1. 有代码冲突,记得解决;
  2. “playtest” 更像是你们产品系统内部的概念,不应该这么直接的暴露给用户,可以换一个表达。

ok,代码冲突已解决
关于 PlayTest 我们直接写是因为没有找到一个看起来比较体面的中文名😂 我们再讨论讨论然后换成中文

@nighca

nighca commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

关于 PlayTest 我们直接写是因为没有找到一个看起来比较体面的中文名😂 我们再讨论讨论然后换成中文

我记得之前产品设计阶段提到这个功能的时候是叫它“审查台”之类的名字的?

@huyanxius

Copy link
Copy Markdown
Collaborator Author

“审查台”

对的,但是我感觉“审查台”只能体现“审查”,体现不出“试玩”这一层意思来,没有体现我们的独特性

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

没有问题

@nighca
nighca removed their request for review August 12, 2026 06:59
The workspace needs a distinct visual cue for each creation path.

Add the four restrained pixel-art assets as one reviewed set.

Workspace entrances can now reveal their individual theme colors.
Creators need one fixed entry point for their existing production context.

Add the four-path workspace with real project, workflow, character, and outfit data.

Users can resume work without mock content or a scrolling dashboard.
The workspace and Playtest entry need the same definition of a playable outfit.

Extract frame counting into the character entity and reuse it from Playtest.

Both entry points now derive playback availability from real frames.
The new workspace coordinates several real navigation and context paths.

Cover the fixed layout, entrance artwork, data states, retries, and selections.

Regressions in the workspace routing surface are now caught locally.
Playback availability must depend on actual frames rather than action metadata.

Cover outfits with and without generated animation frames.

The shared entity rule is protected independently of either page.
The old placeholder home interface is no longer part of the product route.

Remove its page, decorative bird, and choice card implementation.

The upcoming landing page can own the root route without dead UI code.
The deleted placeholder home interface no longer has behavior to preserve.

Remove its page and choice-card test files with the retired surface.

The test suite now reflects the active landing and workspace boundaries.
The landing page must retain the root route while creators enter a separate workspace.

Register WorkspacePage at the protected /workspace path.

Authenticated navigation now has a stable workspace destination.
The workspace route must remain separate from the public landing page.

Cover authenticated access to /workspace and retain the auth boundary assertions.

Future route changes cannot silently put the workspace back at the root.
Frontend CI requires the workspace page to match the repository formatter.

Apply the formatter to the two multiline conditional class expressions.

The page now passes the targeted formatting check without behavior changes.
The workflow card lost its separate create and resume paths during the workspace redesign.

Split the existing card copy into two accessible actions while preserving the artwork and restrained motion.

Users can create a project through the original route or resume a real workflow from the workspace context.
The workspace coverage still targeted the removed single workflow selector.

Assert the project creation route and drive resume scenarios through the renamed action.

The tests now protect both entrance paths and the existing real-run selection behavior.
The desktop grid compressed the primary workspace entrances below usable widths on phones.

Collapse the layout to one column and hide the contextual sidebar below the medium breakpoint.

The fixed workspace canvas now keeps all four entrances available on narrow screens.
The workspace suite did not protect the responsive boundary for its primary navigation.

Assert the single-column layout and hidden contextual sidebar used below the medium breakpoint.

Future layout changes now preserve usable narrow-screen entrances.
The workspace described projects as update-sorted while the API currently returns identifier order.

Replace the unsupported ordering claim with a neutral project-list label.

The interface now matches the data contract without expanding backend scope.
The workspace suite allowed copy to promise an ordering that the project API does not provide.

Assert that the update-sorting claim is absent and the neutral project-list label is rendered.

Future copy changes now remain aligned with the current API contract.
@minorcell
minorcell merged commit 15ef635 into 1024XEngineer:main Aug 12, 2026
7 checks passed
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.

feat: 实现工作台四入口与真实上下文选择器(Refs #210)

6 participants