Skip to content

feat(gui): the update banner tucks itself into the version badge - #19

Merged
Sniphs98 merged 5 commits into
mainfrom
feat/update-badge
Sep 27, 2026
Merged

Sniphs98 merged 5 commits into
mainfrom
feat/update-badge

Conversation

@Sniphs98

Copy link
Copy Markdown
Owner

After 8 seconds (not while the pointer or keyboard is on it, nor while it is
downloading or reporting a failure) the update banner shrinks and flies into
the sidebar's version badge, which then turns into the update's button:
"Update" → "Updating 42%" → "Restart", with the version and what a click does
in its tooltip. One click downloads, the next restarts to install; where this
copy can't update itself it opens the release page. With the sidebar
collapsed it's a round download button in the footer.

Closing the banner tucks it away the same way; Skip still drops the version.
A new update offer (or a manual check) brings the banner back. Reduced motion
gets a plain fade.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

What and why

How it was tested

Checklist

  • PR title is a Conventional Commit (it decides the release)
  • npm run check and npm test pass
  • Tests added or updated for the change
  • README updated if the change is user-visible
    After 8 seconds (not while the pointer or keyboard is on it, nor while it is
    downloading or reporting a failure) the update banner shrinks and flies into
    the sidebar's version badge, which then turns into the update's button:
    "Update" → "Updating 42%" → "Restart", with the version and what a click does
    in its tooltip. One click downloads, the next restarts to install; where this
    copy can't update itself it opens the release page. With the sidebar
    collapsed it's a round download button in the footer.

Closing the banner tucks it away the same way; Skip still drops the version.
A new update offer (or a manual check) brings the banner back. Reduced motion
gets a plain fade.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

Sniphs98 and others added 5 commits September 27, 2026 19:42
After 8 seconds (not while the pointer or keyboard is on it, nor while it is
downloading or reporting a failure) the update banner shrinks and flies into
the sidebar's version badge, which then turns into the update's button:
"Update" → "Updating 42%" → "Restart", with the version and what a click does
in its tooltip. One click downloads, the next restarts to install; where this
copy can't update itself it opens the release page. With the sidebar
collapsed it's a round download button in the footer.

Closing the banner tucks it away the same way; Skip still drops the version.
A new update offer (or a manual check) brings the banner back. Reduced motion
gets a plain fade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n version

`electron packages/electron/dist/main.js` runs the file without its
package.json, so app.getVersion() is Electron's (33.4.11): the version badge
showed that, and no update was ever offered. `electron packages/electron`
reads the package and reports the app's version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dark theme's raised surface (#2a2a2d — the update banner, dialogs, context
menus) had a blue tint none of the other surfaces have (#171717, #212121,
#1a1a1a), which showed as the banner flew into the badge. Now #2a2a2a, just
as light, no tint. The light theme is blue-grey throughout on purpose and
stays as it is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Instead of shrinking evenly, the banner now narrows into a funnel towards the
version badge and is drawn in through it, the side nearest the badge first —
the macOS minimise. A CSS transform can't bend a box, so for the 650 ms of the
animation the banner is drawn as 40 strips, copies of it clipped to one slice
each, every strip transformed on its own each frame; neighbours share their
edges, so the shape stays whole. The geometry (genie.ts) is pure and tested:
it starts as the banner, funnels near side first, stays in one piece, ends
inside the badge. The strips' layer is removed when done, however the
transition ends. Reduced motion still gets a fade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Sniphs98
Sniphs98 merged commit 89c2e58 into main Sep 27, 2026
9 checks passed
@Sniphs98
Sniphs98 deleted the feat/update-badge branch September 27, 2026 18:23
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