Skip to content

feat(console): let an available update be dismissed (don't force the install) - #78

Merged
brettchien merged 1 commit into
mainfrom
feat/dismissable-update
Aug 18, 2026
Merged

feat(console): let an available update be dismissed (don't force the install)#78
brettchien merged 1 commit into
mainfrom
feat/dismissable-update

Conversation

@brettchien

Copy link
Copy Markdown
Contributor

Problem

The updater button conflated find and install. Once Check for updates found a newer nightly, it flipped to Update to vX ↻ and the click handler became install-only:

el.addEventListener("click", () => void (pending ? install(...) : check(...)));

So once an update was found there was no way to skip it and keep working, and no way to re-check for a later nightly (clicking just installed the found one). The only exits from the pending state were install or restart — the operator was effectively forced to upgrade to whatever nightly it first saw.

Fix

Add a Later dismiss, shown only while an update is pending:

  • index.html — a #update-dismiss button beside the update button.
  • main.tssetPending() toggles the dismiss with the pending state; the dismiss clears pending back to Check for updates and logs the skip. Install hides the dismiss while running. 1-click install is unchanged.
  • styles.css — a quiet underlined .update-dismiss (muted → text on hover).

Finding an update now offers install or skip; skipping keeps the current build, and a later Check picks up whatever nightly is newest at that point.

Verification

console: tsc --noEmit clean · 89 vitest · vite build OK. The updater flow is desktop-only (Tauri bridge); this is a frontend-only change. Visual/interaction pass (find → Later → keeps build → re-check) wants eyes on a real build.

🤖 Generated with Claude Code

…install)

The updater button conflated find + install: once "Check for updates" found a
newer nightly it flipped to "Update to vX ↻" and every subsequent click only
*installed* it. There was no way to skip the found build and keep working, or
to re-check for a later nightly, without installing first (or restarting) — the
operator was effectively forced to upgrade.

Add a **Later** dismiss, shown only while an update is pending:

- index.html: a `#update-dismiss` button next to the update button.
- main.ts: `setPending()` toggles the dismiss with the pending state; the
  dismiss clears `pending` back to "Check for updates" and notes the skip.
  Install hides the dismiss while running. 1-click install is unchanged.
- styles.css: a quiet underlined `.update-dismiss` (muted → text on hover).

Now finding an update offers install *or* skip; skipping keeps the current
build and a later Check picks up whatever nightly is newest then.

Verification: `tsc --noEmit` clean · 89 vitest · `vite build` OK. Updater flow
is desktop-only (Tauri bridge); frontend-only change.
@brettchien
brettchien merged commit 740d750 into main Aug 18, 2026
2 checks passed
@brettchien
brettchien deleted the feat/dismissable-update branch August 18, 2026 14:51
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