Skip to content

feat(updater): What's New update window with explicit actions; open Settings on current Space#174

Merged
quiet-node merged 4 commits into
mainfrom
worktree-splendid-hatching-newt
May 16, 2026
Merged

feat(updater): What's New update window with explicit actions; open Settings on current Space#174
quiet-node merged 4 commits into
mainfrom
worktree-splendid-hatching-newt

Conversation

@quiet-node
Copy link
Copy Markdown
Owner

Summary

Adds a dedicated "What's New" update window and routes every update entry point (chat footer, Settings banner, tray menu) through it so the user previews release notes and picks an action explicitly instead of an install starting on a single click. Also fixes the Settings panel to open on the user's current macOS Space (including over another app's fullscreen Space) instead of stranding it on Space 1.

Changes

  • Update window (src/view/update/UpdateWindow.tsx, src/main.tsx, src/hooks/useUpdater.ts): editorial release-notes layout with four actions: Skip This Version, Remind Me Later, Install & Quit, Install & Restart. Markdown body + publish date from the updater manifest, GitHub-link fallback when notes are absent.
  • Backend (src-tauri/src/updater/*, lib.rs): skip_update_version / open_update_window commands, persisted skipped_versions (back-compatible sidecar), should_surface_update decision helper, ThukiUpdatePanel NSPanel modeled on the overlay panel.
  • Settings Space fix (lib.rs): settings/update panels use the proven overlay pattern (nonactivating + can_join_all_spaces, no activateIgnoringOtherApps) so they appear in-place on the current Space.

Review hardening (commit 50ed8d7)

  • Removed unused core:window:allow-close capability (least-privilege: no frontend path calls window.close(); close is intercepted Rust-side and windows only hide()).
  • UpdateWindow action handlers no longer silently swallow promise rejections: a shared runAction helper logs the failure and still closes the window so it cannot hang with no feedback.
  • Corrected stale/contradictory panel doc comments (is_floating_panel, show_*_window activation notes, install_update_inner tray rationale).
  • Removed em dashes from new comments per project writing-style rule.

Testing

  • bun run test:all:coverage: 1314 frontend tests pass; backend llvm-cov 100% lines/functions/branches.
  • bun run validate-build: clean (lint + clippy + format + typecheck + full build), zero warnings/errors.

🤖 Generated with Claude Code

…ur actions

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…cot, and tokenized styling

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…er fullscreen apps

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…ors, correct stale panel docs

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
@quiet-node quiet-node merged commit 0243c4b into main May 16, 2026
3 checks passed
@quiet-node quiet-node deleted the worktree-splendid-hatching-newt branch May 16, 2026 00:00
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