Skip to content

feat: reindex button with progress ring in the semantic map titlebar#344

Merged
lstein merged 1 commit into
masterfrom
lstein/feature/umap-refresh-button
Jul 5, 2026
Merged

feat: reindex button with progress ring in the semantic map titlebar#344
lstein merged 1 commit into
masterfrom
lstein/feature/umap-refresh-button

Conversation

@lstein

@lstein lstein commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds a small refresh button (two circling arrows in pale grey, styled like the neighbouring titlebar icons) immediately left of the album pulldown in the semantic-map window. Clicking it starts an index update for the current album — a shortcut for opening Album Management.
  • While the update runs, the button is swapped for a progress ring that fills with the real completion percentage and takes the Album Manager's phase colours (orange scanning/indexing, purple model download, blue UMAP). The directory-traversal phase has no meaningful percentage, so it renders as a spinning indeterminate arc instead.
  • Hovering the ring shows the live status text (e.g. "Checking new image files (1,200 of 5,000)... (24%)") via a tooltip refreshed on each poll tick.
  • Opening the map window or switching albums attaches the ring to an already-running update (started from Album Management, Update All, or another tab) rather than starting a duplicate. Clicking during a run does nothing — cancellation deliberately stays in Album Management, which has a proper cancel button.
  • On completion an albumIndexUpdated event fires and the map reloads itself with the fresh data. On error the plain button returns with the error message in its tooltip and can be clicked to retry.

All new logic lives in a dedicated umap-reindex.js module wired into umap.js; no backend changes.

Test plan

  • 7 new Jest tests: button/ring swap and completion event, attach-to-running, failed-start recovery, error-status tooltip, ring colour/fill/title rendering, indeterminate scanning arc, and the ongoing-run check on window open.
  • Full frontend suite (394 tests), ESLint, Prettier clean.
  • Manually verified against a live album by the author, including the icon styling on the dark titlebar.

🤖 Generated with Claude Code

A small refresh button (two circling arrows, matching the titlebar icon
style) sits left of the album pulldown and starts an index update for the
current album — a shortcut for opening Album Management. While the update
runs the button is swapped for a progress ring that fills with the real
percentage and takes the Album Manager's phase colours (orange scan/index,
purple download, blue UMAP); the traversal phase spins an indeterminate
arc. Hovering the ring shows the live status text.

Opening the map or switching albums attaches the ring to an update that is
already running elsewhere (Album Management, another tab) instead of
starting a duplicate; clicking during a run does nothing — cancellation
deliberately stays in Album Management. On completion an albumIndexUpdated
event fires and the map reloads itself; on error the button returns with
the message in its tooltip and can be clicked to retry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lstein lstein force-pushed the lstein/feature/umap-refresh-button branch from d74246c to 3526ecd Compare July 5, 2026 01:51
@lstein lstein merged commit 45421d4 into master Jul 5, 2026
10 checks passed
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