Skip to content

fix(web): smoother image viewing and live monitor updates - #15

Merged
DualChimerra merged 1 commit into
mainfrom
fix/ui-smoothness
Sep 27, 2026
Merged

DualChimerra merged 1 commit into
mainfrom
fix/ui-smoothness

Conversation

@DualChimerra

Copy link
Copy Markdown
Owner
  • ImagePreviewModal renders through a portal to . It was mounted inside queue cards; finished cards have opacity .72, so the lightbox came out translucent, could sit under later cards and forced the whole page to be composited behind the full-size image every frame. Also locks body scroll, binds keydown once, and preloads the prev/next image.
  • ZoomableImage keeps the current image painted while the next one loads (no blank flash when flipping), decodes async, refits in a layout effect.
  • useMonitorProgress is now a shared per-task store: Topbar, Sidebar, Queue, QueueDetail and MonitorDashboard used to each fetch the full multi-MB snapshot and merge every 1s delta into their own 50k-point arrays.
  • TaskSampleStrip and the dashboard's SampleViewer are memoized, so the per-second training ticks no longer re-render them (or an open lightbox).
  • MonitorDashboard: chart series are memoized; fixes the learning-rate chart being rendered twice and the "d" chart floating outside a card - it now shows in its own card only when the optimizer reports d.

- ImagePreviewModal renders through a portal to <body>. It was mounted inside
  queue cards; finished cards have opacity .72, so the lightbox came out
  translucent, could sit under later cards and forced the whole page to be
  composited behind the full-size image every frame. Also locks body scroll,
  binds keydown once, and preloads the prev/next image.
- ZoomableImage keeps the current image painted while the next one loads
  (no blank flash when flipping), decodes async, refits in a layout effect.
- useMonitorProgress is now a shared per-task store: Topbar, Sidebar, Queue,
  QueueDetail and MonitorDashboard used to each fetch the full multi-MB
  snapshot and merge every 1s delta into their own 50k-point arrays.
- TaskSampleStrip and the dashboard's SampleViewer are memoized, so the
  per-second training ticks no longer re-render them (or an open lightbox).
- MonitorDashboard: chart series are memoized; fixes the learning-rate chart
  being rendered twice and the "d" chart floating outside a card - it now
  shows in its own card only when the optimizer reports d.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DualChimerra
DualChimerra merged commit 1ce43de into main Sep 27, 2026
1 check 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