Files
Genarrative/docs/technical/CREATION_HUB_CARD_ACTIONS_2026-04-22.md
kdletters cbc27bad4a
Some checks failed
CI / verify (push) Has been cancelled
init with react+axum+spacetimedb
2026-04-26 18:06:23 +08:00

64 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 创作中心作品卡操作入口落地说明
日期:`2026-04-22`
## 1. 本次目标
创作中心作品卡需要补齐两个直接操作入口:
1. **体验**:对已经满足运行条件的作品,直接从卡片启动对应玩法,不再必须先进详情页。
2. **删除**:对已有正式删除契约的 RPG 已发布作品,直接从卡片删除并刷新创作中心。
## 2. 操作语义
| 作品类型 | 状态 | 主按钮 | 体验入口 | 删除入口 |
| --- | --- | --- | --- | --- |
| RPG Agent 草稿 | `draft` | `继续创作` / `继续完善` | 不展示,草稿需要先走发布链 | 不展示,本轮不新增 Agent session 物理删除 |
| RPG 已发布作品 | `published``canEnterWorld=true` | `查看详情` | 展示 `体验`,直接调用现有进入世界链 | 展示 `删除`,走 owner-only 软删除 |
| Big Fish 草稿 | `draft` | `继续创作` | 不展示,草稿需要先回到聊天或结果页继续完善 | 不展示,本轮不新增 Big Fish 草稿删除 |
| Big Fish 已发布作品 | `published` | `查看详情` | 展示 `体验`,直接调用现有 Big Fish 运行态 | 不展示,本轮不新增 Big Fish 删除契约 |
| 拼图草稿 | `draft` | `继续创作` | 不展示 | 不展示,本轮不新增拼图删除契约 |
| 拼图已发布作品 | `published` | `查看详情` | 展示 `体验`,直接调用 `startPuzzleRun` | 不展示,本轮不新增拼图删除契约 |
## 3. 后端边界
RPG 删除必须继续遵守后端治理里的软删除规则:
1. `custom_world_profile` 增加 `deleted_at` 语义字段。
2. 删除时不物理删除 profile只设置 `deleted_at`、把发布态回退为 `draft`、清空 `published_at`,并删除公开 gallery projection。
3. `library / gallery detail / works` 读取默认过滤 `deleted_at != null` 的作品。
4. 重复删除同一 profile 保持幂等,返回当前可见作品列表。
## 4. 前端边界
1. 卡片只做表现和动作分发,不在前端拼删除逻辑。
2. 删除前使用浏览器确认,避免移动端误触。
3. 卡片按钮移动端优先换行铺开,避免小屏幕上三个按钮拥挤。
4. 不在 UI 中默认展示大段规则说明,失败信息沿用创作中心现有错误 banner。
## 5. 本轮不做
1. 不新增 Agent session 草稿删除。
2. 不新增拼图作品删除。
3. 不新增独立删除面板。
4. 不新建创作页或运行时页面,只复用现有 `CustomWorldCreationHub`、RPG 进入世界链和拼图运行时链。
5. Big Fish 草稿恢复链补齐时,只补创作中心 works 投影和恢复入口,不新建独立 Big Fish 作品系统。
## 6. 已落地结果
1. 创作中心 RPG 已发布作品卡主按钮统一调整为 `查看详情`,避免和直接进入玩法的动作混淆。
2. RPG 与拼图已发布作品卡新增独立 `体验` 入口,直接复用各自现有运行时进入链路。
3. RPG 已发布作品卡新增 `删除` 入口,调用 `/api/runtime/custom-world-library/{profile_id}``DELETE` 路由,按 owner-only 软删除规则刷新作品列表与公开广场。
4. 创作中心详情页原有删除链路继续保留,和卡片删除共用同一后端删除契约。
5. 后续拼图草稿恢复链补齐后,拼图 `draft` 卡主按钮语义收口为 `继续创作`,通过 `sourceSessionId` 恢复 Agent session而不是进入详情页。
6. 后续 Big Fish 草稿恢复链补齐后Big Fish `draft` 卡主按钮同样收口为 `继续创作`,通过 `sourceSessionId` 恢复 Agent session而不是重新创建会话。
## 7. 已验证
1. `corepack pnpm vitest run src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx`
2. 交互测试已覆盖:
- 创作卡点击 `查看详情` 进入详情页。
- 创作卡点击 `体验` 直接进入世界选择链路。
- 创作卡点击 `删除` 直接从作品列表移除。
- 详情页删除入口在新卡片动作语义下仍然可用。