-
Notifications
You must be signed in to change notification settings - Fork 0
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).
- Update from the previous stable release and confirm the library, artwork, saves, controller map, and recent games remain intact.
- Open a horizontal game, a vertical game, Time Ribbon, and a visual save state. The isolated engine should be invisible during normal play.
- Open Translation Lab, Studio, Story Forge, Homebrew, and Cartridge Tools. Each workspace should remember only folders you explicitly selected.
- Open Privacy & Trust and make sure every network and local-control choice is understandable before you click it.
- 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.shagainst 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.
- 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.
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.
- 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.
- 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.
Start here
Create and translate
Homebrew and hardware
Build and release
- Architecture and Source Ownership
- Build and Test
- Signing and Notarization
- Release Gates
- 0.9 Release Testing
- 0.8 Release Testing
- 0.7 Release Testing
- 0.6 Release Testing
- 0.5 Release Testing
- 0.4 Beta Testing
Help and policies