Skip to content

v0.1.1

Choose a tag to compare

@reubenbijl reubenbijl released this 15 Aug 12:17
· 3 commits to main since this release

Fixed

  • async_notify silences the piano before restoring the previous volume, so a notification
    that outlives wait_timeout no longer blasts its tail at the restored — usually louder —
    volume while the restore commands are in flight. The stop only fires once the notification
    has actually taken over the sequencer, so a rejected play command cannot silence whatever
    was already playing.
  • MasterState and PlaybackSnapshot tolerate master.json blocks that are not objects,
    degrading to absent fields instead of raising a bare AttributeError.
  • The doorbell example escapes device-supplied song titles before printing them, closing a
    terminal escape-sequence injection from a hostile device.

Changed

  • The README quickstart is copy-paste runnable, and a Security section states the trust
    model: plaintext, unauthenticated HTTP on a trusted LAN.
  • CI, pre-commit and the contributor docs type-check examples/ alongside the package.

Removed

  • Unused constants PATH_DESCRIPTION, TEST_CHORD_SECONDS and PREFIX_TO_PLAYLIST_GROUP
    (none were exported; the latter's values had no provenance). The "s"my_songs
    prefix mapping is now commented as inferred rather than observed.