feat(notifications): add native macOS Dock unread badge - #108
Merged
Merged
Conversation
added 4 commits
September 21, 2026 12:20
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
added 2 commits
September 21, 2026 13:22
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
wesbillman
marked this pull request as ready for review
September 21, 2026 20:38
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Current main sync: d2c6d70
Merged
mainataed15028e1a212d909ff93999b72dd118e3fc1d6without conflicts, bringing in the merged #110 browser scrolling-test fix and #72 thread-bottom fix. The badge feature diff against the new base is byte-identical to its previously reviewed diff. No new badge, permission, dependency or scope changes.Outcome
macOS only, per the owner's revised scope. Use Tauri's standard
set_badge_labelAPI for an OS-drawn, nonnumeric Dock badge representing observed unread activity or a manually unread channel in the selected community. No custom image assets.The prior Windows taskbar overlay and Linux tray approach has been removed, including all seven artwork/source files, tray/menu owner, extra Linux Tauri feature and non-mac Settings/retry paths. Windows, Linux and browsers retain existing notification behavior, with no shell unread indicator, badge Settings, unread-projection binding or indicator IPC. No new Windows badge integration is included.
Ownership and scope
The existing bounded unread service remains the sole source of truth. The host owns one boolean projection and ordered native writer, not a count, new unread engine, relay subscription or storage owner. Account/community changes, access loss, read/manual intent and teardown clear or recompute the badge. Desktop alert preferences remain independent. The small FOUNDATION composition change was explicitly authorized.
macOS retains a narrow UserNotifications permission bridge because Tauri's official desktop notification permission methods do not query actual badge settings. Startup/focus/check are read-only. Explicit first setup requests Alert|Sound|Badge; explicit missing-badge setup on an already Authorized identity requests Badge only. Denied authorization and explicitly Disabled badges are never re-requested. Unbundled processes do not call UserNotifications. Automatic legacy-repair machinery from the original draft remains removed.
The remaining main-window-only setter is in
dock.rs; there is no separate native cross-platform indicator module. Existing native banner delivery and focus code have no diff against main. No close-to-tray, background operation, new image loader, custom badge renderer, timer, notification backend or distribution work is added.Previous feature validation at c8b94b6
buzz-foundationpackage suite: 17 passed, pluscargo clippy --locked -p buzz-foundation --all-targets -- -D warnings. The removed eighteenth test checked the now-deleted Windows/Linux image assets; macOS permission tests are retained.tests/browser/layout.spec.mjs:636(104 passed per failing shard); CI required is red. Run 35645857201. No scrolling code/tests changed in this PR; relationship has not been established by a base reproduction. No flake claim or blind rerun.Remaining native acceptance gates
No native app was launched or OS permission changed for this revision; installed Buzz and the live account remain untouched. Still required for macOS:
Source review, unit tests and compilation do not prove visible Dock behavior. An isolated debug macOS bundle using this exact production head and a synthetic unread fixture now builds successfully. Its distinct test identity has not been launched, so it provides build evidence only. Attended first authorization, visible dot/clear, and opt-out checks remain pending; legacy setup and banner interaction require separate cases. Distribution signing and packaged-account support remain separate work. Windows/Linux shell unread support is deferred, not an acceptance gate for this narrowed feature.
Historical CI correction
A prior JavaScript job failed on five missing SVG accessibility titles outside the pre-commit file selector. Commit 5b1639d fixed the titles; the current macOS-only revision removes those assets entirely. The separate staged-SVG hook coverage gap remains deferred; it is not claimed fixed by deleting these assets.