github slopsmith/slopsmith-desktop v0.2.2
Slopsmith Desktop v0.2.2

one month ago

Driven largely by community bug reports and a spate of plugin-architecture cleanups. No major new features beyond infinite library scroll and a native folder picker — mostly correctness and ergonomics work.

Highway factory cleanup

A handful of fixes that make createHighway() genuinely usable for plugins that instantiate multiple highways (splitscreen especially):

  • Leaving split-screen no longer breaks audio playback in single-highway mode
  • Lyrics on/off preference now persists across sessions and per-instance
  • connect() gains { onSongInfo, onError } callbacks so plugin-spawned panels can skip the default writes to shared HUD / audio / arrangement dropdown
  • Resize listener leak in init() fixed — plugins creating highway instances repeatedly no longer accumulate dead listeners
  • init(canvas, container) — optional container arg for plugins embedding a highway in their own div
  • 'ready' callback now fires on the correct per-instance factory, not the global singleton

Plugin context API

New window.slopsmith EventTarget:

  • Events: song:loaded, song:play, song:pause, song:ended, arrangement:changed, screen:changed
  • window.slopsmith.navigate(screenId, params) for cross-plugin navigation with parameters
  • window.slopsmith.currentSong for direct state read

Library

  • Infinite scroll in grid view — the 1/2/3/Next paginator is gone; scrolling loads more cards via IntersectionObserver. Much less tedious for libraries in the hundreds+.

macOS / Docker scan diagnostics

Addresses user reports of scans silently failing:

  • Per-file scan logging visible in the desktop log pane
  • Permission errors surfaced explicitly with platform-specific hints ("grant Full Disk Access on macOS", "share this path in Docker Desktop → File Sharing")
  • Scan banner now shows error states in red instead of vanishing
  • Native folder picker button in Settings (📂 Browse) — no more pasting paths from Finder / Explorer

Dev hygiene

  • Removed 18 broken symlinks from the core repo's plugins/ directory (thanks @ahonnecke)

Plugin fixes (available via Plugin Manager updates)

Two extraction plugins shared a top-level extractor.py that collided at Python import time when both were installed. Renamed in each:

  • slopsmith-plugin-rs1extract — update in Plugin Manager
  • slopsmith-plugin-discextract — update in Plugin Manager

If you saw cannot import name 'MANIFEST_DIR' from 'extractor' with both installed, updating both plugins resolves it.

Downloads

  • Linux: .AppImage or .deb
  • Windows: .exe installer
  • macOS: .dmg or .zip

Don't miss a new slopsmith-desktop release

NewReleases is sending notifications on new releases.