Commit Graph

9 Commits

Author SHA1 Message Date
byrongamatos
7d50a87493
fix(plugins): don't block startup on plugin pip-install; don't retry failures forever
The plugin loader runs a synchronous 'pip install' for each plugin's
requirements.txt at startup (1800s timeout each), and only wrote a success
marker — so a plugin whose install fails (heavy optional deps like
torch/whisperx/demucs on a machine that can't build them, or offline)
re-attempts and re-blocks startup on EVERY boot. On a distributed host
(slopsmith-desktop) this hangs the backend past the app's readiness window.

- Honour SLOPSMITH_SKIP_PLUGIN_INSTALL: hosts that bundle their own runtime
  (e.g. the desktop app) set it to skip the blocking startup install entirely.
  The plugin still loads and degrades gracefully when its optional deps are
  absent.
- Write a .failed_<plugin> marker (req-hash keyed) on a failed install and skip
  re-attempting the same failing requirements on subsequent boots — retry only
  when requirements.txt changes or the marker is cleared. Marker reads are
  guarded (unreadable marker -> treat as no-match, never raises out); the
  success path writes the success marker and clears any stale failure marker in
  independent best-effort blocks so a successful install can never be recorded
  as a sticky failure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 3fa776c6cd1a569bb4206c91fd89cedf4b00f17d)
2026-06-17 23:41:55 -07:00
byrongamatos
cad78857fb Remove the v3 Support Us! donate button (no funding surface)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 11:52:44 +02:00
byrongamatos
edf8f46866 Repoint dead slopsmith URLs -> got-feedback
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 11:02:04 +02:00
byrongamatos
97a1e5fbf5 Fix two regressions in the terminology purge
- diagnostics_redact: keep '.psarc' in the song-filename scrub regex.
  The purge swapped it for '.archive' (not a real extension), which
  would leak real .psarc filenames still on users' disks into
  diagnostic bundles. This is a redaction allow-list, not brand text.
- sloppak: the legacy lyrics-source alias was a no-op
  ({"notechart": "notechart"}), so old manifests with
  lyrics_source=="sng" fell back to "xml" instead of migrating.
  Map {"sng": "notechart"} so the rename stays back-compatible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 21:19:16 +02:00
Sin
c1870a0597 Improve wording in terminology cleanup
Replace the placeholder noun left by the previous pass with context-fit
phrasing (arrangement XML, chart, custom songs, etc.).
2026-06-16 19:43:45 +01:00
Sin
4148b0e72e Purge external-format terminology from code, tests and docs
Reword comments/docstrings/strings and rename identifiers that referenced
the external game and its file formats:

- format-id "psarc" -> "archive"; local vars psarc_path -> song_path,
  psarc_base -> tone_base
- lyrics provenance value "sng" -> "notechart" (legacy "sng" still accepted)
- highway_3d fret-ghost scope value "rocksmith" -> "chords" (invalid/legacy
  values fall back to the default, preserving behaviour)
- neutralise references in prose, test names/data, .gitattributes and docs

No functional change beyond the renamed identifiers; all Python compiles.
2026-06-16 19:36:53 +01:00
Sin
bc0e83c345 Make the library loader sloppak/loose-only
Remove the vestigial encrypted-archive ingestion path that the loader can
no longer service:

- scanner no longer lists .psarc files; library is sloppaks + loose folders
- upload endpoint accepts .sloppak only (drop .psarc + magic-byte branch)
- delete endpoint handles sloppak/loose only
- drop the psarc_platform (pc/mac) setting, its validation and tests
- default CONFIG_DIR no longer references an external game data folder
- drop the now-unused pycryptodome dependency (no module imports it)
- correct stale comments that described scanning as archive decryption

Updates test_settings_api / test_settings_export to match (scan fixtures
now build .sloppak stubs).
2026-06-16 19:09:53 +01:00
Sin
fca0137989 Remove unused binary test fixture; correct stale scan comments
Drop an orphaned 4 MB binary fixture that no test references, and fix
two docstrings that inaccurately described the scanner as performing
archive decryption. The loader is sloppak/loose-folder only and does
not decode proprietary archives (see lib/scan_worker.py).
2026-06-16 18:49:40 +01:00
byrongamatos
6c110398b4 Clean release snapshot 2026-06-16 18:47:13 +02:00