Skip to content

0.3 Beta Testing

Nick Hamze edited this page Jul 31, 2026 · 3 revisions

0.3 Beta Testing

Test only game and homebrew images you own or are authorized to use. Never attach ROMs, saves, original firmware, private screenshots, audio captures, or Translation Lab evidence to a public report.

Primary test areas

  • record an exact frame/input plan into route-v3 and confirm its native checkpoint is stable across repeated replays;
  • run verify-pair against Original and Patched, then confirm both immutable Capture Intake manifests exist, remain distinct, and are paired to the same route without exposing private game bytes;
  • run capture-plan and confirm its durable private pair includes the exact plan, both native endpoints, both same-replay final audio windows, deterministic bindings, and pixel diff;
  • seal an authenticated Patched persistence handoff, then run separate LOAD and CONTINUE consumer plans from their own clone identities and confirm each starts from clean power without exposing persistence, frames, or audio;
  • probe a native rectangle and confirm only counts and hashes reach MCP while detailed owner evidence stays private in the project;
  • advance an observed-play session across multiple visible steps, stop the MCP host, resume the interrupted plan from boot, and finish through clean-boot proof;
  • inspect pairs, probes, and sessions in the private evidence browser; verify integrity and size, export a source-free summary, and safely delete an inactive artifact;
  • run bounded homebrew playtest plans and inspect both the native frame and final audio window instead of treating command success as a gameplay verdict;
  • enable local MCP, test status/navigation/player control, disable it, and confirm subsequent requests fail;
  • inspect the app icon in Finder and the Dock and the swan icon used by a direct SwiftPM launch;
  • update from 0.2 with Include beta versions enabled and confirm the library, saves, states, preferences, and Translation Lab projects are preserved; and
  • retain normal Open IPL, import, player, controller, Time Ribbon, display, portrait, and relaunch coverage on Apple silicon and Intel.

Automation guardrails

  • record-route requires explicit debug and project-write flags, accepts only a project-contained nonsymlink plan, starts from Original with empty persistence and the fixed proof RTC, and never replaces an existing route.
  • verify-pair accepts only the canonical stored project route, finishes both replays before writing evidence, and emits immutable Original and Patched manifests.
  • probe-rectangle rejects invalid geometry and never returns source addresses, tile or palette values, or writer PCs through MCP.
  • Observed play permits a cumulative plan beyond 12,000 frames, keeps empty persistence and fixed RTC, recovers interruptions only through clean-boot replay, and unloads live state before final evidence.
  • The playtest MCP rejects missing media consent, unsupported or symlinked ROM files, invalid input plans, and plans above its frame bound.
  • Live MCP remains off by default, uses a user-only bearer token, exposes no title or path, and revokes the token when disabled.
  • No MCP or Translation Lab error may return ROM, save, state, persistence, RAM, or unapproved framebuffer bytes.

Expected unavailable features

  • The Homebrew page says Coming Soon and performs no catalog or game download. Use Add From Mac for authorized local homebrew.
  • The Analogue Pocket tool reports that no verified Core release is published and performs no package download or card write.
  • A USB HID device that macOS does not expose through GameController may not appear and is not assigned a guessed raw mapping.
  • MCP is local developer automation, not a public network or remote-control service. Mutating tools still require client approval.

Feature freeze

The 0.3 beta feature set is frozen after the recovery, private evidence retention, low-disk, and provenance-fixture gates above. Remaining 0.3 work is limited to release-blocking fixes, test corrections, documentation, signing, notarization, and publication; new subsystems move to a later release.

Reporting checklist

  1. Confirm SwanSong 0.3.1 (5) in About SwanSong.
  2. Record Mac model, macOS version, architecture, and controller when relevant.
  3. State whether the issue reproduces with an open-source fixture.
  4. Distinguish Reached Video from an end-to-end Works verdict.
  5. For route/evidence failures, include the command, plan schema, frame count, project hardware, sanitized error, and whether output was created. Do not publish project paths, captures, manifests, digests, or evidence IDs.
  6. For MCP failures, state whether SwanSong and the client were restarted, whether local control was enabled, the tool name, and the sanitized error. Never share the bearer token.
  7. For updater issues, include installed and offered version/build, channel, opt-in settings, and exact visible error. Do not attach a rejected archive.
  8. Report expected and observed behavior without attaching private game data.

See Local MCP and Automation, Translation Lab, Playing and Library, Analogue Pocket SD Setup, Gamepads, Open IPL, Homebrew Catalog, and App Updates for exact boundaries.

Clone this wiki locally