Skip to content

Release 4.9.1: export and upload games without a server for every Summer app - #247

Merged
frozaken merged 1 commit into
mainfrom
claude/cli-hostless-bundles
Oct 28, 2026
Merged

frozaken merged 1 commit into
mainfrom
claude/cli-hostless-bundles

Conversation

@frozaken

Copy link
Copy Markdown
Contributor

Resume: cd /Users/marcusteller/repos/summer/summer-platform && claude --resume 4d36a3bb-eb00-4b06-99e5-f796c3fe3b03, "android"

Why

The platform takes these exports (summer-platform #3385, #3386, live in production; staging e2e on 2026-10-28 reached ready with macOS and Windows checks passing), but the CLI refused them before upload:

  • summer engine export-game wrote a valid summer.bundle.v2 .zip without a server and then answered invalid_input / bundle_invalid ("always holds config/summer.build.json"); store.upload_file refused the same file.
  • summer_publish_build answered platforms_unsupported for a game without a server on macOS or Windows, and the export warned "the store runs games without a server on iPhone and Android only".

What changes

  • readSummerBundle: a v2 bundle without a server may omit config/summer.build.json (docs/build-publications.md, "summer.games bundle layout"). A bundle with a server still needs it, v1 or v2.
  • summer_publish_build: a game without a server declares the bundle's platforms Summer has an app for: android, ios, macos, web, windows, mirroring gameplatforms.ClientTargets. It answers platforms_unsupported only when none is left (a Linux-only export, which the platform refuses with template_execution_unsupported). It never reads a hostless bundle's summer.build.json, so the source-build one-platform rule does not apply.
  • summer_export_game: the phones-only warning is gone.
  • Copy: the summer_export_game description and guide, the export-and-ship, release-checklist, launch-ready and release-readiness skills, and the MCP tools reference.
  • Version 4.9.1: package.json, the lockfile, CHANGELOG.md and the generated manifests via npm run generate:registry. Not published to npm.

go-live.ts keeps env_production. That is the game's player environment id in every platform deployment. The CLI picks staging or production through the gateway (SUMMER_GATEWAY_URL / ~/.summer config), so there is nothing to switch.

Tests

  • summer-bundle.test.ts: reads a hostless v2 bundle without the build file, with all four app platforms. It still refuses a hosted v1 or v2 bundle without it.
  • publish-build.test.ts: uploads a hostless v2 bundle without the build file and declares its targets. It uploads a hostless macOS+Windows bundle without warnings and with both checks passing. It declares only platforms with a Summer app and refuses a Linux-only export before any POST.
  • export-game-targets.test.ts: a hostless macOS+Windows export has no warning.
  • Locally: vitest run src/core/capabilities/ src/mcp/tools/descriptor-parity.test.ts src/mcp/tool-guides.test.ts scripts/ passed (62 + 4 files). tsc --noEmit and validate:library are clean. generate-registry --check shows no drift.

🤖 Generated with Claude Code

…mer app

summer.bundle.v2 exports without a server may omit config/summer.build.json
(summer-platform #3385); readSummerBundle no longer refuses them, and a
hosted bundle without it is still refused. summer_publish_build declares a
hostless bundle's platforms that Summer has an app for (android, ios, macos,
web, windows; gameplatforms.ClientTargets) instead of refusing macOS and
Windows, and summer_export_game drops its phones-only warning. The export
tool description, skills and MCP tools reference say the same. Bumps
package.json, package-lock.json and the generated manifests to 4.9.1.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@frozaken
frozaken merged commit 4db10ef into main Oct 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant