Changelog

Pulled straight from the project's CHANGELOG.md. The format follows Keep a Changelog; versions follow SemVer.

Changelog

All notable changes to Bòcan are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

2.5.0 (2026-08-04)

New: Library Summary

Open Tools → Library Summary (⌘⇧Y) for six tabs that tell you the truth about your music collection. Everything is computed on your Mac, from data Bòcan already keeps. Nothing is sent anywhere.

Also in this release: fixed a bug where certain FLAC files (ones missing a length header) would fail analysis and could end playback instantly.

### Added

### Fixed

2.4.0 (2026-07-30)

### Added

### Fixed

### Changed

2.3.1 (2026-07-19)

### Fixed

2.3.0 (2026-07-19)

This one adds a new card-grid view mode to Artists, Genres, and Composers, and adds a new “View” menu to switch between the list and card-grid modes. The card-grid mode shows album art for each artist, genre, or composer, and lets you browse their details by clicking on the album art.

### Added

### Fixed

### Changed

2.2.0 (2026-07-18)

This one’s a community release: half of what’s below started life as a sharp-eyed issue or a pull request from users. Thank you both! THIS is why I make these things open source.

Smart playlists learned to sort. The Sort By setting in the rule editor now actually orders the playlist (it was being quietly thrown away before, and sorting by Artist or Album could even error out). Better still, sorting is no longer a single choice: build an ordered list of sort keys with priorities, like artist, then track number, then title, each ascending or descending. Track Number is a new sort key, and the column headers in a smart playlist’s track list are now clickable for on-the-fly re-sorting.

Regular playlists too, without losing your order. Click any column header in a manual playlist to browse it sorted. Your hand-arranged order is kept safe underneath: a Playlist Order button snaps right back to it, and drag-to-reorder politely pauses while a column sort is active so your saved order can never be scrambled.

Compilations stay together. Thanks to a great report from @lukesutton (#362): a compilation with no Album Artist tag used to shatter into one album per track artist. Files flagged as compilations now group under a single “Various Artists” album, and if your library was already split, it heals itself automatically on the next scan. No manual cleanup needed.

Clicking an artist works again. @0gnev tracked down exactly why clicking a row in the a view sometimes did nothing (#360) and sent a tidy fix, regression test included.

The scrubber stays put when you pause. Also @0gnev (#361): a quick play-then-pause could leave the progress bar showing a stale position, or zero. The paused position is now captured precisely, so playback resumes exactly where the scrubber says it will.

And a peek ahead: @lukesutton’s idea to browse Artists, Genres, and Composers as album-art card grids (#363) is fully specced and on the list for 2.3.0.

### Added

### Fixed

2.1.0 (2026-07-13)

### Added

### Fixed

2.0.0 (2026-07-12)

⚠ BREAKING CHANGES

This isn’t really breaking changes, but I’m building a free, open source Android companion and its pairing and sync protocol requires all track and episode files to have a content hash stored in the database. This release adds that content hash to all tracks and episodes, and adds a new sync_meta table to store the sync manifest generation state. If you are upgrading from v1.17.1 or earlier, Bòcan will automatically backfill all of your track and episode hashes in the background, and will also create the new sync_meta table.

Bòcan music will let you sync some or all of your music to you phone, let you play it in your car via Android Auto, and let you listen to your podcasts on the go. The sync protocol is end-to-end encrypted, and uses mutual TLS with a self-signed certificate to authenticate the server to the client. The Mac side generates a pairing code that you enter into the phone, and the Mac then generates a permanent key that is stored in the Keychain. The client can then use this permanent key to authenticate to the server without having to enter the pairing code again.

### Added

### Fixed

1.17.1 (2026-07-06)

### Fixed

1.17.0 (2026-07-06)

### Added

1.16.1 (2026-07-05)

### Fixed

1.16.0 (2026-07-05)

This release contains a lot of fixes for the metadata editor, including making sure that the cover art you apply to an album actually replaces the existing art, and that the track list shows the new art. It also makes sure that lyrics are actually written to disk when you choose “Embed in file”, and that stored lyrics are shown in the editor for non-playing tracks and in the Get Info lyrics tab.

### Added

### Fixed

1.15.0 (2026-07-01)

I’ve gone through the entire UI and made sure that all the browse lists (Albums, Artists, Genres, Composers, and Podcasts) now restore their scroll position when you return to them. You can even go into Artist view, then into an Album, and when you go back to the Artist view, it will restore your scroll position in the album list. This latter one was mostly a problem for Artists with eleventy thousand albums. I’m looking at you - The Beatles.

I’ve also added sort choosers to all grids and lists, so you can sort by name, date added, or other criteria. Finally, I’ve fixed a small UI issue where the visualizer toggle icon was too similar to the Identify Track icon.

### Added

### Fixed

1.14.1 (2026-06-28)

### Fixed

### Changed

1.14.0 (2026-06-28)

Many thanks to @go1968 and @rjp for their contributions to this release, which stops us loosing the existing song list, adds a sort-order chooser to the Albums grid, restores the album-grid scroll position on return from an album, and splits Play Album / View Album in the album grid.

### Added

### Fixed

1.13.0 (2026-06-28)

### Added

### Fixed

### Changed

1.12.1 (2026-06-23)

### Fixed

1.12.0 (2026-06-23)

Fixing a few podcast bugs, and importantly added a new Podcasting 2.0 feature podcast:podroll which shows a list of recommended podcasts at the top of a show’s show notes. This is a new namespace in the podcasting spec, and Bòcan now parses and persists these recommendations.

### Added

### Fixed

1.11.0 (2026-06-21)

Added podcast support to Bòcan, including subscriptions, episode downloads, transcripts, show notes, and playback. The Podcasts sidebar shows subscribed shows with unread counts and artwork, and the search sheet lets you find new shows via iTunes Search and Podcast Index. Each show has a detail sheet with a list of episodes, and you can download episodes for offline listening or stream them directly. The Now Playing view now supports podcasts with chapter markers and skip intervals.

### Added

### Fixed

### Changed

1.10.0 (2026-06-14)

Bòcan 1.10 moves the entire visualizer engine onto Metal, so every frame is drawn on the GPU and stays buttery smooth even on the busiest passages. Six visualizers now ship in the box: classic Spectrum Bars and Oscilloscope alongside four new ones, the scrolling Cascade spectrogram, the beat-rippling Halo, a frequency-warped Starfield, and the slow-burn Nebula. Cycle modes and color palettes right inside the visualizer, and let the music paint the window.

### Added

### Fixed

### Changed

1.9.0 (2026-06-09)

### Added

### Fixed

1.8.0 (2026-06-08)

### Added

### Fixed

1.7.1 (2026-06-02)

### Fixed

1.7.0 (2026-06-02)

This has been a hairy one. I’ve removed the Airplay feature as it didn’t work, and to make it work, I’d have had to entirely re-write the playback engine. You’ll have to just rely on Bluetooth I guess. On a more positive note, I’ve added a Logging Console under Help if you’d like to see the internals of how the app runs. Also fixed showing album art via the Dock for any Subsonic clients you may use.

### Added

### Fixed

1.6.0 (2026-06-01)

This release is heavily laden with fixes and minor improvements after a running a complex audit against the codebase. Of note is a redesigned settings panel.

### Added

### Fixed

### Changed

1.5.0 (2026-05-27)

### Added

### Fixed

1.4.0 (2026-05-25)

This release adds Subsonic / Navidrome / Airsonic servers as first-class sources alongside your local library. Federated search across every server, per-server status dots, offline banners with one-tap retry, and ⌘⇧1–⌘⇧9 to jump straight to a server.

### Added

### Fixed

### Changed

1.3.1 (2026-05-24)

### Fixed

1.3.0 (2026-05-21)

### Added

### Fixed

1.2.1 (2026-05-20)

### Fixed

1.2.0 (2026-05-18)

### Added

### Fixed

1.1.0 (2026-05-16)

### Added

### Fixed

1.0.1 (2026-05-15)

### Fixed

1.0.0 (2026-05-13)

⚠ BREAKING CHANGES

### Added

### Fixed

0.12.0 (2026-05-12)

### Added

### Fixed

0.11.0 (2026-05-11)

### Added

### Fixed

0.10.0 (2026-05-11)

### Added

### Fixed

0.9.4 (2026-05-11)

### Fixed

### Changed

0.9.3 (2026-05-10)

### Fixed

0.9.2 (2026-05-10)

### Fixed

0.9.1 (2026-05-10)

### Fixed

0.9.0 (2026-05-10)

### Added

### Fixed

0.8.0 (2026-05-10)

### Added

### Fixed

0.7.0 (2026-05-09)

### Added

### Fixed

### Changed

0.6.0 (2026-05-07)

### Added

### Fixed

0.5.1 (2026-05-06)

### Fixed

0.5.0 (2026-05-06)

### Added

### Fixed

0.4.0 (2026-05-04)

### Added

### Fixed

0.3.0 (2026-05-04)

### Added

### Fixed

### Changed

0.2.0 (2026-05-01)

### Added

### Fixed

### Changed

[Unreleased]

Added

Changed

Fixed

Removed