Skip to content

feat: auto-update UI improvements (Issue #75)#81

Open
Igorut wants to merge 10 commits into
collabs-inc:mainfrom
Igorut:feature/auto-update-ui
Open

feat: auto-update UI improvements (Issue #75)#81
Igorut wants to merge 10 commits into
collabs-inc:mainfrom
Igorut:feature/auto-update-ui

Conversation

@Igorut

@Igorut Igorut commented Mar 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Addresses #75 — adds prominent update notifications, release notes display, and update management in Settings.

  • Universal preload fix: updateDownload now exposed in universal preload (was shell-only)
  • Release notes normalization: handles both string and array formats from electron-updater
  • Toast notification: prominent top-right notification when update is available, with one-per-version guard and auto-dismiss
  • Release notes tooltip: hover on update pill to see release notes (appended to document.body to avoid clipping)
  • Settings "About & Updates" pane: full update lifecycle management with all 7 states (idle, checking, available, downloading, ready, installing, error)
  • IPC forwarding: shell renderer forwards update:status to settings webview

Changes

File Change
src/preload/universal.ts Add updateDownload
src/main/updater/update-manager.ts Handle array release notes
src/windows/shell/index.html Toast container element
src/windows/shell/src/shell.css Toast + tooltip styles
src/windows/shell/src/renderer.js Toast logic, tooltip, IPC forwarding
src/windows/settings/src/App.tsx About & Updates pane

Test plan

  • 19 automated tests pass (18 update-manager + 1 universal preload)
  • Manual: open Settings → About & Updates → shows current version
  • Manual: simulate update available → toast appears, pill shows "Download & Update"
  • Manual: hover pill → release notes tooltip appears
  • Manual: dismiss toast → doesn't reappear for same version
  • Manual: Settings shows correct UI for each update state

Design docs

  • Spec: docs/superpowers/specs/2026-03-28-auto-update-design.md
  • Plan: docs/superpowers/plans/2026-03-28-auto-update.md

🤖 Generated with Claude Code

Igorut and others added 10 commits March 28, 2026 16:33
Adds a failing test that asserts updateDownload is exposed via
contextBridge and invokes the update:download IPC channel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add 3 tests for release notes handling in update-manager:
- Array release notes normalization to markdown (FAILING - not yet implemented)
- String release notes preserved unchanged (passing)
- Undefined release notes handled gracefully (passing)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add toast rendering logic and IPC forwarding to the shell renderer:
- DOM references for toast elements and dedup tracking via toastedVersions Set
- hideUpdateToast/showToast/renderUpdateToast functions for toast lifecycle
- onUpdateStatus callback now renders toast and forwards status to settings webview

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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