Skip to content

v2.3.3 - Performance, Command Palette & Atomic Updates

Choose a tag to compare

@pumni pumni released this 15 Jul 22:15

Performance

  • Optimized orchestration dispatch and memory usage, cutting per-song working-set growth and reducing RSS memory during long playbacks.
  • Released per-song resources and unused memory back to the OS after playback, stabilizing the footprint across repeated sessions.
  • Hardened the real-time dispatch path with power throttling management and residual bias handling so input timing stays deterministic under load.

Features

  • Rebuilt the command palette with modern navigation and localized the UI to English; added a manual update check.
  • Implemented robust atomic updates with persistent version tracking and a safe manual fallback, plus auto-apply update configuration and status indicators.
  • Added an update settings modal and silent background update checks.
  • Introduced the MetadataHandle interface and refactored app state management around it.
  • Added the PickerScreen for song selection and configuration.
  • Added an example configuration file to document application settings.

Telemetry & Diagnostics

  • Extended BackendHealth with keys_dropped and chord_split_events, plus a retain_records_after_save option to preserve telemetry records post-save.
  • Enhanced send diagnostics to track dropped and retried keys; added abort-reason telemetry and focus-input lifecycle tests.

Fixes

  • Fixed modal focus leakage from CommandModal dismiss callbacks.
  • Restored search match highlighting in the song picker.
  • Escaped Rich markup and consolidated duplicate CSS in the footer.

Build & Tooling

  • Added uv env config, free-threaded wheel audit, and stdlib prune to the release pipeline.
  • Added the packaging dependency and centralized versioning logic across pyproject.toml, uv.lock, and _version.py.