创作数据流程收束
This commit is contained in:
36
docs/technical/CREATION_PAGE_MOBILE_UI_FIX_2026-04-21.md
Normal file
36
docs/technical/CREATION_PAGE_MOBILE_UI_FIX_2026-04-21.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# 创作页移动端 UI 修复记录
|
||||
|
||||
日期:`2026-04-21`
|
||||
|
||||
## 问题定位
|
||||
|
||||
本轮修复只处理创作页表现层,不新增创作流程。
|
||||
|
||||
当前移动端问题主要来自三处:
|
||||
|
||||
1. 平台页在 `platformTab === 'create'` 时直接渲染 `CustomWorldCreationHub`,绕过了 `PlatformHomeView` 的移动端外壳,导致底部 Tab 栏没有挂载。
|
||||
2. 创作中心内部仍混用 `pixel-*` 九宫格样式、`bg-black/*`、`text-white`、`border-white/*` 等暗色 Tailwind 类,亮色主题下会出现深色块和低对比文字。
|
||||
3. 创作中心根节点自带 `h-full overflow-y-auto`,放回平台页后容易与平台页主滚动区抢滚动权,手机上会显得布局混乱。
|
||||
|
||||
## 落地约束
|
||||
|
||||
1. 创作页仍复用现有平台首页,不新增页面和新系统。
|
||||
2. 移动端底部 Tab 必须始终由 `PlatformHomeView` 统一渲染,创作页只作为 `create` Tab 的内容。
|
||||
3. 创作中心内部不再使用深色硬编码作为默认底色,普通卡片、筛选 Tab、空状态和按钮统一使用 `platform-*` token。
|
||||
4. 创作中心不再自建整页滚动,只把内容交给平台页主滚动区,避免嵌套滚动。
|
||||
5. UI 中不增加规则说明类文案,只保留必要入口、状态和作品信息。
|
||||
|
||||
## 编码方案
|
||||
|
||||
1. 在 `PlatformHomeView` 增加可选的 `createTabContent`,让当前 Agent 创作中心接回平台页统一外壳。
|
||||
2. `PreGameSelectionFlow` 不再在 `platformTab === 'create'` 时绕过 `PlatformHomeView`,而是把 `CustomWorldCreationHub` 作为创作 Tab 内容传入。
|
||||
3. `CustomWorldCreationHub` 改为无内部整页滚动的内容容器,标题、返回、计数、错误、加载骨架都使用平台 token。
|
||||
4. `CustomWorldCreationStartCard` 与 `CustomWorldWorkCard` 从像素暗色面板切换为平台卡片样式,保留游戏化主视觉但跟随亮暗主题。
|
||||
5. `CustomWorldWorkTabs` 改用 `platform-tab`,并保持横向滚动与清晰选中态。
|
||||
|
||||
## 验收要点
|
||||
|
||||
1. 手机宽度下进入“创作”后,底部“首页 / 创作 / 存档 / 我的”Tab 始终可见。
|
||||
2. 亮色主题下创作页默认卡片不出现大面积黑色底板。
|
||||
3. 创作页只有平台页主内容区滚动,底部 Tab 不随作品列表滚走。
|
||||
4. 桌面端仍可通过左侧平台导航进入创作页。
|
||||
@@ -6,12 +6,13 @@
|
||||
|
||||
当前这条 Agent 创作流已经完成阶段一到阶段三的主要收口。
|
||||
|
||||
阶段四中的“文档清理”已经开始做,但还没有形成独立、完整的新主链。
|
||||
阶段四中的“文档清理”已经开始做,但还没有形成独立、完整的新主链审计闭环。
|
||||
|
||||
因此这轮可以执行的清理只有一类:
|
||||
因此这轮可以执行的清理现在有两类:
|
||||
|
||||
1. 删除已经不再从当前主入口可达的旧 `custom-world/sessions` 世界生成链
|
||||
2. 保留仍在服务 `Agent session` 主链或已保存作品兼容编辑体验的底层能力
|
||||
2. 删除已经完全脱离 `CustomWorldAgentWorkspace` 主链、只剩孤立互相引用与自测覆盖的 `custom-world-agent` 旧面板
|
||||
3. 保留仍在服务 `Agent session` 主链或已保存作品兼容编辑体验的底层能力
|
||||
|
||||
这轮不做:
|
||||
|
||||
@@ -60,7 +61,8 @@
|
||||
原因:
|
||||
|
||||
1. 文档清理已经开始,但还没有完整收束到单一结论文档
|
||||
2. 旧 `custom-world/sessions` 生成链虽然已经不在主入口上,但还未清干净
|
||||
2. 旧 `custom-world/sessions` 生成链已经完成物理清理,但与之相关的审计/PRD/知识图谱文档仍需继续统一口径
|
||||
3. `custom-world-agent` 孤岛面板已经完成第二轮物理清理,但阶段四文档总收口仍未完全覆盖所有历史 PRD 口径
|
||||
|
||||
---
|
||||
|
||||
@@ -72,12 +74,29 @@
|
||||
2. `server-node/src/routes/runtimeRoutes.ts` 里的旧 `custom-world/sessions` 路由
|
||||
3. `server-node/src/services/customWorldGenerationService.ts`
|
||||
4. 与这条旧链对应的测试
|
||||
5. `server-node/src/services/customWorldSessionStore.ts`
|
||||
6. `src/components/custom-world-agent/CustomWorldAgentLockBar.tsx`
|
||||
7. `src/components/custom-world-agent/CustomWorldAgentQuickActions.tsx`
|
||||
8. `src/components/custom-world-agent/CustomWorldAgentSummaryPanel.tsx`
|
||||
9. `src/components/custom-world-agent/CustomWorldAgentIntentSummaryPanel.tsx`
|
||||
10. `src/components/custom-world-agent/CustomWorldAgentClarificationPanel.tsx`
|
||||
11. `src/components/custom-world-agent/CustomWorldAgentDraftDetailPanel.tsx`
|
||||
12. `src/components/custom-world-agent/CustomWorldDraftCardDetailModal.tsx`
|
||||
13. `src/components/custom-world-agent/CustomWorldDraftEditPanel.tsx`
|
||||
14. `src/components/custom-world-agent/CustomWorldGenerateEntityModal.tsx`
|
||||
15. 仅为上述孤岛面板存在的对应测试文件
|
||||
|
||||
不允许删除:
|
||||
|
||||
1. `server-node/src/services/customWorldSessionStore.ts`
|
||||
2. `server-node/src/repositories/runtimeRepository.ts` 中被 Agent session 复用的 session 持久化能力
|
||||
3. `src/services/aiService.ts` 里仍在使用的 `generateCustomWorldProfile` 及其现代封装
|
||||
1. `server-node/src/repositories/runtimeRepository.ts` 中被 Agent session 复用的 session 持久化能力
|
||||
2. `src/services/aiService.ts` 里仍在使用的 `generateCustomWorldProfile` 及其现代封装
|
||||
3. 已保存作品结果页仍在使用的 legacy 编辑器兼容能力
|
||||
4. `src/components/custom-world-agent/CustomWorldAgentWorkspace.tsx` 及其仍在主链上的 5 个子模块:
|
||||
- `CustomWorldAgentHeader`
|
||||
- `EightAnchorProgressBar`
|
||||
- `CustomWorldAgentOperationBanner`
|
||||
- `CustomWorldAgentThread`
|
||||
- `CustomWorldAgentComposer`
|
||||
|
||||
---
|
||||
|
||||
@@ -87,6 +106,8 @@
|
||||
|
||||
1. `src/services/aiService.ts` 不再暴露旧 `custom-world/sessions` 请求函数
|
||||
2. `server-node/src/routes/runtimeRoutes.ts` 不再挂旧 session 路由
|
||||
3. 仓库里不再有主流程可达的旧世界生成入口
|
||||
4. Agent 主链与已保存作品编辑链仍然可用
|
||||
|
||||
3. `server-node/src/services/customWorldSessionStore.ts` 与 `server-node/src/services/customWorldGenerationService.ts` 已物理删除
|
||||
4. 仓库里不再有主流程可达的旧世界生成入口
|
||||
5. `CustomWorldAgentWorkspace.tsx` 只保留当前正式主链需要的 5 个子模块
|
||||
6. 与旧 Agent 草稿面板相关的孤岛 UI 与自测不再继续占据正式目录注意力
|
||||
7. Agent 主链与已保存作品编辑链仍然可用
|
||||
|
||||
@@ -26,10 +26,6 @@
|
||||
- `GET /api/assets/character-animation/jobs/:taskId`
|
||||
- `POST /api/assets/character-animation/import-video`
|
||||
- `GET /api/assets/character-animation/templates`
|
||||
- `POST /api/assets/qwen-sprite/master`
|
||||
- `POST /api/assets/qwen-sprite/sheet`
|
||||
- `POST /api/assets/qwen-sprite/frame-repair`
|
||||
- `POST /api/assets/qwen-sprite/save`
|
||||
|
||||
---
|
||||
|
||||
@@ -50,7 +46,6 @@
|
||||
- 状态行为覆盖保存
|
||||
- 角色主形象生成、发布与任务查询
|
||||
- 角色动作生成、导入、发布、模板读取与任务查询
|
||||
- Qwen 精灵主图、精灵表、修帧与资产保存
|
||||
|
||||
---
|
||||
|
||||
|
||||
85
docs/technical/EDITOR_ENTRY_CLEANUP_2026-04-21.md
Normal file
85
docs/technical/EDITOR_ENTRY_CLEANUP_2026-04-21.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# 主流程外编辑器入口清理说明(2026-04-21)
|
||||
|
||||
日期:`2026-04-21`
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
记录本轮对“挂在主流程路由外的旧编辑器入口”和“仍把这些入口当现役能力的残留说明”做的收口,避免后续开发再次把历史入口误判成正式能力。
|
||||
|
||||
---
|
||||
|
||||
## 2. 本轮清理结论
|
||||
|
||||
本轮确认后,当前前端正式入口只保留游戏主流程:
|
||||
|
||||
- `src/routing/appRoutes.tsx` 仅保留 `game`
|
||||
|
||||
本轮删除或收口的对象:
|
||||
|
||||
- 独立前端工具路由 `qwen-sprite-tool`
|
||||
- 仅服务该独立入口的前端页面 `src/tools/QwenSpriteSheetTool.tsx`
|
||||
- 仅服务该独立入口的工具模型与持久化封装
|
||||
- 仅服务该独立入口的后端路由 `server-node/src/modules/assets/qwenSpriteRoutes.ts`
|
||||
- 路由测试里把旧编辑器 / 独立工具入口当作现役分支的断言
|
||||
- README、经验文档、类型检查配置中已经失效的旧编辑器文件引用
|
||||
|
||||
---
|
||||
|
||||
## 3. 为什么可以删除
|
||||
|
||||
本轮删除对象满足下面几个条件:
|
||||
|
||||
1. 不在当前玩家主流程中可达
|
||||
2. 没有继续嵌入正式创作主链
|
||||
3. 当前仓库已有主流程内嵌的替代能力
|
||||
4. 保留它们只会继续制造“看起来还能进、实际上已经不走”的假入口
|
||||
|
||||
其中需要特别区分的是:
|
||||
|
||||
- `src/editor/shared/editorApiClient.ts`
|
||||
- `server-node/src/modules/editor/editorRoutes.ts`
|
||||
- `src/components/CustomWorldEntityEditorModal.tsx`
|
||||
- `src/components/CustomWorldNpcVisualEditor.tsx`
|
||||
- `src/components/CustomWorldRoleAssetStudioModal.tsx`
|
||||
|
||||
这些仍然服务当前主流程内嵌编辑能力,因此本轮不删除。
|
||||
|
||||
---
|
||||
|
||||
## 4. 当前保留的编辑能力边界
|
||||
|
||||
当前保留的是“嵌入主流程的编辑能力”,不是“独立编辑器站点”:
|
||||
|
||||
- 自定义世界实体编辑
|
||||
- 自定义世界角色形象编辑
|
||||
- 主流程内的角色资产工坊模态
|
||||
- 与这些能力配套的 `/api/editor/*` 与 `/api/assets/character-*` 接口
|
||||
|
||||
后续如果还要新增编辑能力,应优先:
|
||||
|
||||
1. 先确认是否真的需要独立入口
|
||||
2. 默认优先接回主流程模态或正式创作链
|
||||
3. 如果只是内部工具,不要长期挂在正式前端路由里
|
||||
|
||||
---
|
||||
|
||||
## 5. 本轮同步更新
|
||||
|
||||
本轮已同步更新:
|
||||
|
||||
- `README.md`
|
||||
- `docs/experience/CODEX_PAST_WORK_EXPERIENCE_SUMMARY.md`
|
||||
- `src/routing/appRoutes.tsx`
|
||||
- `src/routing/appRoutes.test.ts`
|
||||
- `server-node/src/app.ts`
|
||||
- `tsconfig.typecheck-guardrails.json`
|
||||
|
||||
---
|
||||
|
||||
## 6. 后续建议
|
||||
|
||||
后续继续清理时,优先沿着这条规则推进:
|
||||
|
||||
1. 先识别是否还在主流程可达
|
||||
2. 再判断是否仍有正式嵌入点
|
||||
3. 若只剩文档、测试、兼容判断或独立路由壳,直接成批收口
|
||||
@@ -150,10 +150,11 @@ JWT 现状:
|
||||
- `POST /api/custom-world/scene-image`
|
||||
- `POST /api/runtime/story/initial`
|
||||
- `POST /api/runtime/story/continue`
|
||||
- `POST /api/runtime/custom-world/sessions`
|
||||
- `GET /api/runtime/custom-world/sessions/:sessionId`
|
||||
- `POST /api/runtime/custom-world/sessions/:sessionId/answers`
|
||||
- `GET /api/runtime/custom-world/sessions/:sessionId/generate/stream`
|
||||
- `POST /api/runtime/custom-world/agent/sessions`
|
||||
- `GET /api/runtime/custom-world/agent/sessions/:sessionId`
|
||||
- `POST /api/runtime/custom-world/agent/sessions/:sessionId/messages`
|
||||
- `POST /api/runtime/custom-world/agent/sessions/:sessionId/actions`
|
||||
- `GET /api/runtime/custom-world/works`
|
||||
- `POST /api/runtime/chat/character/suggestions`
|
||||
- `POST /api/runtime/chat/character/summary`
|
||||
- `POST /api/runtime/chat/character/reply/stream`
|
||||
@@ -183,10 +184,6 @@ JWT 现状:
|
||||
- `GET /api/assets/character-animation/jobs/:taskId`
|
||||
- `POST /api/assets/character-animation/import-video`
|
||||
- `GET /api/assets/character-animation/templates`
|
||||
- `POST /api/assets/qwen-sprite/master`
|
||||
- `POST /api/assets/qwen-sprite/sheet`
|
||||
- `POST /api/assets/qwen-sprite/frame-repair`
|
||||
- `POST /api/assets/qwen-sprite/save`
|
||||
|
||||
编辑器与资产接口门禁:
|
||||
|
||||
@@ -227,9 +224,7 @@ Custom World:
|
||||
编辑器与资产工具层:
|
||||
|
||||
- `src/editor/shared/editorApiClient.ts`
|
||||
- `src/editor/shared/useJsonSave.ts`
|
||||
- `src/components/preset-editor/characterAssetStudioPersistence.ts`
|
||||
- `src/tools/qwenSpriteSheetToolPersistence.ts`
|
||||
|
||||
## 10. 当前 Vite 角色
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
- `server-node/src/services/eightAnchorPromptBuilder.ts`
|
||||
- `server-node/src/modules/assets/characterAssetRoutes.ts`
|
||||
- `src/services/**`
|
||||
- `src/tools/qwenSpriteSheetToolModel.ts`
|
||||
- `src/components/**`
|
||||
|
||||
问题主要有三类:
|
||||
@@ -50,7 +49,6 @@ src/prompts/
|
||||
├─ customWorldPrompts.ts
|
||||
├─ customWorldRolePromptDefaults.ts
|
||||
├─ questPrompts.ts
|
||||
├─ qwenSpriteSheetToolPrompts.ts
|
||||
├─ runtimeItemPrompts.ts
|
||||
├─ storyOrchestratorPrompts.ts
|
||||
└─ storyPromptBuilders.ts
|
||||
@@ -82,8 +80,6 @@ src/prompts/
|
||||
- 八锚点状态推断、模式规则与正式单轮共创 prompt
|
||||
- `src/prompts/customWorldPrompts.ts`
|
||||
- 自定义世界分阶段生成 prompt 与场景背景图 prompt
|
||||
- `src/prompts/qwenSpriteSheetToolPrompts.ts`
|
||||
- 精灵图工具主词 / 分镜词 / 修帧词 / 负面词
|
||||
- `src/prompts/customWorldRolePromptDefaults.ts`
|
||||
- 角色资产工作台默认 prompt 种子唯一主源
|
||||
- `src/prompts/customWorldEntityActionPrompts.ts`
|
||||
@@ -127,7 +123,6 @@ src/prompts/
|
||||
- `src/services/characterChatPrompt.ts`
|
||||
- `src/services/questPrompt.ts`
|
||||
- `src/services/runtimeItemAiPrompt.ts`
|
||||
- `src/tools/qwenSpriteSheetToolModel.ts`
|
||||
- `src/components/asset-studio/customWorldRolePromptDefaults.ts`
|
||||
- `packages/shared/src/assets/qwenSprite.ts`
|
||||
|
||||
|
||||
@@ -676,7 +676,7 @@ PixelMotion 很关键的一点,不是要求 16 帧都完美,而是允许修
|
||||
### 13.4 推荐目录结构
|
||||
|
||||
```text
|
||||
pixelmotion-qwen/
|
||||
pixelmotion-workflow/
|
||||
refs/
|
||||
master.png
|
||||
pose_board_run.png
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
- [AGENT_RESULT_PROFILE_SYNC_PHASE2_2026-04-20.md](./AGENT_RESULT_PROFILE_SYNC_PHASE2_2026-04-20.md):阶段二把平台创作入口统一到聚合作品列表,并收紧 Agent 结果页的新增入口职责边界。
|
||||
- [AGENT_RESULT_PROFILE_SYNC_PHASE3_2026-04-20.md](./AGENT_RESULT_PROFILE_SYNC_PHASE3_2026-04-20.md):阶段三继续降级旧 pipeline,让创作中心只认 Agent 草稿与已发布作品,并把 Agent 结果页冻结为预览收口层。
|
||||
- [CURRENT_AGENT_CREATION_FLOW_STAGE4_CLEANUP_CHECK_2026-04-21.md](./CURRENT_AGENT_CREATION_FLOW_STAGE4_CLEANUP_CHECK_2026-04-21.md):对照当前优化计划核查四阶段完成度,并明确这轮只允许物理删除旧 `custom-world/sessions` 世界生成链,不误伤 Agent 主链与已保存作品兼容编辑链。
|
||||
- [CREATION_PAGE_MOBILE_UI_FIX_2026-04-21.md](./CREATION_PAGE_MOBILE_UI_FIX_2026-04-21.md):创作页移动端底部 Tab、亮色主题 token 与滚动权责修复记录。
|
||||
- [TXT_MODE_VISUAL_NOVEL_MIGRATION_EXECUTION_PLAN_2026-04-20.md](./TXT_MODE_VISUAL_NOVEL_MIGRATION_EXECUTION_PLAN_2026-04-20.md):把外部仓库 TXT 模式完整迁入当前项目的冻结边界、模块映射、分阶段计划与验收清单。
|
||||
- [NODE_SERVER_KNOWLEDGE_GRAPH_2026-04-08.md](./NODE_SERVER_KNOWLEDGE_GRAPH_2026-04-08.md):当前 Node 运行时后端的技术栈、入口、鉴权、存储与接口知识图谱。
|
||||
- [EXPRESS_BACKEND_INTEGRATION_FREEZE_2026-04-09.md](./EXPRESS_BACKEND_INTEGRATION_FREEZE_2026-04-09.md):Express 后端当前 contract 冻结版本、热点文件编辑规则与集成窗口清单。
|
||||
|
||||
Reference in New Issue
Block a user