Skip to content

feat: OS-level notifications for annotation replies - #22

Merged
sam-phinizy merged 11 commits into
mainfrom
feat/notification-system
Mar 24, 2026
Merged

feat: OS-level notifications for annotation replies#22
sam-phinizy merged 11 commits into
mainfrom
feat/notification-system

Conversation

@sam-phinizy

Copy link
Copy Markdown
Contributor

Summary

  • Adds a general-purpose OS notification system using tauri-plugin-notification
  • Four toggleable notification types: annotation reply, review complete, new annotation, deep link received
  • Centralized Rust-side NotificationService with NotificationKind enum and default_title_body() helper
  • CLI fires redpen://notify?... deep links on --reply-to, replacing the dual deep-link race condition
  • Settings UI with checkboxes in the existing Settings dialog
  • File-watch detection for new annotations from other authors
  • Backward-compatible settings migration via #[serde(default)]

Closes #11

Test plan

  • 17 Rust tests pass (cargo test) — includes settings serde, backward compat, URL parsing, notification kind defaults
  • Frontend tests pass (SettingsDialog test updated for new notification fields)
  • Manual: verify OS notification appears on redpen annotate --reply-to
  • Manual: verify ReviewComplete notification on "Done Reviewing" click
  • Manual: verify notification toggles persist in Settings
  • Manual: verify toggling off suppresses notifications

🤖 Generated with Claude Code

sam-phinizy and others added 11 commits March 24, 2026 06:47
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add NotificationSettings struct with annotation_reply, review_complete,
new_annotation, and deep_link fields (with serde camelCase) and wire it
into AppSettings and UpdateSettingsRequest with backward-compatible
#[serde(default)] deserialization.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sam-phinizy
sam-phinizy merged commit 1c78a68 into main Mar 24, 2026
2 checks passed
@sam-phinizy
sam-phinizy deleted the feat/notification-system branch March 24, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: OS-level notifications for annotation replies

1 participant