The v3 Songs filter/search bar (added by #857) is `sticky top-0 z-20 backdrop-blur`
— the SAME z-index and stacking-context recipe as the global topbar, and being
later in source order it won the z-20 tie and painted over the topbar's whole
subtree. So the topbar's instrument-selector dropdown (`data-inst-menu`, z-50
*within* the topbar's z-20 context) rendered BEHIND the filter bar.
Bump the topbar to z-30 so it (and its dropdowns) stack above the per-screen
filter bar. `.z-30` is already in the prebuilt tailwind.min.css, so no rebuild.
Reproduced + verified headless: in the filter-bar/menu overlap region the
topmost element flips from the filter bar's <select> to the instrument menu.
(The tuner panel #tuner-plugin-ui is z-[1000] on document.body and was already
on top — unaffected.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 45bfd9cc9c6981a10a9f2441638b7e5bee760dc8)
- 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>
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.
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).
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).