soulsync/webui/static
BoulderBadgeDad 14388d4f42 Artist Map v2 — Phase 1: performance engine
Kills the hover/move lag on dense maps. Root causes were in the live
mouse/render path, not the layout:

- Render coalescing: _artMapRender() now just requests a single rAF; the actual
  draw (_artMapDraw) runs at most once per frame. A burst of mousemove/pan/
  animation calls no longer triggers many full-buffer blits per second.
- Tooltip de-churn: only rebuild the tooltip innerHTML (and reload its image)
  when the hovered artist changes; a plain mousemove just repositions. Was
  rebuilding innerHTML + a new <img> every pixel of movement.
- Spatial-grid hit-test: bucket nodes into a coarse world grid and test only the
  cell under the cursor, instead of sorting + scanning every node each move.
  Grid rebuilds only when the node set changes.
- Constellation lines: draw all connection lines as ONE solid-stroke path
  instead of creating a fresh linear-gradient object per line every frame —
  that per-frame gradient churn was the main 'connected lines' lag.

No layout/data/click changes; behaviour identical, just frame-bound. Pure
frontend; JS syntax clean.
2026-06-02 23:37:27 -07:00
..
docs
vendor
amazon.svg Wire Amazon Music enrichment worker into dashboard UI 2026-05-16 17:43:38 -07:00
api-monitor.js Dashboard: round Last.fm avatar, invert dark-mark logos (Tidal/Qobuz/Discogs/Amazon) 2026-05-27 19:32:32 -07:00
artists.png
audiodb.png Dashboard: equalizer bars now show real brand logos in the avatar disc 2026-05-27 19:22:28 -07:00
auto-sync.js Auto-Sync sidebar: brand logo on each source-group header 2026-05-27 20:23:12 -07:00
automation.png
basic-search-v2.css Basic search: visual overhaul + per-source picker in hybrid mode 2026-05-28 10:22:07 -07:00
beatport-ui.js Add "All Libraries (combined)" mode to PlexClient 2026-05-06 15:39:19 -07:00
core.js Persist completed downloads in downloads view 2026-05-24 10:02:00 -07:00
dashboard.png
discover-section-controller.js Discover controller — Cin pre-review polish 2026-05-07 20:35:10 -07:00
discover.js Artist Map v2 — Phase 1: performance engine 2026-06-02 23:37:27 -07:00
discover.png
docs-images-needed.md
docs.js
downloads.js Track-detail modal: click any download row for a rich, status-aware view 2026-05-31 20:24:37 -07:00
enrichment-manager.js Global process-first now re-queues failed too (matches per-worker pin) 2026-06-02 20:48:39 -07:00
enrichment.js Repair settings: dropdown for fixed-choice settings (canonical source_selection) 2026-06-02 15:33:13 -07:00
explorer.png
favicon.png
help.png
helper.js Basic search: visual overhaul + per-source picker in hybrid mode 2026-05-28 10:22:07 -07:00
hydrabase.png
import.png
init.js UI: migrate remaining compact button families to the .btn--sm tier 2026-05-29 11:40:31 -07:00
library.js Player: 'Play next' action + accent-correct queue buttons 2026-05-30 14:54:14 -07:00
library.png
manifest.json
media-player.js Player: seek hover tooltip on the Now Playing progress bar 2026-05-30 15:15:58 -07:00
mobile.css Standardize artist-detail hero action buttons 2026-05-28 12:35:02 -07:00
pages-extra.js Batches panel: redesign expanded track rows + fix scrollbar clipping 2026-05-31 22:44:58 -07:00
particles.js
placeholder-album.png
pwa-icon-192.png
pwa-icon-512.png
search.js Search: bump live-search debounce 300ms -> 600ms (#751) 2026-05-30 15:34:34 -07:00
search.png
settings.js Feature: preferred album-art source selection (opt-in, ordered, with fallback) 2026-06-01 11:45:07 -07:00
settings.png
setup-wizard.css
setup-wizard.js
shared-helpers.js refactor(webui): finish stats standalone handling in react 2026-05-23 23:01:56 +03:00
shell-bridge.js refactor(webui): finish stats standalone handling in react 2026-05-23 23:01:56 +03:00
stats-automations.js Mirrored playlist modal: revamp + fix header clipping on long playlists 2026-06-01 09:31:20 -07:00
style.css Enrichment manager: rebuilt header + global process-first + cleaner rows 2026-06-02 20:41:05 -07:00
sw.js
sync-lastfm.js Add Last.fm Radio tab to Sync page (Phase 1c.2) 2026-05-26 15:24:23 -07:00
sync-listenbrainz.js Add Last.fm Radio tab to Sync page (Phase 1c.2) 2026-05-26 15:24:23 -07:00
sync-services.js Tools: add Deep Scan option to the Database Updater 2026-05-29 10:47:02 -07:00
sync-soulsync-discovery.js SoulSync Discovery tab: open mirror detail modal after refresh 2026-05-26 20:02:50 -07:00
sync-spotify.js feat(media-player): playable tracks across modals + lyrics + cleanups 2026-05-22 21:19:50 -07:00
sync.png
track-detail.js Track-detail modal: click any download row for a rich, status-aware view 2026-05-31 20:24:37 -07:00
trans.png
trans2.png
whisoul.png
wishlist-tools.js Merge pull request #594 from Skowll/telegram_thread_id 2026-05-26 11:47:08 -07:00
worker-orbs.js Wire Amazon Music enrichment worker into dashboard UI 2026-05-16 17:43:38 -07:00