From 250a55e92f8b75878de7337ebc9b2dd8b109e71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E7=89=A9?= <253518756@qq.com> Date: Fri, 1 May 2026 02:09:07 +0800 Subject: [PATCH] 1 --- ...D_CREATION_ENTRY_COMING_SOON_2026-05-01.md | 27 +++++++++++++++++++ docs/technical/README.md | 1 + ...ustomWorldCreationHub.interaction.test.tsx | 5 ++++ .../PlatformEntryFlowShellImpl.tsx | 19 +++++-------- .../platformEntryCreationTypes.ts | 6 ++--- 5 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 docs/technical/MATCH3D_CREATION_ENTRY_COMING_SOON_2026-05-01.md diff --git a/docs/technical/MATCH3D_CREATION_ENTRY_COMING_SOON_2026-05-01.md b/docs/technical/MATCH3D_CREATION_ENTRY_COMING_SOON_2026-05-01.md new file mode 100644 index 00000000..0d34e2ee --- /dev/null +++ b/docs/technical/MATCH3D_CREATION_ENTRY_COMING_SOON_2026-05-01.md @@ -0,0 +1,27 @@ +# 抓大鹅创作入口敬请期待 2026-05-01 + +## 1. 背景 + +抓大鹅 Match3D 玩法域已存在创作工作区、结果承接和后续后端接入文档,但当前产品节奏需要先收起创作页入口,避免玩家从创作页直接进入未完全开放的抓大鹅创作链路。 + +## 2. 落地边界 + +本轮只调整平台创作入口展示与点击防线: + +1. `PLATFORM_CREATION_TYPES` 中 `match3d` 保持展示,标题仍为 `抓大鹅`。 +2. `match3d` 的副标题与 badge 统一显示 `敬请期待`。 +3. `match3d.locked` 设为 `true`,创作页首屏卡片和创作类型弹层都会变为不可点击。 +4. 平台分流回调继续保留 `match3d` 防御返回,避免旧 UI 状态或旧入口绕过锁定态。 + +## 3. 非目标 + +1. 不删除 `src/components/match3d-creation/`、`src/services/match3d-creation/` 或已完成的 Match3D 玩法域代码。 +2. 不修改 SpacetimeDB 表、procedure、bindings 或 `migration.rs`。 +3. 不改变已发布抓大鹅作品的详情、运行态和后续恢复入口能力。 + +## 4. 验收点 + +1. 创作页能看到 `抓大鹅` 卡片。 +2. 该卡片显示 `敬请期待`,且按钮 disabled。 +3. 创作类型弹层中的 `抓大鹅` 同样显示 `敬请期待`,且不可点击。 +4. 相关测试、类型检查和编码检查通过。 diff --git a/docs/technical/README.md b/docs/technical/README.md index ff86b070..779c9316 100644 --- a/docs/technical/README.md +++ b/docs/technical/README.md @@ -13,6 +13,7 @@ - [MATCH3D_F1_CREATION_ENTRY_AND_AGENT_UI_2026-04-30.md](./MATCH3D_F1_CREATION_ENTRY_AND_AGENT_UI_2026-04-30.md):记录抓大鹅 F1 创作入口、Agent 工作区、参考图入口、本地 mock client 与后续 B5 HTTP facade 替换点。 - [MATCH3D_F2_RESULT_AND_PUBLISH_2026-04-30.md](./MATCH3D_F2_RESULT_AND_PUBLISH_2026-04-30.md):冻结抓大鹅 F2 结果页、基础信息编辑、发布前试玩入口、发布门槛、自动保存和已发布作品二次编辑恢复口径。 - [MATCH3D_SPACETIME_CLIENT_AND_API_FACADE_2026-04-30.md](./MATCH3D_SPACETIME_CLIENT_AND_API_FACADE_2026-04-30.md):记录抓大鹅 B4+B5 已落地的 SpacetimeDB bindings、`spacetime-client` facade、`api-server` HTTP 路由、shared contract 对齐和验收命令。 +- [MATCH3D_CREATION_ENTRY_COMING_SOON_2026-05-01.md](./MATCH3D_CREATION_ENTRY_COMING_SOON_2026-05-01.md):记录抓大鹅创作页入口临时改为“敬请期待”、不可点击,以及保留既有 Match3D 能力不删除的边界。 - [PLATFORM_MOBILE_BOTTOM_DOCK_VIEWPORT_FIX_2026-04-30.md](./PLATFORM_MOBILE_BOTTOM_DOCK_VIEWPORT_FIX_2026-04-30.md):记录平台首页底部 dock 在手机浏览器地址栏展开时脱离可见区域的根因,以及 `100dvh`、固定底部锚点和安全区占位的修复口径。 - [SPACETIMEDB_JSON_STRING_MIGRATION_PROCEDURE_2026-04-27.md](./SPACETIMEDB_JSON_STRING_MIGRATION_PROCEDURE_2026-04-27.md):记录 SpacetimeDB private 表迁移 JSON 导出/导入 procedure、迁移操作员授权、HTTP 413 分片导入、Jenkins 自动迁移回灌和导入脚本参数。 - [JENKINS_SPACETIMEDB_DATABASE_MIGRATION_PIPELINES_2026-04-29.md](./JENKINS_SPACETIMEDB_DATABASE_MIGRATION_PIPELINES_2026-04-29.md):记录 `Genarrative-Database-Export` / `Genarrative-Database-Import` 两条 SCM-backed 数据库迁移流水线参数、默认 dry-run、token 边界和 `CHUNK_SIZE` 413 规避参数。 diff --git a/src/components/custom-world-home/CustomWorldCreationHub.interaction.test.tsx b/src/components/custom-world-home/CustomWorldCreationHub.interaction.test.tsx index e884bb95..eaf9df1b 100644 --- a/src/components/custom-world-home/CustomWorldCreationHub.interaction.test.tsx +++ b/src/components/custom-world-home/CustomWorldCreationHub.interaction.test.tsx @@ -106,12 +106,17 @@ test('creation hub reflects updated draft title summary and counts after rerende expect(screen.queryByText('地点 4')).toBeNull(); const rpgButton = screen.getByRole('button', { name: /角色扮演/u }); const puzzleButton = screen.getByRole('button', { name: /拼图.*创意礼物/u }); + const match3dButton = screen.getByRole('button', { name: /抓大鹅/u }); expect( puzzleButton.compareDocumentPosition(rpgButton) & Node.DOCUMENT_POSITION_FOLLOWING, ).toBeTruthy(); expect((rpgButton as HTMLButtonElement).disabled).toBe(true); expect(within(rpgButton).getAllByText('敬请期待').length).toBeGreaterThan(0); + expect((match3dButton as HTMLButtonElement).disabled).toBe(true); + expect( + within(match3dButton).getAllByText('敬请期待').length, + ).toBeGreaterThan(0); expect(puzzleButton).toBeTruthy(); expect(screen.queryByRole('button', { name: /大鱼吃小鱼/u })).toBeNull(); diff --git a/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx b/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx index 9534bfa2..611a99f1 100644 --- a/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx +++ b/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx @@ -1645,7 +1645,12 @@ export function PlatformEntryFlowShellImpl({ const handleCreationHubCreateType = useCallback( (type: PlatformCreationTypeId) => { - if (type === 'rpg' || type === 'airp' || type === 'visual-novel') { + if ( + type === 'rpg' || + type === 'match3d' || + type === 'airp' || + type === 'visual-novel' + ) { return; } @@ -1660,13 +1665,6 @@ export function PlatformEntryFlowShellImpl({ return; } - if (type === 'match3d') { - runProtectedAction(() => { - void openMatch3DAgentWorkspace(); - }); - return; - } - if (type === 'puzzle') { runProtectedAction(() => { void openPuzzleAgentWorkspace(); @@ -1675,7 +1673,6 @@ export function PlatformEntryFlowShellImpl({ }, [ openBigFishAgentWorkspace, - openMatch3DAgentWorkspace, openPuzzleAgentWorkspace, prepareCreationLaunch, runProtectedAction, @@ -4560,9 +4557,7 @@ export function PlatformEntryFlowShellImpl({ }); }} onSelectMatch3D={() => { - runProtectedAction(() => { - void openMatch3DAgentWorkspace(); - }); + // 抓大鹅创作入口当前为敬请期待;保留回调防御,避免旧入口绕过锁定态。 }} onSelectPuzzle={() => { runProtectedAction(() => { diff --git a/src/components/platform-entry/platformEntryCreationTypes.ts b/src/components/platform-entry/platformEntryCreationTypes.ts index 309ff006..9c6b15a1 100644 --- a/src/components/platform-entry/platformEntryCreationTypes.ts +++ b/src/components/platform-entry/platformEntryCreationTypes.ts @@ -68,9 +68,9 @@ export const PLATFORM_CREATION_TYPES: PlatformCreationTypeCard[] = [ { id: 'match3d', title: '抓大鹅', - subtitle: '经典消除玩法', - badge: '可创建', - locked: false, + subtitle: '敬请期待', + badge: '敬请期待', + locked: true, }, { id: 'airp',