Releases: 777genius/agent-notifications
Release list
v1.41.0
New Features
Optional session label in notification titles (#134)
New desktop.showSessionLabel setting (default true, so nothing changes for existing installs). Set it to false to drop the [name id] session label from titles and give the branch/folder subtitle the space.
Alacritty click-to-focus on Linux (#121)
Alacritty deliberately sets no TERM_PROGRAM, so clicking a notification used to do nothing. Detection now keys off ALACRITTY_WINDOW_ID and the click raises the right window.
Bug Fixes
Windows: no more console flash, right window across projects (#118, #120)
Toast clicks are now handled by a GUI-subsystem sibling binary (claude-notifications-windows-amd64-focus.exe), so no console window flashes on click. When one process owns several windows (like Windows Terminal's monarch), the window whose title matches the project folder is preferred.
Ghostty: no more jumping to an arbitrary tab (#115, #117)
The cwd fallback selects a tab only when exactly one matches; ambiguous cases fall back to window-level focus instead of switching to a random same-directory tab.
Bootstrap: no more reinstall loop on "unknown" plugin versions (#132, #133)
When Claude Code records the installed version as unknown or empty, bootstrap now verifies the manifest at the recorded install path instead of endlessly reinstalling. Real version mismatches still fail closed.
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.40.1...v1.41.0
v1.40.1
Bug Fixes
Plugin paths resolve without CLAUDE_PLUGIN_ROOT (#107, #109)
Configuration defaults now use the detected plugin root when the environment variable is missing. Partial status overrides keep omitted defaults, explicit empty sounds remain disabled, and literal dollar signs in paths are preserved.
macOS 12 compatibility
All Darwin binaries now target and verify macOS 12.0 instead of inheriting the GitHub runner version.
Windows terminal reliability
Terminal bell ancestor discovery now stops cleanly on cyclic process snapshots, and installer errors consistently direct Windows users to Git Bash.
CI/CD
Release metadata is validated before builds, every platform artifact is smoke-tested before publication, Swift notifier tests run in CI, and GitHub Actions plus Go coverage were updated to current versions.
Documentation and maintenance
Audio backend documentation now matches the implementation, and the bug-report template no longer uses GitHub's reserved None dropdown entry (#110).
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.40.0...v1.40.1
v1.40.0
Highlights
Windows click-to-focus and terminal bell (#36, #94)
Windows notifications can now bring the originating terminal session back into focus, and terminal bell delivery can ring the originating Windows Terminal tab when supported.
Focus-aware and delayed desktop notifications (#93)
Added notifyOnlyWhenUnfocused and notifyDelaySeconds so desktop notifications can wait, re-check focus, and skip notifications only when the current Claude Code session is already focused. Webhook delivery is unaffected.
Bug Fixes
Windows bootstrap no longer silently installs Linux binaries from WSL (#98)
The bootstrap and binary installer now detect WSL, stop before touching plugin or download state, and tell Windows users to rerun from Git Bash. Intentional WSL installs can opt in with CLAUDE_NOTIFICATIONS_ALLOW_WSL=1.
Hook event detection is safer (#97)
Subagent stops are now detected from the Claude hook event type instead of inferring from transcript_path, avoiding unsafe misclassification in edge cases.
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.39.4...v1.40.0
v1.39.4
Bug Fixes
Windows toast and sound reliability (#90, #91)
Windows notifications now keep playing the configured sound even when the toast backend returns a doc.LoadXml(tmpl) false-positive. The Windows beeep path also pins the OS thread around the WinRT/COM call and downgrades successful PowerShell fallback errors to warnings instead of failed desktop notifications.
Konsole click-to-focus on KDE (#92)
Konsole detection now uses KONSOLE_VERSION and KONSOLE_DBUS_SESSION, so Linux focus helpers search for the correct konsole window class on KDE and Wayland.
Verification
- Ubuntu CI, macOS CI, and Windows CI passed on the release commit.
- Release workflow built Go binaries for macOS, Linux, and Windows.
ClaudeNotifier.app.zipwas built and uploaded with the release assets.- Release binary smoke tests passed on Ubuntu, macOS, and Windows runners.
Contributors
Thanks @professor-k and @Loveshy1 for the focused fixes in this release.
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.39.3...v1.39.4
v1.39.3
Bug Fixes
Linux GNOME/Wayland click-to-focus reliability (#89)
GNOME focus now uses reverse-domain WM class/app IDs for Wayland-native terminals such as Ghostty and WezTerm, fixing notification clicks that could fail to raise the terminal window.
WezTerm exact pane focus on Linux (#89)
Notification clicks now carry WezTerm pane/socket hints from the hook process, raise the matching WezTerm window, then switch to the exact pane. Inherited WEZTERM_* variables are ignored for non-WezTerm focus targets to avoid focusing the wrong app.
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.39.2...v1.39.3
v1.39.2
Fixed
- Windows Stop hooks no longer corrupt non-ASCII JSON payloads. Windows hook generation now uses direct exec-form
.exehooks withargsinstead of PowerShell or Git Bash shell pipelines, fixing #87. - Bundled plugin hooks now use argument-vector execution by default, and installer validation rejects Windows hook configs that still route through shell commands, wrappers,
.bator.cmdshims, or$inputpipes. - Tmux terminal bell fallback now uses the pane tty when
/dev/ttyis unavailable (#86).
Verification
- Ubuntu CI, macOS CI, and Windows CI passed on
099aeee. - Release workflow built all binaries, published
checksums.txt, and smoke-tested Linux, macOS, and Windows release binaries.
Full Changelog: v1.39.1...v1.39.2
v1.39.1
Bug Fixes
macOS notifications no longer steal focus (#82)
ClaudeNotifier.app now launches through open -g, so showing a notification does not briefly bring the notifier app to the foreground before any click handling.
Plugin setup commands stay out of model context (#83)
Setup and configuration slash commands are still manually available from the slash menu, but opt out of model invocation metadata to reduce prompt context overhead after setup.
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.39.0...v1.39.1
v1.39.0
New Features
Discord native embeds
Discord webhook notifications now render structured native embeds with author, fields, and footer data.
Windows PowerShell hook generation (#78)
Added claude-notifications windows-hooks so Windows installs can generate Claude hook config that calls the native .exe through PowerShell.
Ghostty click-to-focus targeting (#78)
Improved macOS Ghostty click-to-focus so notifications can target and remember a specific terminal instance more accurately.
Bug Fixes
Windows hooks no longer depend on Git Bash (#79, #80)
The installer now rewrites PreToolUse, Notification, Stop, SubagentStop, and TeammateIdle hooks to call the Windows .exe directly through PowerShell with an absolute path. This avoids silent hook-wrapper.sh launch failures on Windows 10/11 and preserves lazy update behavior for direct .exe hooks.
Discord embed robustness
Discord webhook rendering now skips empty embed fields and clamps overlong author names before sending payloads.
Maintenance
Status config cleanup
Removed the legacy Ghostty keywords field from generated status configuration and aligned architecture documentation.
Contributors
Thanks to @taige for the Discord embed and status config contributions.
馃摝 Installation 路 馃攧 Updating
Full Changelog: v1.38.0...v1.39.0
v1.38.0
v1.37.0
Added
Webhook payload templates
Custom webhook bodies can now reference richer runtime fields such as session metadata, git context, cwd-derived values, and rendered notification content. This makes Slack, Lark, and custom webhook integrations much easier to shape without patching the plugin.
Fixed
Installer download verification
Release asset validation is stricter and safer before replacing installed binaries, which reduces the risk of corrupted or suspicious downloads being applied during updates.
Ghostty exact tab focus (#72)
Click-to-focus now tries Ghostty's native AppleScript terminal focus first, so notification clicks can switch to the correct tab instead of only raising the window. If Automation is unavailable or the exact terminal cannot be resolved, it safely falls back to the previous AXDocument window-level path.
馃攧 Updating
Full Changelog: v1.36.7...v1.37.0