v0.5.12 2026-03-26 Added a hardened ABS webhook sync path that reuses shared gating for credential/cooldown checks, returns explicit `triggered` or `skipped` reasons, and documents the `APP_INTEGRATIONS__ABS__WEBHOOK_SECRET` deployment path. Added a local ABS playback bridge for result dialogs with server-proxied direct-play audio, user-scope progress sync, global read-only fallback, and inline unsupported handling for non-direct playback sessions. Added optional `APP_INTEGRATIONS__ABS__API_KEY` startup seeding for the shared global ABS credential, and blocked ABS credential PUT/DELETE in UI/API while env-managed key mode is active. Fixed passkeyless/global mode by restoring ABS source toggle + landing CTA visibility, separating account-auth-only settings panes, and persisting anonymous region choice via a CSRF-protected HttpOnly cookie.
v0.5.11 2026-03-25 Added a local changelog dialog behind the shell version note, backed by a container-packaged latest-release snapshot and prepared for a later external feed. Kept the version badge passive when changelog data is unavailable, while making the interactive variant keyboard-accessible and reusing the existing results-state hide behavior. Split Audiobookshelf internal API URLs from browser-visible item links by adding an optional public ABS base URL, dual detail-dialog CTAs, and fail-closed link decoration that avoids leaking localhost or private hostnames to the browser. Fixed Audiobookshelf browse sorting to use source-grounded title and recency metadata, including stable ordering for `title`, `recent`, `oldest`, and `series_order`. Extended ABS holdings snapshots with list-payload metadata such as title ignore-prefix keys, added/updated timestamps, publisher, and truncated plain-text descriptions for the result dialog.