v26.05.23.3: dogfood UX polish + accurate active-batch stats #5

Merged
bvandeusen merged 0 commits from dev into main 2026-05-23 22:06:00 -04:00
bvandeusen commented 2026-05-23 22:05:53 -04:00 (Migrated from git.fabledsword.com)

Patch release rolling up five dogfood-driven fixes from the live IR migration.

UI fixes

  • Poll task list during scan (6acf273): the Recent Import Tasks list sat stale during an active batch — the polling loop refreshed the active-batch counter but never refetched the table. Now it refreshes loadTasks(true) every 5 s when a batch is in flight.
  • TopNav grid layout (95bc761): switching to Gallery or Showcase made the centered links shift left because the right-side action slot (Select / Shuffle teleport target) grew while the flex layout rebalanced. TopNav now uses a 1fr / auto / 1fr grid so the link block stays geometrically centered regardless of side-cell width.
  • Viewer modal haze + fit-to-view (c9ddcd0): the modal sat on a near-opaque background and large images overflowed the viewport. Background is now mid-opacity obsidian + backdrop-filter: blur(8px) (matches the TopNav haze); the media wrapper drops its align-items: center and adds min-height: 0 so the canvas finally has a parent height to clamp <img>'s max-height: 100% against.
  • Viewer modal close-on-click-outside (38a45ba): IR-parity. Clicking inside the image still toggles zoom; clicking the surrounding haze closes the modal. Implemented via the image's getBoundingClientRect() rather than @click.self because the <img> has pointer-events: none for the pan-drag pathway.

Backend fix

  • Auto-finalize empty scans + accurate active-batch stats (7a5a714): a re-triggered scan that finds every file already on a non-failed ImportTask enqueues zero work and previously left the batch row stuck in running forever. /api/system/stats then picked it as the active batch (most-recently-started running) and reported all-zero counters, hiding the older batch doing the actual work. Now scan_directory flips the batch to complete immediately when files_seen == 0, and system_stats filters its active-batch query to running batches with outstanding ImportTask work.

Commits

7a5a714 fix(scan): auto-finalize empty scans + system_stats picks running batch with actual work
38a45ba feat(ui): click outside the image in the viewer modal closes it (parity with IR)
c9ddcd0 fix(ui): viewer modal — haze background through to the image, fit-to-view at zoom 1
95bc761 fix(ui): TopNav uses 1fr/auto/1fr grid so Gallery/Showcase action buttons don't shift the centered links
6acf273 fix(ui): poll import task list during active batch so Recent Import Tasks doesn't sit stale
Patch release rolling up five dogfood-driven fixes from the live IR migration. ## UI fixes - **Poll task list during scan** (`6acf273`): the Recent Import Tasks list sat stale during an active batch — the polling loop refreshed the active-batch counter but never refetched the table. Now it refreshes `loadTasks(true)` every 5 s when a batch is in flight. - **TopNav grid layout** (`95bc761`): switching to Gallery or Showcase made the centered links shift left because the right-side action slot (Select / Shuffle teleport target) grew while the flex layout rebalanced. TopNav now uses a `1fr / auto / 1fr` grid so the link block stays geometrically centered regardless of side-cell width. - **Viewer modal haze + fit-to-view** (`c9ddcd0`): the modal sat on a near-opaque background and large images overflowed the viewport. Background is now mid-opacity obsidian + `backdrop-filter: blur(8px)` (matches the TopNav haze); the media wrapper drops its `align-items: center` and adds `min-height: 0` so the canvas finally has a parent height to clamp `<img>`'s `max-height: 100%` against. - **Viewer modal close-on-click-outside** (`38a45ba`): IR-parity. Clicking inside the image still toggles zoom; clicking the surrounding haze closes the modal. Implemented via the image's `getBoundingClientRect()` rather than `@click.self` because the `<img>` has `pointer-events: none` for the pan-drag pathway. ## Backend fix - **Auto-finalize empty scans + accurate active-batch stats** (`7a5a714`): a re-triggered scan that finds every file already on a non-failed `ImportTask` enqueues zero work and previously left the batch row stuck in `running` forever. `/api/system/stats` then picked it as the active batch (most-recently-started running) and reported all-zero counters, hiding the older batch doing the actual work. Now `scan_directory` flips the batch to `complete` immediately when `files_seen == 0`, and `system_stats` filters its active-batch query to running batches with outstanding `ImportTask` work. ## Commits ``` 7a5a714 fix(scan): auto-finalize empty scans + system_stats picks running batch with actual work 38a45ba feat(ui): click outside the image in the viewer modal closes it (parity with IR) c9ddcd0 fix(ui): viewer modal — haze background through to the image, fit-to-view at zoom 1 95bc761 fix(ui): TopNav uses 1fr/auto/1fr grid so Gallery/Showcase action buttons don't shift the centered links 6acf273 fix(ui): poll import task list during active batch so Recent Import Tasks doesn't sit stale ```
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledCurator#5