Skip to content

v0.5.8.3 - stage mode fullscreen sticky

Choose a tag to compare

@ntworm ntworm released this 10 Jul 15:53

fix: stage mode fullscreen sticky

Stage mode was being abandoned whenever the browser dropped fullscreen
involuntarily (iOS edge swipe, native confirm dialog, etc.). The
fullscreenchange listener called render(false) which removed the
body.stage-mode class, making the phone fall back to the regular UI.

What changed

  • Extracted stage-mode logic into its own ESM module: static/phone-v3/stage-mode-controller.js
  • Re-arms fullscreen with debounce on involuntary exit
  • Tracks an explicit userExited flag so the re-arm path does not fight an explicit exit() call
  • Falls back to inline legacy behavior when the controller script is not loaded (preserves existing unit tests that load controls.js in a vm.runInNewContext sandbox)

Tests

  • 6 new tests for the stage-mode controller, runnable under node --test without jsdom
  • 4 new stress tests for the LFO/stutter host motor (60s @ 5Hz, concurrent LFO+stutter, CPU budget, live config change, endurance)

Asset

Ableton-RC-Surface-0.5.8.3.ablx — single .ablx install via Extensions Manager.