Skip to content

refactor(playtest): 将一级入口收敛为最近预览启动页 #328

Description

@huyanxius

决策背景

“预览台”代表用户核验角色动作和操控效果的一级产品能力,因此顶栏入口与 /playtest 路由需要保留。

但当前 /playtest 为了让用户选择角色造型,重新实现了一套跨项目资产浏览界面:

  • 再次读取并展示项目、角色和造型。
  • 与项目资产库承担了大量相同的浏览和选择职责。
  • 页面需要维护独立的项目分区、造型卡、分页、加载态、空态和错误态。
  • 为组装全局画廊产生了跨项目数据读取和请求扇出。
  • 后续为了修复请求数量,又需要增加当前业务并不需要的跨项目角色接口。

这说明问题不只是请求实现方式,而是页面职责发生了重复:资产库已经负责“找到一个角色造型”,预览台不应再复制一套资产目录。

决策

保留“预览台”一级入口,但将 /playtest 从跨项目资产画廊重构为轻量的最近预览启动页。

项目资产库继续作为唯一的完整资产浏览和选择入口;预览台首页只负责:

  1. 继续最近打开过的角色造型。
  2. 前往项目资产库选择新的角色造型。
  3. 进入现有参数化预览工作台。

页面职责

页面 职责
/projects 与项目资产库 浏览项目、角色和造型,作为唯一完整资产选择入口
/playtest 展示少量最近预览,帮助用户快速继续或选择新资产
/playtest/:characterId/:outfitId 读取最新资产并实际核验动作、移动和帧播放

用户流程

顶栏预览台
  → 继续最近预览
  → 实际预览工作台

或者:

顶栏预览台
  → 从项目资产中选择
  → 项目资产库
  → 角色详情选择造型
  → 实际预览工作台

Scope

预览台一级入口

  • 保留顶栏“预览台”导航及 /playtest 路由。
  • /playtest 不再读取或展示完整项目、角色和造型目录。
  • 页面不再包含跨项目画廊、项目分区或项目筛选。
  • 页面提供明确的“从项目资产中选择”入口。

最近预览

  • 最多展示最近 4 条成功打开过的角色造型。
  • 最近记录按当前登录用户隔离,并按最近打开时间排序。
  • 同一角色造型重复打开时只更新时间并移动到最前,不产生重复记录。
  • 只有实际预览工作台成功读取角色和造型后,才写入最近记录。
  • 最近记录只保存定位和展示所需的最小字段,不缓存完整 Character 数据。
  • 点击最近记录继续进入现有 /playtest/:characterId/:outfitId
  • 实际预览页仍读取并验证最新资产,不直接信任本地记录。
  • 记录指向已删除、不可访问或不可预览资产时,给出明确反馈并移除失效记录。
  • 退出登录时清理或隔离最近记录,避免账号之间互相可见。

页面状态

  • 有记录时突出“继续上次预览”,其余记录以紧凑列表或卡片展示。
  • 无记录时说明需要先从项目资产中选择角色造型。
  • 不把最近预览包装成完整历史记录;当前只提供本地快捷入口,不承诺跨设备同步。
  • 页面继续使用登录产品的共享设计令牌和组件语言。

Architecture Boundary

  • 不新增跨项目角色列表或 Playtest catalog 后端接口。
  • /playtest 首次挂载不调用项目列表或角色列表 API。
  • 项目资产读取继续由现有项目资产库负责。
  • 实际预览工作台继续使用真实 Character 和 Project 数据。
  • 最近记录属于轻量客户端快捷状态,不成为新的业务资产或后端数据模型。

Out of Scope

  • 不实现跨设备同步或完整预览历史。
  • 不修改项目资产库的信息结构和读取方式。
  • 不修改实际预览工作台的布局、动作切换、移动、帧播放和键盘输入。
  • 不实现四向或八向能力。
  • 不调整全局限流阈值。
  • 不在本 Issue 中引入全局 TanStack Query 改造。
  • 不涉及公开宣传页。

Acceptance Criteria

  • 顶栏继续保留“预览台”一级入口。
  • /playtest 首次加载不调用项目列表或角色列表 API。
  • 页面不再展示完整跨项目资产画廊或项目分区。
  • 页面最多展示最近 4 条成功预览记录。
  • 同一角色造型不会重复出现,重新打开后移动到最前。
  • 点击最近记录进入现有参数化预览路由,并读取最新资产。
  • 用户可以从 /playtest 前往项目资产库选择新的角色造型。
  • 无记录、失效记录和跨账号场景都有明确处理。
  • 进入 /playtest 不再产生逐项目角色请求扇出。
  • 桌面端和 390px 窄屏完成真实浏览器验证。
  • 相关定向测试、类型检查和构建通过。

决策变更与相关工作

本 Issue 记录一次明确的产品决策转变:

Supersedes #304
Supersedes #314
Refs #313
Refs #315

Metadata

Metadata

Assignees

No one assigned

    Labels

    MiniSpec小改动的精简规格enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions