Skip to content

0.7 Release Testing

Nick Hamze edited this page Jul 21, 2026 · 2 revisions

SwanSong 0.7 Release Testing

SwanSong 0.7 should feel like the same welcoming player with a much tougher shell. This checklist concentrates on the new boundaries. Use only games, projects, manuscripts, cartridges, and saves you own or are authorized to use.

Expected app identity: SwanSong 0.7.0 (13).

The joyful path

  1. Update from the previous stable release and confirm the library, artwork, saves, controller map, and recent games remain intact.
  2. Open a horizontal game, a vertical game, Time Ribbon, and a visual save state. The isolated engine should be invisible during normal play.
  3. Open Translation Lab, Studio, Story Forge, Homebrew, and Cartridge Tools. Each workspace should remember only folders you explicitly selected.
  4. Open Privacy & Trust and make sure every network and local-control choice is understandable before you click it.

Isolation and recovery

  • Confirm the packaged player launches its sandboxed engine service and still creates a valid state, preview, persistence file, and audio window.
  • Run Scripts/check-isolated-engine-service.sh against the Developer ID app. It must finish quickly with durable meaningful-video evidence; a debug-only screenshot is not a valid substitute.
  • Interrupt two controlled launches. SwanSong should offer Safe Mode on the next launch without moving or deleting the library or saves.
  • In Safe Mode, confirm controllers, local automation, background update work, restored projects, and an initial game stay asleep. Restart Normally must restore the ordinary launch on the next run.

Local automation

  • Keep Developer Tools and local control off: no SwanSong socket should exist.
  • Enable both and restart the client. Status and the documented bounded tools should work without a Keychain or password prompt.
  • Wrong-user or unsigned clients, old timestamps, repeated nonces, unsupported versions, and messages over one megabyte must fail closed.
  • Turn local control off. The socket must close and disappear immediately.

Private help

Create a Support Bundle and inspect every file. Versions, settings, component hashes, and source-free diagnostics are allowed. Games, saves, states, screenshots, manuscripts, project contents, account information, and private paths are not.

Translation evidence

  • Run a mixed-case Capture Intake name and confirm the authorized name and real toolkit receipt use the same lowercase canonical form.
  • Probe a tiny rectangle with components:["raster"]. Private evidence may retain executed-read and mapper context and every outside consumer sharing a range. MCP may return only geometry, counts, hashes, and completeness.
  • An ambiguous or overflowing lineage must say incomplete instead of guessing.

Release trust

  • Confirm Developer ID signature, notarization ticket, staple, Gatekeeper acceptance, universal architectures, privacy manifest, sandboxed engine entitlement, and signed MCP helper.
  • Verify the app ZIP, exact source archive, SPDX SBOM, release manifest, and three-entry checksum file as one release set.
  • Verify GitHub's artifact and SBOM attestations, then test the critical Sparkle update from the previous stable build and the no-update result on 0.7 itself.

For a report, create the privacy-safe Support Bundle and describe what you saw. Never attach a game, save, state, screenshot, private project, manuscript, or Translation Lab evidence to a public issue.

Clone this wiki locally