## 解决什么 你反馈的两个现象都是真问题,这个 PR 一次修掉: 1. **没开灰度也能看到发布按钮**:发布开关此前是「无 gate 行 = 默认开放」,所以没配灰度时后端把 `gameDistributionPublishEnabled` 判成 true,客户端就渲染了发布入口。 2. **按钮点了没反应**:发布动作的提示原先只写 `workspaceStatus`,而普通项目走 `DirectProjectChatView` 时并不渲染工作台状态行,于是「先打开一个项目再发布」「构建失败…」这类信息全都看不见。 3. **后台看不到 key**:预设项此前在未合并的另一个 PR 里,而且后台只列「已创建」的 gate 行。 ## 改成什么 - `is_game_distribution_publish_enabled_for_user` 要求 gate 行存在且 `enabled=true`:**灰度默认关闭**,未登录/无行/`enabled=false` 一律不开放;只有白名单 / 灰度比例 / 用户标签命中才开放。作者写入与新版本激活都按这条判据。 - 新增与作者无关的总开关 `is_game_distribution_publish_open`:管理员审核激活新版本只看「灰度是否开启」,不会因为审核员不在作者白名单里而被挡住(这是合入后立刻发现的回归,已修 + 有用例)。 - AGC 新增 `announcePublishMessage`:发布相关提示同时写工作台状态与 DirectProject 对话,点「发布到游戏广场」不会再像没反应。 - 后台「灰度发布配置」新增「可配置开关」列表:`game-distribution:publish` 等预设即使还没创建行也会显示,点「配置」按默认关闭填表,运营开启后填白名单/比例即可放量。 ## 验证 - `npm run check:game-distribution-media-e2e`(真实 Phaser 构建产物)现在覆盖:灰度关闭 → 作者拿不到入口 + 写入口 503 → 开启灰度 → 真实封面/截图直传 → 创建游戏/版本/上传/送审 → 管理员审核通过 → 网关 index.html 与 bundle 200 → nosniff;全流程通过。 - 后端:`cargo test -p api-server game_distribution` 19 passed(含新增 `game_distribution_publish_open_ignores_author_allowlist_for_activation`)、`frontend_runtime_config` 6 passed。 - 前端:admin 灰度页 10 用例(含「未创建的预设开关可见并可一键配置」)、AGC 聊天头 3 用例、网页发布页 15 用例;三端 typecheck、`check:encoding`、`check:doc-index`、`check:rustfmt`、全量 `npm test`(400 文件 / 4441 用例)与 `check:repository-ci -- origin/master HEAD` 全绿。 ## 上线注意 灰度默认关闭是**刻意**的:合入后到运营在后台把 `game-distribution:publish` 配置并开启之前,作者看不到发布入口、写入口 503;已公开游戏、目录、详情、发行网关、安全下架不受影响。 Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/482 Co-authored-by: kdletters <kdletters@qq.com> Co-committed-by: kdletters <kdletters@qq.com>
文档总览
本目录只把当前实现依据、公开契约和仍在维护的专题合同作为入口。代码、当前文档与项目记忆冲突时,以当前代码和最新专题文档为准;未列入下表的材料不作为实现依据。
必读入口
文档治理
- 文档生命周期与现状索引:说明现行规范、历史记录、待复核文档、开放事项和活动计划的分类边界。
当前产品与平台
- 当前产品与工程约束:现役入口、账号钱包、UI 和后端分层。
- 平台入口与玩法链路:只描述现役平台壳与旧模板退役边界。
- 外部 OpenAPI 与 API Key 接入方案
- External v1 OpenAPI:公开 HTTP 契约唯一机器可读来源。
AI 游戏创作与 Agent Runtime
-
AGC 资源 kind 枚举化契约:GameCreationApp 资源 kind 的 Rust enum、ts-rs 绑定、Unknown 可观测性和 shell 内重构边界。
-
策划 Agent 生产迁移与工作区浏览:已完成;当前策划入口统一使用 Design Agent,采用阶段审批与用户工作区文件浏览。旧 V1/V2 会话、命令、专用展示和测试不再作为兼容目标。
-
LLM 累计额度结算:Router 累计额度、首次基线与原子钱包结算。
-
Responses API 与 Agents SDK 迁移评估:评估 AGC 核心 Runtime 是否迁移到外部 Agent SDK 及其边界。
-
AI 游戏创作智能体 App 实施计划:当前 DirectProject、受控语义工具、UI workflow、资源和运行时合同。
-
AGC 后端框架整理与演进路线:共享 Runtime、本地执行宿主、云端控制面、领域/平台适配器及分阶段收口边界。
-
AGC 异步操作可恢复闭环:认证响应体、最近项目检查和首页自动创建的超时、逐项恢复与跨页防重合同。
-
AGC 客户端稳定版生命周期大切换:统一 operation、认证/Runner、项目入口、本地恢复和 dev-stack 身份边界。
-
策划会话 Runtime V2 接入与旧链路退役方案:历史方案,仅用于追溯 V2 的实现与退役过程,不作为当前实现依据。
-
DirectProject Codex 原始历史与异常恢复:原始 Responses item 持久化、线程注入与异常回合收尾。
-
DirectProject 对话历史单一事实源:AGC 项目开发对话只以项目对话历史与运行态事件为真相源,聊天投影不落盘。
-
DirectProject 独立聊天容器与工作台钱包布局:DirectProject 与 Supervisor 等路径分容器,钱包入口由项目工作台布局独立承载。
-
引用候选由宿主注入:引用输入区只接受宿主注入的引用 provider,素材选择面板独立成组件,附件芯片成为本轮附件唯一事实源。
-
GameAgent 对话工具调用卡片:把右侧对话里的执行命令 / 写文件投影成 Codex 风格可折叠卡片,含采集、独立历史文件、事件字段与回读契约。
-
DirectProject 客户端 Skill 与 MCP 扩展导入方案:客户端扩展导入、按独立 Skill/MCP 拆分、命名、启用和启动时注入边界。
-
AGC 通用插件宿主与编辑器适配:通用插件宿主、SDK、权限审计、UI 挂载和 Cocos 编辑器适配边界。
-
[AGC Unity 编辑器插件接入](./technical/【技术方案】AGC Unity编辑器插件接入-2026-09-18.md):DotCraft Attach 来源、Windows Mono 接入、项目身份、执行回执和分发边界。
-
AGC Godot 编辑器插件接入:GDExtension 聚焦加载、安装资源、受管描述文件、UID 归属、GDScript 回执与 Runner 边界。
-
AGC Cocos Creator 编辑器桥接模块:独立 crate、feature 开关、目标校验与 Windows 注入边界。
-
AGC 客户端更新检查与下载:启动版本检测、固定 dev 服务、OSS 清单与官网最新客户端下载。
-
AGC 总版本号与发号:客户端版本号收口到 OSS
agc/global-version.json,统一构建一次发号供各渠道共用,渠道高水位降级为断言。 -
AGC 模板库与模板建项:
templates/前缀的模板库契约、下载安装与「用模板建项目」链路。 -
AGC 模板包组织指南:模板 ZIP 的根目录结构、Cocos 工程保留项、禁止放入的内容、封面与体积上限、版本不可变与发布前自检。
-
DirectProject 本轮附件路径映射:Direct 首轮只映射附件原名与项目相对路径,不灌正文、不区别 GDD。
-
Direct 回合行为审计账本:Direct GUI 回合把 native 读 / MCP / 写文件落成项目内有界时间线,用于判断有没有打开本轮附件。
-
项目开发工作台 PRD:当前工作台页面和验收边界。
-
AGC 错误报告与诊断上传:当前进程错误事件、应用级日志和管理员查看器合同。
-
立项策划 Agent(Fast GDD):历史 V1 方案,仅用于追溯;旧
project-supervisor-plan/project-planning入口、审批、恢复和测试均已删除。 -
AGC 栏目画布底部工具栏入口矩阵:栏目画布底部工具栏的入口矩阵、可用条件与验收口径。
-
AGC 资源工作台三处交互收口改动前对照图:任务侧栏两个关闭入口、左侧贴边折叠把手、顶部播放按钮居中悬浮三张改动前截图与问题说明。
-
AGC 资源派生与非破坏性编辑合同:AGC 全类型现有资源非破坏性编辑的权威合同,约束资源派生、替换与写回边界。
-
AGC 聊天素材引用:聊天输入框 @ 引用项目素材的入口、引用模型与「当前版本素材」口径。
-
AGC 聊天 AI 润色与发送前提醒:提示词润色与发送前提醒的交互、失败与取消口径。
图片画布与媒体
-
AGC 抠图模式与背景色透传方案:External v1 与 AGC 客户端扩展
flat/complex及 BgFilterauto透传。 -
共享基础组件库与展示页:网站与客户端复用的无业务 UI chrome、样式边界和
/components展示页。 -
[Raw GPT Image 2 图片编辑代理](./technical/【技术方案】Raw GPT Image 2图片编辑代理-2026-09-07.md):主站客户端调用的同步图片编辑代理、multipart 输入、预检查与计费边界。
-
UI 编辑器自动切分素材工作流:UI 设计图素材切分、Raw GPT Image 2 调用与结果持久化边界。
-
画板音乐生成入口:BGM/SFX 共享视图、独立业务规则和当前发布门禁。
后端、运维与测试
- BgFilter 受限资源调度方案
- Issue225 登录成功 AGC 用户归属修复:登录 route tracking 的真实用户归属、
daily_login幂等边界和实施验收。 - SpacetimeDB 连接池取消安全
- Jenkins 容器预览部署控制面
- 浏览器内 AI Web 工程沙箱预览
- AI Web 工程 Runner 安全模型
- npm workspaces 统一依赖边界
- React 组件测试准则
- AGC 资源工作台 V3 端到端验收:资源工作台 V3 的端到端验收用例(S1–S16)与判据。
- 宿主壳能力统一协议
- Expo React Native 与 Tauri 宿主壳方案
已核准专题补充
以下文档已有源码、测试或运行时证据,现纳入 current 集合:
- 画板角色形象生成入口设计
- 画板图标素材生成入口设计
- 画板 UI 设计图生成入口设计
- 生成类面板 Lovart 统一改造方案
- 宣发素材工具入口设计
- 预览画布缩放滑杆
- 图片画布撤销、恢复范围与操作提示方案
- 微信虚拟支付接入
- SSE 客户端传输层收口约定
- 全站客服悬浮入口接入约定
- 图片画布素材导出方案
- UI 编辑器图片素材选择器
- 后台 Dashboard 运营看板方案
- 后台多账号与 Tab 访问权限方案
- Pingora 独立网关试点
- AGC 后台模型别名与对话选择:官方目录、本地自定义 LLM 开关、端点模型勾选与预览。
- UI 编辑器工作流完成通知弹窗
- 官网 SEO 地基实施约定
- UI 编辑器拖动变换提交边界
维护规则
- 当前文档只保留稳定合同、公开契约和仍在推进的专题;一次性计划、实施记录和已关闭实验完成后删除或融合,不再长期堆积。
- 文档现行/历史/待复核状态以文档生命周期与现状索引为准;未列入当前入口的文档不能直接作为实现依据。
docs/project-memory/shared-memory/只保存长期有效的概览、决策、流程和踩坑;plans/、todos/仅保存仍开放且有明确下一门禁的事项。- 修改
/api/external/v1必须同步 OpenAPI 和契约测试;修改 SpacetimeDB schema 必须同步 migration、表目录、绑定和 schema 检查。 - 旧模板、旧公开作品、旧运行态和旧后端路线不因历史源码或数据表仍存在而恢复入口。
- 新增 Markdown 使用
【标签名】中文标题-YYYY-MM-DD.md命名;不要把个人配置、密钥、Token、日志或构建产物写入文档。