Skip to content

Fix invisible update notifications on Windows and Linux - #869

Merged
webadderall merged 3 commits into
mainfrom
codex/cross-platform-update-toast-visibility
Sep 3, 2026
Merged

Fix invisible update notifications on Windows and Linux#869
webadderall merged 3 commits into
mainfrom
codex/cross-platform-update-toast-visibility

Conversation

@webadderall

@webadderall webadderall commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Motivation and Context

The custom Chromium update-toast window can render as a blank black surface on Windows and is compositor-dependent on Linux, even though its renderer bitmap contains the complete UI. Because update downloads require user confirmation, this can make the normal update path unusable.

What changed

  • Keep the custom update toast on macOS, where it renders correctly.
  • Use Electron native update dialogs on Windows and Linux for available, ready, and failed update states.
  • Keep Install & Restart and Later behavior unchanged.
  • Show non-macOS dialogs without parenting them to the transparent recording HUD.
  • Route the development update preview through the native dialog off macOS.

Testing

  • Verified the Windows development preview displayed a native Update Ready dialog with visible Install & Restart and Later buttons.
  • npm exec vitest -- run electron/updateChannel.test.ts
  • npm exec tsc -- --noEmit
  • Biome checks on the changed files.

Summary by CodeRabbit

  • New Features

    • Added native update preview dialogs on non-macOS platforms.
    • Update previews now clearly indicate preview or experimental status.
    • Update availability dialogs are shown when in-app notifications are unavailable.
  • Bug Fixes

    • Improved cross-platform update notification handling.
    • Preserved toast-based update previews on macOS while using native dialogs elsewhere.
    • Previewing an update no longer starts installation or reminder actions.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 6755d2ee-1781-4dd2-9455-9c8519800e99

📥 Commits

Reviewing files that changed from the base of the PR and between 3ca4a75 and 031067b.

📒 Files selected for processing (1)
  • electron/updater.ts

Included review availability: Your plan provides up to 10 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The update flow uses native dialogs for non-macOS previews and fallback notifications. macOS continues to use update toasts. The main process routes preview requests by platform, and updater errors display a native dialog when renderer toast delivery fails.

Changes

Update dialog flow

Layer / File(s) Summary
Updater dialog and fallback behavior
electron/updater.ts
The updater uses unparented message boxes on non-macOS platforms, adds preview and error dialog helpers, varies available-update dialog content, and falls back to dialogs when renderer toast delivery fails.
Platform-specific preview wiring
electron/main.ts
The main process limits update toasts to macOS and routes non-macOS IPC and development previews to the native update dialog.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 03106

Windows and Linux update notifications now use native dialogs while macOS retains custom toasts. The available evidence indicates the intended install, reminder, preview, and fallback behavior is preserved, with no current merge-blocking risk identified.

Sequence Diagram(s)

sequenceDiagram
  participant PreviewRequest
  participant MainProcess
  participant Updater
  participant Renderer
  participant NativeDialog
  PreviewRequest->>MainProcess: request update preview
  alt macOS
    MainProcess->>Renderer: show update toast preview
  else non-macOS
    MainProcess->>Updater: preview native update dialog
    Updater->>NativeDialog: show available-update preview
  end
  Updater->>Renderer: emit update state
  alt Renderer does not show toast
    Updater->>NativeDialog: show fallback update dialog
  end
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 9 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: fixing invisible update notifications on Windows and Linux.
Description check ✅ Passed The description explains the problem, the platform-specific behavior, the user-facing impact, and the testing performed. It does not use the repository template headings and omits the change type, rel…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the problem, the platform-specific behavior, the user-facing impact, and the testing performed. It does not use the repository template headings and omits the change type, related issues, screenshots or video, and checklist.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/cross-platform-update-toast-visibility

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@webadderall
webadderall merged commit c1e263f into main Sep 3, 2026
2 checks passed
@webadderall
webadderall deleted the codex/cross-platform-update-toast-visibility branch September 3, 2026 03:24
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.

1 participant