Releases: pimmesz/Loudini
Releases · pimmesz/Loudini
Release list
Loudini v0.4.1
Fixed
- Safari and other WebKit apps showed as "Safari Graphics and Media" in the
per-app list — the name of macOS's media helper. Loudini now trims that suffix,
so the row reads "Safari". (Two WebKit apps playing at once still share one row;
see the gotcha in the README.) - The landing page now carries the icon formats an inline SVG favicon can't cover
— an Apple touch icon for iOS home-screen bookmarks, and a PNG fallback for
Safari older than 16.4.
Loudini v0.4.0
Added
- The menu shows which version you're running, next to the Loudini name.
Worth knowing when a rebuild has quietly invalidated your permissions. - Update notifications. Loudini asks GitHub once a day whether a newer
release exists, and if so adds a row that opens the releases page. It never
downloads or installs anything by itself. Turn it off with Check for
Updates Automatically in the menu, and nothing is ever requested.
This is the first version that can tell you about an update — 0.3.0 and
earlier have no way to know a new one exists.
Fixed
- Per-app rows showed "helper" instead of the app's name. Browsers and
Electron apps play audio from helper processes, which macOS doesn't report as
applications, so the row fell back to the tail of the bundle id. Loudini now
resolves the parent app, so the row reads "Google Chrome".
Changed
- The update check is the only network request Loudini makes. It is
unauthenticated, sends nothing that identifies you or your machine — the
User-Agent and language headers are pinned so the system can't add your kernel
build or language list — stores no cookies, and is silent when it fails.
Loudini v0.3.0
Added
- Render-stall watchdog — the daemon now watches its own render heartbeat.
If the audio pipeline goes quiet while apps are playing, it tears the tap down
so sound returns to the direct path instead of leaving you in silence, then
rebuilds.status.jsonreportsreason: "render stalled"while it recovers. - Automated tests — 55 contract checks over the control/status file
(scripts/test.sh), run on every push. They pin the invariants that matter:
per-app overrides survive a master-only write, a malformed file keeps the last
good value, gains clamp to 0–100, and a dead daemon can't claimrunning:true. scripts/make-dev-cert.sh— one idempotent command for the stable
"Loudini Dev" signing identity, so TCC grants stop resetting on every rebuild.scripts/bump-version.sh— writes the version to all five files that
carry it, instead of five hand edits.
Fixed
- The menu named the wrong fix for Background Music: the daemon and the menu-bar
app kept separate lists of conflicting apps and had drifted apart. Both now
read one shared list (helper/Conflicts.swift). - Sharing a link to loudini.app showed no preview image, and the page's canonical
URL pointed at the old github.io address.
Changed
- Releases now fail fast. A preflight asserts the five version homes agree, that
no version is hardcoded in the packaging script, and that these release notes
are actually written — in seconds, before the build and Apple's notary queue,
rather than an hour into it. - Re-running a release no longer re-buys work Apple already accepted: a stapled
app is reused when it matches the current sources, and an interrupted DMG
notarization resumes instead of re-uploading.