## 问题 #70 建立了 AppShell 与占位路由,但已拆分的前端功能尚未在组合根统一装配真实 API、WorkflowRun Service 与 WorkflowController。页面若各自创建依赖,会产生多份运行状态;若把未合入模块复制进装配 PR,又会破坏最小提交边界。 ## 目标 在依赖模块进入 main 后,由应用组合根一次性创建真实依赖并注入页面。AppShell 只负责组合、路由与导航,不承载业务规则。 ## 范围 包含: - 在组合根创建一次 CharacterApis、GenerationApis、WorkflowRunStore、WorkflowRunService 与 WorkflowController - 将同一 WorkflowController / Store 实例注入 Quick Start 与 History - 收口 Home、Projects、History、Asset Library、Quick Start、Playtest 与 404 路由 - 保留项目上下文、直接刷新与返回路径 - 未配置真实依赖时显示明确不可用原因,不回退到 Mock 成功 - 路由、依赖单例和导航集成测试 不包含: - Workflow Editor(已取消) - Project 或 Asset Library 模块内部实现(由对应负责人提供,本项只消费公开入口) - 修改页面内部业务流程 - 新增 WorkflowRun、Generation、Character 或 Project 规则 - 后端、Mock 业务数据和构建产物 ## 目标路由 - `/` - `/quick-start` - `/quick-start/:runId` - `/projects` - `/projects/new` - `/projects/:projectId` - `/projects/:projectId/history` - `/projects/:projectId/assets` - `/playtest` - `/playtest/:characterId/:outfitId?actionId=...` - `*` ## 验收标准 - 所有声明路由均可直接访问和刷新,不渲染占位成功页 - Quick Start 与 History 使用同一个 WorkflowController / Store 实例 - 外部 Project 页面进入 History 与 Asset Library,正式动作进入 Playtest - 未知路径进入 404,导航不丢失 projectId,也不存在循环跳转 - 未配置依赖时相关入口被禁用,并显示具体原因 - PR 只包含 `main.tsx`、`app/**` 与必要测试,不复制任何业务模块 - CI 五步通过:`format:check` / `lint` / `typecheck` / `test` / `build` ## 依赖 本 Issue 最后实施。必须等待 WorkflowRun、WorkflowController、Quick Start、History、Playtest、Generation,以及外部负责人提交的完整 Projects / Asset Library 公开入口进入 main。当前不得为了提前开 PR 而夹带这些依赖的源码。 ## 参考 - WorkflowRun:PR #86 - Quick Start:PR #95 - Playtest:PR #96 - History:PR #105 - WorkflowController:PR #107 - Generation:PR #110
Activity
[-]前端 App Shell:统一装配路由、导航与真实依赖[/-][+]feat: 统一前端路由、导航与真实依赖装配(Refs #70)[/+]