Releases: EnjoyBacon7/cbNP
Release list
cbNP 4.0.3
What's new
Fixes a bug where the app published nothing after launch until its menu bar icon was clicked.
MenuBarExtrabuilds its content lazily, so the startup work inContentView.onAppeardid not run until the popover was opened for the first time. After a launch or a reboot, cbNP held no connection and sent no track updates, while the menu bar icon looked perfectly normal. Startup now happens when the app launches, so it connects and begins publishing on its own.
Install
Download cbNP-4.0.3.dmg, open it, and drag cbNP to Applications.
The app is signed with a development certificate and is not notarized by Apple, so macOS blocks the first launch. Allow it in System Settings > Privacy & Security: open cbNP and dismiss the warning with Done, then scroll to Security, click Open Anyway next to "cbNP was blocked to protect your Mac", and open the app again. Only the first launch needs this.
cbNP 4.0.2
What's new
Internal code cleanup with no functional changes — same behavior as 4.0.1.
- Connection state is now modeled as a typed enum instead of bare strings.
- Simplified the now-playing parsing pipeline (stdlib string splitting, shared field separator, direct payload building) and timer management.
Install
Download cbNP-4.0.2.dmg, open it, and drag cbNP to Applications.
The app is signed with a development certificate but not notarized, so on first launch macOS Gatekeeper may block it. Right-click the app → Open, then confirm.
cbNP 4.0.1
What's new
- Album artwork now shows in the popover header — it was being fetched but never displayed.
- Header redesigned: artwork thumbnail with the track title, artist, and connection status stacked beside it (music-note placeholder when no art is available).
Install
Download cbNP-4.0.1.dmg, open it, and drag cbNP to Applications.
The app is signed with a development certificate but not notarized, so on first launch macOS Gatekeeper may block it. Right-click the app → Open, then confirm.
cbNP 4.0.0
First release of the native Swift / SwiftUI rewrite of cbNP (the 3.x line was the Python implementation).
Highlights
- Native macOS menu-bar app (SwiftUI
MenuBarExtra) replacing the PyObjC app. - Now-playing via Apple Music / Spotify (AppleScript) and MediaRemote adapter.
Security
- Reject cleartext
ws://for non-loopback endpoints; remote endpoints must usewss://so the auth token is never sent in the clear. - Preferences file (
Pref.json) written with0600permissions since it holds the token.
Reliability / bug fixes
- Preferences load robustly: each field decoded independently with fallbacks, reading both
mediaPlayerand legacymedia_playerkeys, so one bad key no longer wipes all settings. error.lognow rotates past 512 KB instead of growing unbounded.- Fixed a potential pipe-buffer deadlock when draining the MediaRemote adapter's output.
UI
- Cleaned-up popover: compact interval field, uniform field styling, consistent label column and spacing.
Housekeeping
- Added
.gitignore; stopped tracking per-user Xcodexcuserdata; ignore.env/secrets. - App
MARKETING_VERSIONbumped to 4.0.0.
cbNP 3.0.3
cbNP 3.0.2
cbNP 3.0.1
v3.0.0
Highlights
- Add MediaRemote source using vendored upstream mediaremote-adapter for reliable metadata/artwork on Tahoe.
- Add source filtering for MediaRemote to common music app bundle IDs.
- Improve runtime reliability (config validation, connection lifecycle, quit behavior, token-safe logging).
- Add Tahoe warning in menu bar when source is Music and artwork may be unavailable.
Build
- macOS arm64 DMG attached: cbNP-3.0.0-arm64.dmg
v2.1.0
- Fixed breaking bug stopping application if disconnection occurred on a heartbeat (app behaved correctly on update call disconnect)
v2.0.0
- Fixed breaking bugs linked to erroneous asynchronous implementations
- Modified logging