diff --git a/apps/ai-game-creator-shell/src/components/game-distribution/GameDistributionPublishPanel.tsx b/apps/ai-game-creator-shell/src/components/game-distribution/GameDistributionPublishPanel.tsx index 26ed5f613..594e5fe71 100644 --- a/apps/ai-game-creator-shell/src/components/game-distribution/GameDistributionPublishPanel.tsx +++ b/apps/ai-game-creator-shell/src/components/game-distribution/GameDistributionPublishPanel.tsx @@ -254,12 +254,13 @@ export function GameDistributionPublishPanel({ GAME_DISTRIBUTION_DEFAULT_FORK_AUTHORIZATION, ); /** - * 是否随版本公开工程源包(默认勾选)。 + * 作者是否已**主动确认**随本次发布公开整个项目目录(默认不勾选)。 * - * 口径(与产品一致):授权非「禁止共创」时默认帮作者把工程源码一起传上去,他人即可取走; - * 作者可以取消——取消后作品仍照常发布,只是退化为「只能被产物级改编(试玩 + 参考)」。 + * 产品口径:授权非「禁止共创」即允许他人改编,但工程源码的拒绝规则是黑名单——作者的 + * `docs/`、截图、设计稿、笔记等不在任何拒绝集内,会随包原样外发。所以这里不做「默认帮作者 + * 上传」,而是要求作者确认后才能上传;不确认则作品照常发布,只是退化为「只能被产物级改编」。 */ - const [includeProjectBundle, setIncludeProjectBundle] = useState(true); + const [projectBundleConfirmed, setProjectBundleConfirmed] = useState(false); const [busy, setBusy] = useState(false); const [error, setError] = useState(''); const [result, setResult] = useState( @@ -772,9 +773,8 @@ export function GameDistributionPublishPanel({ publicationState === 'update' ? (publicationBinding?.revision ?? null) : null, - // 只在「授权已开放但作者取消勾选」时显式关掉工程源包上传;其余情况由原生按 - // 「授权非禁止即上传」判断,避免面板与原生各写一套默认值。 - ...(forkAuthorization !== 'forbidden' && !includeProjectBundle + // 只有作者主动确认后才让原生上传工程源码;未确认时显式关掉,作品照常发布。 + ...(forkAuthorization !== 'forbidden' && !projectBundleConfirmed ? { includeProjectBundle: false } : {}), }); @@ -971,27 +971,38 @@ export function GameDistributionPublishPanel({

{forkAuthorizationLocked ? '共创授权只在首次发布时生效;上架后只能在网页端「我的作品」单向提升。' - : '开启后可被他人复刻改编(仅能拿到已构建成品,用于试玩与参考);上架后只能单向提升,不能撤销。'} + : '授权非「禁止共创」即允许他人改编(没有单独的源码可见性开关);是否随本次发布把工程源码一起交出去,由下面的确认决定。上架后授权只能单向提升,不能撤销。'}

{/* - 工程源码是否随版本公开:授权非「禁止共创」时才有意义(禁止共创谁也取不走)。 - 默认勾选,且必须把「不可撤销」说清楚——源码一旦公开就无法收回。 + 工程源码外发是**知情同意**:工程源包的拒绝规则是黑名单,作者的 docs/、截图、 + 设计稿、笔记等不在任何拒绝集内,会随包一起对任何登录用户公开。因此这里不是 + 一句免责声明,而是必须由作者主动确认的动作(默认不勾选,不勾选就不上传源码)。 */} {forkAuthorization !== 'forbidden' && !forkAuthorizationLocked ? ( ) : null} + {forkAuthorization !== 'forbidden' && !forkAuthorizationLocked ? ( +

+ 不勾选则本次不上传工程源码:作品仍可正常发布,但他人只能拿到已构建成品试玩与 + 参考,不能直接重新发布。 +

+ ) : null}