发布灰度默认关闭:修掉客户端“看得到点不动”与后台看不到 key #482
Reference in New Issue
Block a user
Delete Branch "codex/game-publish-gate-optin"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
解决什么
你反馈的两个现象都是真问题,这个 PR 一次修掉:
gameDistributionPublishEnabled判成 true,客户端就渲染了发布入口。workspaceStatus,而普通项目走DirectProjectChatView时并不渲染工作台状态行,于是「先打开一个项目再发布」「构建失败…」这类信息全都看不见。改成什么
is_game_distribution_publish_enabled_for_user要求 gate 行存在且enabled=true:灰度默认关闭,未登录/无行/enabled=false一律不开放;只有白名单 / 灰度比例 / 用户标签命中才开放。作者写入与新版本激活都按这条判据。is_game_distribution_publish_open:管理员审核激活新版本只看「灰度是否开启」,不会因为审核员不在作者白名单里而被挡住(这是合入后立刻发现的回归,已修 + 有用例)。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_distribution19 passed(含新增game_distribution_publish_open_ignores_author_allowlist_for_activation)、frontend_runtime_config6 passed。check:encoding、check:doc-index、check:rustfmt、全量npm test(400 文件 / 4441 用例)与check:repository-ci -- origin/master HEAD全绿。上线注意
灰度默认关闭是刻意的:合入后到运营在后台把
game-distribution:publish配置并开启之前,作者看不到发布入口、写入口 503;已公开游戏、目录、详情、发行网关、安全下架不受影响。