-
v0.7.0
StableCI / check (push) SkippedCI / e2e (push) SkippedBuild & publish the Android APK / apk (push) Successful in 1m50sBuild & publish Arch package / arch-package (push) Successful in 2m44sAttach the desktop build to the release / linux (push) Successful in 1m17sSync Homebrew formula / sync-formula (push) Successful in 10sreleased this
2026-08-26 16:03:22 +00:00 | 0 commits to main since this release0.7.0 (2026-08-26)
Features
- android: a name is not a link on a phone, the menu carries it (8de412c), closes #63 #67
- android: the phone's "More" is a bottom sheet (52d095e), closes #60 #71
- android: the tap highlight goes, a press state replaces it (3aa2a43), closes #54
- ui: warm album art ahead of the scroll (3479ae8), closes #65
Bug Fixes
- metadata: read a WAV's tags out of its RIFF id3 chunk (c56eae2), closes #104
- queue: name the queue header's two older actions (b5bdba2), closes #170
- riff: grow a chunk buffer with what arrives (a113b7b), closes #104 #216
- ui: the phone's context sheet says when it scrolls (02e2251), closes #60 #207
- ui: the phone's nav sheet says when it scrolls (20c3376), closes #71 #210
Downloads
-
v0.6.0
StableCI / e2e (push) Successful in 9m28sCI / check (push) Successful in 2m31sBuild & publish the Android APK / apk (push) Successful in 1m27sBuild & publish Arch package / arch-package (push) Successful in 2m39sAttach the desktop build to the release / linux (push) Successful in 58sSync Homebrew formula / sync-formula (push) Successful in 6sreleased this
2026-08-22 05:54:47 +00:00 | 30 commits to main since this release0.6.0 (2026-08-22)
Features
- android: route slog to logcat (168e588), closes #52 #160
- android: swipe a track row right to queue it (4e66775)
- android: tap to play, hold to select (76e1c44), closes #63 #67
- android: the touch model reaches the other three lists (29feb4b), closes #60 #63
- player: count what the ring buffer misses (842fe47), closes #135 #160
Bug Fixes
- explore: resolve pending release MBIDs against the real table (d034d6e), closes #189
- player: give Now Playing a layout that survives a short screen (75a24f9), closes #172
- player: give the seek bar a thumb-sized hit area (ec64dbd), closes #56 #51 #187
- settings: raise every Settings control to the touch floor (2100f00), closes #56 #195 #186 #186 #27
- shell: make the header's touch targets cost no width (0d33166)
- shell: raise the page header's controls to the touch floor (6a5a3c3), closes #56 #187 #57 #187 #186
- system: give the process a temp directory that exists (30c6b66), closes #190
- ui: raise the last controls below the touch floor (4f628b1), closes #195 #186 #186
Downloads
-
v0.5.0
StableCI / check (push) SkippedCI / e2e (push) SkippedBuild & publish the Android APK / apk (push) Successful in 1m29sBuild & publish Arch package / arch-package (push) Successful in 2m37sAttach the desktop build to the release / linux (push) Successful in 56sSync Homebrew formula / sync-formula (push) Successful in 8sreleased this
2026-08-21 16:47:46 +00:00 | 57 commits to main since this release0.5.0 (2026-08-21)
Features
- jobs: let a panel answer for every kind, at either density (502b814)
- player: draw no volume control where there is no volume (2be6fb3), closes #64 #172
- player: give the transport a context, and thumb-sized controls (218e4f5), closes #56 #56
- player: leave the volume to the system where the system owns it (867ced8)
- player: show progress on the phone's bar border (f59490b), closes #59 #58
- player: slim the phone's mini player to three controls (32d4dc2), closes #55 #59
- queue: give an overlaid queue a place in the back stack (de2cb26), closes #60 #55
- shell: draw a context menu where it fits, not where it is anchored (9aaa8be)
- shell: make search a button and a modal where searching applies (b801fa5)
- shell: put every menu in the app through the one surface (9e7e7ce)
- shell: show background jobs in the phone's layout, not a popover (23f5a0c), closes #57 #62
- shell: take the top bar out of the phone's layout (1ab767a), closes #62 #57
Bug Fixes
- explore: scroll the album page as one on a phone (ea3edde), closes #66
- header: let the count yield before an action is clipped (47bd9ef)
- player: give the seek bar's interval one owner (fe1fbef), closes #164
- queue: draw the scrim only where it can be tapped (f126dd7), closes #55 #171
- queue: size the queue screen's way out for a thumb (a70a7ed)
- settings: give the library selection a home that is not the top bar (ac8f86e), closes #148
- ui: keep a touch-only affordance reachable, or absent (a72d1f6), closes #68 #68 #60 #137
- ui: make the touch pen a corner chip, not a scrim over the art (d78830a)
Downloads
-
v0.4.0
StableCI / check (push) SkippedCI / e2e (push) SkippedBuild & publish the Android APK / apk (push) Successful in 1m27sBuild & publish Arch package / arch-package (push) Successful in 2m43sAttach the desktop build to the release / linux (push) Successful in 57sSync Homebrew formula / sync-formula (push) Successful in 6sreleased this
2026-08-20 19:46:35 +00:00 | 109 commits to main since this release0.4.0 (2026-08-20)
Features
- autotag: answer whether an album has a confident match (9118c16)
- autotag: name the confidence tier two features have to share (fe67849), closes #28 #90 #90
- config: make the shell's destinations configurable (a392670)
- explore: carry the local row id on a top result (41c41a8)
- explore: demote the album page's version selector to a disclosure (905654c), closes #17
- explore: mark what is not owned, everywhere it can be shown (88fc50a), closes #38
- explore: offer the autotag match on the album page (b5d70ac), closes #28
- jobs: show background work where the work is started (f3d1ae1)
- library: answer album completeness for a screenful in one query (4bf59b4)
- now-playing: plain text instead of links in the phone mini player (c518ac8), closes #61
- player: centre the transport and show the volume inline (dc8db15), closes #154 #23 #42
- settings: scan from Settings, and watch every job in place (12af6ec)
- shell: draw only the destinations the user kept (43d78a7), closes #72
- shell: global back and forward in the top bar (018d857), closes #6
Bug Fixes
- android: install and launch the package the APK declares (8d2109b), closes #159
- android: keep the Go app alive when the activity is destroyed (d714bd7), closes #52
- android: point the emulator script at the built APK's id (4b392cb), closes #159
- android: run main() once per process, not once per activity (d64b069), closes #52
- e2e: ask the fixture for a track that can navigate (2365806), closes #152 #156
- e2e: the third spec that located a disclosure by class (e4efec6)
- explore: clear in_library on a row that has no local id (23f3d4b), closes #118
- explore: gate playback on the same answer the row is drawn from (10eca35)
- home: gate the card play button on the device having hover (977f624), closes #68
- page-header: collapse the actions that do not fit into a menu (f967916), closes #69
- player: end the stream when the audio source stops producing (282dab4), closes #122
- player: put the phone's Now Playing button above the artwork (ffc9490), closes #150
- player: stop reporting one track's state against another (2b84bc5), closes #123 #123 #123 #124 #125 #126 #127 #123 #124 #125 #126 #127
- queue: overlay the content instead of taking its width (4025106), closes #55 #24
- scripts: let issue.sh claim work on a write:issue-only token (087c69a), closes #130
- scripts: refuse to start dev-headless on a port somebody else holds (8d46c4a), closes #119
- scripts: report only what generation changed, not the worktree (f714fe5), closes #131
- shell: give the top bar a measured fit at every width (ae85df0), closes #24 #148 #143
- shell: let the landing page replace the launch entry (603728a), closes #142
- shell: publish the active view, so both navs follow the back path (f186915), closes #72
- ui: keep the count in a partial badge that can act (19c68d7)
- ui: stop a closing dialog answering the next question (21b303b)
Refactoring
- shell: retire the Jobs destination (8efed2d)
Downloads
-
v0.3.1
StableRelease / release (push) Successful in 32sBuild & publish Arch package / arch-package (push) Successful in 2m35sAttach the desktop build to the release / linux (push) Successful in 56sSync Homebrew formula / sync-formula (push) Successful in 6sCI / e2e (push) Successful in 6m17sCI / check (push) Successful in 3m8sBuild & publish the Android APK / apk (push) Successful in 1m29sreleased this
2026-08-19 01:37:34 +00:00 | 200 commits to main since this release0.3.1 (2026-08-19)
Refactoring
Downloads
-
v0.3.0
StableRelease / release (push) Successful in 33sBuild & publish Arch package / arch-package (push) Successful in 2m45sAttach the desktop build to the release / linux (push) Successful in 1m2sSync Homebrew formula / sync-formula (push) Successful in 7sCI / e2e (push) Successful in 6m18sCI / check (push) Successful in 2m25sBuild & publish the Android APK / apk (push) Successful in 1m34sreleased this
2026-08-19 01:10:34 +00:00 | 202 commits to main since this release0.3.0 (2026-08-19)
Features
Downloads
-
v0.2.3
StableRelease / release (push) Successful in 30sCI / e2e (push) Successful in 6m8sCI / check (push) Successful in 2m23sBuild & publish the Android APK / apk (push) Successful in 1m25sBuild & publish Arch package / arch-package (push) Successful in 2m31sAttach the desktop build to the release / linux (push) Successful in 54sSync Homebrew formula / sync-formula (push) Successful in 6sreleased this
2026-08-19 00:45:07 +00:00 | 204 commits to main since this release0.2.3 (2026-08-19)
Bug Fixes
Downloads
-
v0.2.2
StableRelease / release (push) Successful in 31sCI / e2e (push) Successful in 6m3sCI / check (push) Successful in 2m22sBuild & publish the Android APK / apk (push) Successful in 1m24sBuild & publish Arch package / arch-package (push) Successful in 2m29sAttach the desktop build to the release / linux (push) Successful in 52sSync Homebrew formula / sync-formula (push) Successful in 6sreleased this
2026-08-18 23:30:31 +00:00 | 207 commits to main since this releaseDownloads
-
v0.2.1
StableRelease / release (push) Successful in 32sCI / e2e (push) Successful in 6m10sCI / check (push) Successful in 2m23sBuild & publish the Android APK / apk (push) Successful in 1m23sBuild & publish Arch package / arch-package (push) Successful in 2m37sAttach the desktop build to the release / linux (push) Successful in 52sSync Homebrew formula / sync-formula (push) Successful in 7sreleased this
2026-08-18 23:05:38 +00:00 | 209 commits to main since this releaseDownloads
-
v0.2.0
StableRelease / release (push) Successful in 33sCI / e2e (push) Successful in 6m10sCI / check (push) Successful in 2m26sBuild & publish the Android APK / apk (push) Successful in 1m26sBuild & publish Arch package / arch-package (push) Successful in 2m36sAttach the desktop build to the release / linux (push) Successful in 56sSync Homebrew formula / sync-formula (push) Successful in 6sreleased this
2026-08-18 16:18:36 +00:00 | 221 commits to main since this release0.2.0 (2026-08-18)
Features
- smartplaylist: let a rule set match any rule, not only all of them (185eb1b), closes #35
- ui: badge an album drag with how many tracks it carries (12e75ee), closes #19
Bug Fixes
- downloads: stop searching a list there is nothing to search with (760021e), closes #37
- explore: stop hiding the request badge until the row is hovered (73dc80b), closes #82 #33
- explore: stop labelling the album tracklist "TRACKLIST" (266e703), closes #9
- explore: tell Lit that a track request changed something (1062b7c), closes #33
- mediacontrols: always send an art URL, even when there is no art (b3556d8), closes #41
- player: stop the seek bar resizing as its clocks count (d6b48fb), closes #13
- queue: stop claiming a queue came from somewhere it no longer does (bf4f352), closes #14
- ui: make the queue button say whether the queue is open (a2ff0ae), closes #26
- ui: stop the album grid eating the year it was sorted by (792e872), closes #29
Downloads