Repository navigation
v0.6.7: profile pictures on notifications; Windows freeze fixes (from #26) - #38
Merged
Merged
Conversation
Ported from #26 by @matheuscardosoj. - Commands that create a window (add/open account, open settings, lock now) are now async. A synchronous command runs inside WebView2's IPC callback, and building another WebView2 there can deadlock on Windows (wry#583). - Account commands hold one lock across load-modify-save, now that they can run concurrently, and adding an account rolls back if its window fails to build instead of leaving an account with no window. - Saving Settings with "Launch at system startup" off no longer warns on Windows when the Run entry is already absent. Co-Authored-By: matheuscardosoj <97991988+matheuscardosoj@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD
bridge.js takes the picture WhatsApp attaches to its notification (blob:, data: or https: URL), crops it to a square, scales it to 96px and re-encodes it as PNG, giving up after 1.5s so a toast is never held back. Rust checks it is a PNG of a sensible size, stores it in the app cache under a content-derived name (pruned after a day) and attaches it: round on a Windows toast, the notification icon on Linux. The log records only whether a picture was attached, per URL scheme. Also bumps the version to 0.6.7 with release notes. Suggested by @mhanxhan in #3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD
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.
This is the v0.6.7 release. Notes are in
docs/release-notes/v0.6.7.md.Profile pictures on notifications (suggested in #3)
bridge.js: takes the
iconWhatsApp passes tonew Notification()orregistration.showNotification(). Onlyblob:,data:andhttps:URLs are fetched, without credentials. The image is cropped to a centre square, scaled to 96px and re-encoded as PNG, because Windows toasts can't show WebP. The bridge waits at most 1.5s for it; if the picture can't be loaded in time, the toast goes out without it.notifycommand: takes an optionalicon(base64 PNG).New
notif_icon.rs:It writes only after the lock, the Notifications setting and de-duplication have passed.
Display: on Windows it's
Toast::icon(path, IconCrop::Circular); on Linux the plugin's.icon(path). macOS always shows the app icon.Logging: the log only records
notif path: icon <scheme> ok|unavailableand "toast shown with picture", never the picture or its URL.Windows freeze fixes (ported from #26 by @matheuscardosoj)
add_account,open_account,rename_account,remove_account,open_settingsandlock_appare nowasync. A synchronous command runs inside WebView2's IPC callback, and creating a WebView2 there can deadlock (wry#583).accounts::lock_mutations(). An added account whose window fails to build is rolled back.NotFound.Testing
-D warnings) and fmt are clean,cargo testpasses (106 tests, 4 of them new for icon decode, validation and pruning), and the bridge tests pass, including a new one for picture forwarding, timeouts and refused URL schemes.cargo clippycross-checked forx86_64-pc-windows-msvcandaarch64-apple-darwin. My code adds no new warnings there; the remaining hits are older lints elsewhere on those targets.icon … unavailableand the toast looks as before.🤖 Generated with Claude Code
https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD