Skip to content

u64deck v1.9.0 — Release Candidate 44

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Jul 13:59

u64deck v1.9.0 Release Candidate 44

v1.9.0 · Release Candidate 44 · fc1e0fb

RC44 is the first public release candidate after RC25. It promotes the hardware-tested RC44 runtime, adds packaging-time build stamping so the Windows executable reports its true build identity, completes the deferred local-Exit hardening, and consolidates the cumulative RC26–RC44 work. Ultimate-control behaviour is the hardware-tested behaviour.

Highlights

  • Honest executable identity. The Windows build now carries a packaging-time build stamp, so the frozen u64deck.exe banner and API report the exact documented build ID. The build workflow refuses to publish unless the frozen executable reports the documented version, release and build.
  • Local-Exit hardening. The loopback-only /api/app/exit endpoint now accepts IPv4-mapped IPv6 loopback correctly, ignores spoofed forwarding headers (proxy_headers=False), schedules shutdown exactly once under concurrent requests, and the Exit control is hidden by default until local availability is confirmed. The executable workflow verifies that an unconfirmed Exit request is rejected with HTTP 403.
  • Cartridge-aware Retro Replay handoff. Mount & Run reads the live firmware Cartridge setting before acting. Retro Replay retains automatic matrix F7 on CIA1-capable devices; on Legacy devices a persistent Screen-Mirror prompt requests the reliable physical C64 F7 instead of an injected key that could open the Freeze Menu.
  • Stale manual-operation protection. Legacy screen-mirror keys and manual Reset/Reboot can no longer sit behind a long Mount & Run and execute against a later cartridge state.
  • Disk-image naming analysis. A read-only analyser (Settings → Search Index & Cache → Analyse Disk-Image Names) groups multi-disk families using constrained, approved rules — never arbitrary regular expressions, never touching files.
  • SID Jukebox refinements. Optional streamed-ending fade with no old-SID return between tracks, a Year filter, clearer Now-Playing presentation, and current-row reveal with ◎ Current.
  • System Health dashboard, Assembly64 disk-swap arming, and connection-ready Settings startup (no raw WinError 10061 on Ctrl+F5).

Cumulative changes since RC25

  • RC26 — inline Mount & Run reset; stale manual-operation protection (2-second admission deadline, Reset/Reboot coalescing); honest Cartridge-boot-menu documentation.
  • RC27 — Settings Ctrl+F5 connection-ready startup; no transient WinError 10061.
  • RC28–RC43 — System Health dashboard and telemetry; cold-start drive status; configurable Jukebox end-grace (0.5 s default) and streamed-ending fade; playlist-first queue; SIDFlow candidate-union fix; Year filter and Now-Playing presentation; Assembly64 first-mount disk-swap arming; terminal -a/-b swap matching; the read-only disk-image naming analyser; and presentation/casing polish.
  • RC44 — packaging-time build stamp with CI identity assertions; full local-Exit hardening; cumulative documentation, tests and line-ending controls for stable cross-platform build IDs.

Retro Replay / Legacy input (honest limitations)

Hardware testing isolated Retro Replay's intermittent Freeze Menu entry to F7 injected through the Legacy KERNAL keyboard buffer. A physical C64 F7 key is reliable, and the CIA1 matrix-input path is unaffected. Legacy cartridge control remains best-effort on the tested C64 Ultimate + Retro Replay combination: allow approximately 3–5 seconds between Reset/Reboot actions and before starting Mount & Run. Other freezer/fastload cartridges have not been comprehensively tested. This behaviour is not present on the CIA1 matrix-input path, where automatic matrix F7 remains available.

Preserved behaviour

Discovery, dual-interface routing, streaming, SIDFlow 0.8.0 download/import/recommendation, SID playback, Mount & Run gating and the frozen discovery files are unchanged. Both canonical dual-interface best-effort README warnings remain verbatim in their required positions, and the Screenshots gallery is unchanged.

Validation

  • 399 tests passed from the source tree and again from a clean extraction of the release ZIP.
  • Python compilation and JavaScript syntax checks passed.
  • Startup and graceful-Exit smoke tests passed from source and clean extraction with exit code 0 and the correct reported identity.
  • Targeted hardening tests pass: IPv4-mapped loopback accepted, spoofed X-Forwarded-For does not change the loopback decision, concurrent Exit schedules shutdown once, and the Exit control is hidden by default.
  • The tagged CI run built the Windows executable and verified, on the real frozen binary, that the packaging build stamp and API/banner report 1.9.0 / Release Candidate 44 / fc1e0fb, the embedded icon resources are present, an unconfirmed Exit returns HTTP 403, and the executable exits cleanly.
  • Canonical u64deck.ico SHA-256 9fb9e41724ba83f15f2f2f1986513cfa49f3b9730895a06a1de2b4e46c90fd5f, six frames, embedded via u64deck.spec; frozen discovery files match DISCOVERY-FROZEN.sha256.

Attribution

SID recommendations are Powered by SIDFlow, created by Christian (Chris) GleissnerSIDFlow, sidflow-data 0.8.0. Recommendation work is local; u64deck uploads no listening activity, ratings, favourites or queue contents.