运行页入口收口:过程提示退出对话区,顶栏统一承载运行入口 #457

Merged
suzmii merged 12 commits from feat/agc-run-preview-tip into master 2026-09-22 17:47:59 +08:00
Member

这是什么

AGC 运行页的入口与提示收口。四条问题一次解决:

  1. 运行 / 预览的提示不再写进对话区——它会常驻对话底部,遮挡运行画面。
  2. 预览地址不再以文字常驻(长 URL 既占位又不可点),改成顶栏的「在浏览器打开」按钮。
  3. 版本选择搬进顶栏动作区,与「打开项目目录 / 点选素材」同一套按钮皮,不再是自己一套皮的画面浮层。
  4. 运行页不再挂「生成任务」入口 / 面板 / 锚点(任务不丢,切回资源页照旧)。

前后对照

位置 之前 之后
对话区 每次运行 / 切预览都追加一条 运行通过,已载入客户端运行视图:http://127.0.0.1:63155/,堆在对话底部遮挡运行画面;失败也写一条 成功与失败都不再写入;过程反馈走 toast(成功 2.6 秒、失败 6 秒,同一句连续触发重新计时)
运行画面上方 一行常驻小字显示预览地址,不可点 状态行整体退役,运行画面回到两行栅格
预览地址出口 只有那行文字 顶栏「在浏览器打开」按钮,只在有活预览时出现;打开失败弹失败色 toast,不写对话区
版本入口 绝对定位浮层压在游戏画面右上角,自带边框 / 底色 / hover 顶栏动作区里的普通按钮,外观复用 .game-workbench-view-actions button;资源画布与运行页显示,UI 编辑器壳不渲染;长版本名由内层 span 省略
生成任务 运行页右上角同样挂开关 / 面板 运行页的入口、面板、锚点都不渲染;坐标档 [data-generation-tasks-placement='run']placement 里的 run 一并删除

落地方案

  • 提示通道ProjectChatComponentProps.onRunNotice → 工作台壳 RunNoticeToast(复用共享 PlatformRuntimeStatusToasttone 决定观感,成功 2.6 秒 / 失败 6 秒)。executeRunLocal 的两条成功路径(复用活体预览 / 回落重启)与三条失败路径(缺 Tauri、缺项目、启动预览报错 运行游戏失败:…)全部走这里;原先承载这些文案的 announceProjectChatMessage 已无调用方,连同删除。
  • 浏览器入口:opener 插件的 openUrlopener:default 已放行 http://127.0.0.1:*),只有顶栏那一枚按钮调用;视图拿不到提示通道时把失败写进 console.error,不静默吞掉。预览的启动与切换仍然只走内置运行画面、不自动开系统浏览器:scripts/check-native-shells.mjs 的负向守卫保持原样,另补两条判据——「浏览器入口只有顶栏这一枚按钮」+「运行页视图里 openUrl( 只有一个调用点」。
  • 版本入口:搬进顶栏动作区,去掉自带的边框 / 底色 / hover;UI 编辑器壳里不渲染(那一页是聚焦编辑某个资源的界面)。版本名改由一层 span 承载省略号——按钮是 flex 容器,文本直接挂在按钮上时 text-overflow 不生效。

与主线历史的关系

  • 分支上先后 7 个提交(含两次合并 master)。最早两个提交(小字 / 状态行方案)已被后续提交取代,PR 净变化以上表为准。
  • 与 master 5315b233c(2026-09-21「预览激活回接运行入口」):那条接线决策(先问 Rust 要活体预览、命中就只切视图不重启)原样保留;被改的只是它当时选的播报渠道——从聊天 announce 换成 toast。tests/previewActivation.test.tsx 的三条路径不变,断言改为 toast 通道 + 对话容器里没有这类提示。

验证

  • AGC 壳目录全量:173 文件 / 1826 通过 / 18 跳过 / 0 失败(含 appSurface
  • 用例:新增 runPreviewBrowserOpen(3)、runNoticeToast(5)、runNoticeShellWiring(2,外壳级接线:替身聊天发提示 → 真壳渲染浮层)、gameRunToolbarActionsStyle(2);改写 previewActivation(4,新增「启动失败走失败色提示且不写对话区」) 与「生成任务入口」用例
  • npm run typechecknpm run agc:typechecknpm run check:native-shells:contractcheck:encodinggit diff --check 全绿
  • 未复验:真机观感(顶栏是否显挤、toast 位置与时长、编辑器里没有版本入口的实际手感);opener:default 仍是应用级放行(收窄成显式 scope 还要覆盖现有「反馈联系」的飞书链接,建议另开任务);一次全量运行在 resourceCanvasQuickEditDraft 出现过偶发失败,单独重跑与复跑均通过,与本改动无调用关系
## 这是什么 AGC 运行页的入口与提示收口。四条问题一次解决: 1. 运行 / 预览的提示不再写进对话区——它会常驻对话底部,遮挡运行画面。 2. 预览地址不再以文字常驻(长 URL 既占位又不可点),改成顶栏的「在浏览器打开」按钮。 3. 版本选择搬进顶栏动作区,与「打开项目目录 / 点选素材」同一套按钮皮,不再是自己一套皮的画面浮层。 4. 运行页不再挂「生成任务」入口 / 面板 / 锚点(任务不丢,切回资源页照旧)。 ## 前后对照 | 位置 | 之前 | 之后 | | --- | --- | --- | | 对话区 | 每次运行 / 切预览都追加一条 `运行通过,已载入客户端运行视图:http://127.0.0.1:63155/`,堆在对话底部遮挡运行画面;失败也写一条 | 成功与失败**都不再写入**;过程反馈走 toast(成功 2.6 秒、失败 6 秒,同一句连续触发重新计时) | | 运行画面上方 | 一行常驻小字显示预览地址,不可点 | 状态行整体退役,运行画面回到两行栅格 | | 预览地址出口 | 只有那行文字 | 顶栏「在浏览器打开」按钮,只在有活预览时出现;打开失败弹失败色 toast,不写对话区 | | 版本入口 | 绝对定位浮层压在游戏画面右上角,自带边框 / 底色 / hover | 顶栏动作区里的普通按钮,外观复用 `.game-workbench-view-actions button`;资源画布与运行页显示,UI 编辑器壳不渲染;长版本名由内层 span 省略 | | 生成任务 | 运行页右上角同样挂开关 / 面板 | 运行页的入口、面板、锚点都不渲染;坐标档 `[data-generation-tasks-placement='run']` 与 `placement` 里的 `run` 一并删除 | ## 落地方案 - **提示通道**:`ProjectChatComponentProps.onRunNotice` → 工作台壳 `RunNoticeToast`(复用共享 `PlatformRuntimeStatusToast`,`tone` 决定观感,成功 2.6 秒 / 失败 6 秒)。`executeRunLocal` 的两条成功路径(复用活体预览 / 回落重启)与三条失败路径(缺 Tauri、缺项目、启动预览报错 `运行游戏失败:…`)全部走这里;原先承载这些文案的 `announceProjectChatMessage` 已无调用方,连同删除。 - **浏览器入口**:opener 插件的 `openUrl`(`opener:default` 已放行 `http://127.0.0.1:*`),只有顶栏那一枚按钮调用;视图拿不到提示通道时把失败写进 `console.error`,不静默吞掉。预览的**启动与切换**仍然只走内置运行画面、不自动开系统浏览器:`scripts/check-native-shells.mjs` 的负向守卫保持原样,另补两条判据——「浏览器入口只有顶栏这一枚按钮」+「运行页视图里 `openUrl(` 只有一个调用点」。 - **版本入口**:搬进顶栏动作区,去掉自带的边框 / 底色 / hover;UI 编辑器壳里不渲染(那一页是聚焦编辑某个资源的界面)。版本名改由一层 span 承载省略号——按钮是 flex 容器,文本直接挂在按钮上时 `text-overflow` 不生效。 ## 与主线历史的关系 - 分支上先后 7 个提交(含两次合并 master)。最早两个提交(小字 / 状态行方案)已被后续提交取代,PR 净变化以上表为准。 - 与 master `5315b233c`(2026-09-21「预览激活回接运行入口」):那条接线决策(先问 Rust 要活体预览、命中就只切视图不重启)**原样保留**;被改的只是它当时选的播报渠道——从聊天 announce 换成 toast。`tests/previewActivation.test.tsx` 的三条路径不变,断言改为 toast 通道 + 对话容器里没有这类提示。 ## 验证 - AGC 壳目录全量:**173 文件 / 1826 通过 / 18 跳过 / 0 失败**(含 `appSurface`) - 用例:新增 `runPreviewBrowserOpen`(3)、`runNoticeToast`(5)、`runNoticeShellWiring`(2,外壳级接线:替身聊天发提示 → 真壳渲染浮层)、`gameRunToolbarActionsStyle`(2);改写 `previewActivation`(4,新增「启动失败走失败色提示且不写对话区」) 与「生成任务入口」用例 - `npm run typecheck`、`npm run agc:typecheck`、`npm run check:native-shells:contract`、`check:encoding`、`git diff --check` 全绿 - **未复验**:真机观感(顶栏是否显挤、toast 位置与时长、编辑器里没有版本入口的实际手感);`opener:default` 仍是应用级放行(收窄成显式 scope 还要覆盖现有「反馈联系」的飞书链接,建议另开任务);一次全量运行在 `resourceCanvasQuickEditDraft` 出现过偶发失败,单独重跑与复跑均通过,与本改动无调用关系
suzmii added 5 commits 2026-09-22 12:52:40 +08:00
- 删掉 AGC 播放/运行本地游戏成功后的聊天提示:它每次播放都会堆在对话底部遮挡运行画面,成功与否由客户端运行视图本身体现,失败仍照原样回报
- appSurface 三处用例改为断言 start_local_game_preview 真被调用且聊天里不再出现该提示
- 补排障记录:本地 node_modules 内置 Codex 原生包过旧会让 AGC build script panic,需在仓库根目录 npm ci
- 删除播放、/preview、/open-preview 与生成后自动启动预览写进对话区的成功提示,对话区只保留对话内容
- 新增 onRunNotice 通道,工作台壳用 RunNoticeToast 弹 2.6 秒浮层,同一句连续触发会重新计时
- 运行表现层在预览框上方常驻小字「已载入客户端运行视图:URL」,没有活预览时不占位
- 更新 appSurface 四处用例,新增 onRunNotice、小字与 RunNoticeToast 用例
- 同步 check-config 与 check-native-shells 的字符串判据,并记录决策到 shared-memory
- 运行区域上方新增状态行,预览地址小字与版本入口同排:两者都在游戏画面之外,版本入口不再绝对定位压在画面上
- 小字单行省略并用 title 给出完整地址,状态行高度恒定 30px,没有版本入口时也不塌
- 运行页不再渲染生成任务入口、面板与锚点;[data-generation-tasks-placement='run'] 那一档坐标与 placement 里的 run 一并删除
- 按新口径改写两侧用例,新增运行区域状态行的声明级守卫用例
- 记录决策到 shared-memory/decision-log.md
- 删除运行区域上方的状态行与预览地址小字,运行画面回到两行栅格
- 预览地址改成顶栏动作区里的「在浏览器打开」按钮(opener 插件 openUrl),只在有活预览时渲染
- 版本入口搬进同一个顶栏动作区,外观复用该容器的基础按钮样式,去掉自带的边框、底色与 hover
- 打开失败走 onNotice 的失败色 toast:onRunNotice 通道改成带 tone 的对象,四处调用点同步
- 补顶栏入口正向守卫,删掉状态行的旧样式用例并新增顶栏与浏览器打开的用例
合并 master:运行页入口收口并入 DirectProject 重构
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
0a8debef56
- 保留 master 的 DirectProject / ProjectChat 重构与测试重组:原 appSurface 的 project-commands / project-preview / supervisor-runtime 三个 suite 已被 master 删除,接受删除并把相关断言重写到 tests/previewActivation.test.tsx 等新用例
- 本分支改动重放到 master 结构:运行与预览成功的反馈改走 onRunNotice toast(带 tone),对话区不再写过程提示
- 运行页顶栏统一:预览地址改成「在浏览器打开」按钮,版本入口搬进同一动作区复用同一套按钮皮,状态行与预览地址小字退役
- 生成任务入口、面板与锚点不在运行页渲染,placement 里的 run 档一并删除
- 手工合并 App.tsx / WorkspaceLauncher.tsx / model.ts / check-config.mjs / decision-log / pitfalls,并把两条决策记录与一条排障记录补进 master 版本文档
suzmii added 1 commit 2026-09-22 12:57:47 +08:00
合并 master(48eb3d500):CI 缓存与运行时测试重组并入运行页入口收口
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m26s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m59s
Project CI / Backend tests (pull_request) Successful in 6m44s
Project CI / Native shell tests (pull_request) Successful in 7m55s
Project CI / Frontend tests (pull_request) Successful in 3m32s
Project CI / Repository checks (pull_request) Successful in 3m6s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m33s
82de6d46a9
- 只冲突 docs/project-memory/shared-memory/pitfalls.md:保留双方新增的排障记录(本分支的 Codex 原生包版本 + master 的 Rust 对象快照)
- 其余 master 改动(CI 缓存脚本、process_session 测试拆分等)自动合并
suzmii added 1 commit 2026-09-22 14:42:56 +08:00
修 review 发现:运行反馈全面退出对话区,并补齐顶栏与守卫细节
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m13s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m55s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m21s
Project CI / Native shell tests (pull_request) Successful in 8m53s
6dde321bd1
- executeRunLocal 的三条失败路径(缺 Tauri / 缺项目 / 启动预览报错)也改走 onRunNotice 失败色提示,对话区不再出现过程行;随之删除已无调用方的 announceProjectChatMessage 与不再有意义的 announceToChat 参数
- RunNoticeToast 的失败提示延长到 6 秒(成功仍 2.6 秒),避免错误一闪而过
- 版本入口在 UI 编辑器壳里不渲染;版本名改由一层 span 承载省略号,长版本名不再被硬裁
- 视图拿不到 onNotice 时把「在浏览器打开失败」写进 console,不再静默吞掉
- check-native-shells 增加「运行页视图里 openUrl( 只有一个调用点」的判据,堵住自动开浏览器的口子
- 新增外壳级接线用例 runNoticeShellWiring;previewActivation 补「启动失败走失败色提示且不写对话区」;runNoticeToast 补失败时长;样式守卫补省略号
- decision-log 收敛到最终口径(成功与失败都出对话区、失败留 6 秒、编辑器不挂版本入口)
suzmii added 2 commits 2026-09-22 16:16:33 +08:00
修复快速编辑草稿回填用例的竞态:面板先出现、Lexical 的值后落
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
0434647978
- 同一条用例在 CI run 2702 与本地一次全量里各命中过一次「expected '' to include '把角色头发改成红色'」:面板(dialog)一出现就同步读 textContent,编辑器值还没落
- 回填类断言统一改走 expectPanelPromptContains(内部 waitFor),不再赌时序
- 「提交后重开是空面板」那条否定断言改用 composerValue 读(它先让编辑器落值),避免空串让断言空过
- 连跑该文件 9 次 + 全量 3 次(173 文件 / 1826 通过 / 18 跳过)均全绿
suzmii added 1 commit 2026-09-22 17:11:16 +08:00
合并 master(bba4f0eb2):DirectProject 聊天三态与快照文档并入运行页入口收口
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
f7250f5dd1
- 只冲突两份共享记忆的尾部追加(pitfalls / decision-log):保留双方新增条目,直接合并非取舍
- App.tsx / styles.css 自动合并通过;本分支的运行页入口收口与 onRunNotice 通道未受影响
suzmii added 1 commit 2026-09-22 17:28:41 +08:00
Merge branch 'master' into feat/agc-run-preview-tip
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m59s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
c2d756a772
suzmii added 1 commit 2026-09-22 17:31:35 +08:00
Merge branch 'master' into feat/agc-run-preview-tip
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 20s
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / Native shell tests (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Failing after 21s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / AI game creator shell web tests (pull_request) Failing after 21s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
9b0fcd48d2
suzmii merged commit 4990dae829 into master 2026-09-22 17:47:59 +08:00
suzmii deleted branch feat/agc-run-preview-tip 2026-09-22 17:48:00 +08:00
Sign in to join this conversation.