mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-07-22 12:52:29 +00:00
Upload/delete, the catalog-metadata write-back, user-meta, overrides, gap-fill,
and the per-song info payload (11 routes) move to lib/routers/song.py with their
exclusive helpers (the atomic upload commit + the song-IO lock, the upload caps,
the gap-fill proposal builders). Bodies verbatim except @app->@router and the
seam reads: meta_db->appstate.meta_db, art_override_paths->appstate.art_override_paths,
and the scan/ingest helpers that stay in server.py (the scan lifecycle owns them)
-> new appstate seam callables: kick_scan, invalidate_song_caches, stat_for_cache,
and scan_status() (a getter — the underlying dict is reassigned). The gap-fill
MBID/ISRC regexes are reached as enrichment.X; _MULTIPART_OVERHEAD_SLACK (shared
with the staying AcoustID-identify route) moves to lib/enrichment.py beside
_ACOUSTID_MAX_UPLOAD_BYTES.
ROUTE ORDER: song_router mounts AFTER art_router — get_song_info's catch-all
`/api/song/{filename:path}` would otherwise shadow `/api/song/{path}/art*`
(Starlette matches first-registered; the :path converter is greedy).
server.py: 4,478 -> 3,692 (-786).
Verified: pyflakes clean; ORDERED route table preserves the specific-before-catch-all
invariant; full pytest 2397 passed (incl the art/cover 304 + CAA-fetch tests that
caught the shadowing before it was fixed). eslint 0.
BEHAVIORAL — needs an on-device pass (upload a sloppak, edit metadata write-back,
delete a song) before merge.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| benchmarks | ||
| diagnostics | ||
| skills | ||
| 3dhighway-open-string-double-sustain.jpg | ||
| capability-domains.md | ||
| capability-recipes.md | ||
| capability-review-preflight.md | ||
| capability-roadmap.md | ||
| capability-safety-matrix.md | ||
| diagnostics-bundle-spec.md | ||
| host-theme-contract.md | ||
| library.png | ||
| NOTE_FAILURE_PLAN.md | ||
| NOTE_FAILURE_SPEC.md | ||
| note-detect-tuning.md | ||
| perf-baseline.md | ||
| player-2d.jpg | ||
| player-3d.jpg | ||
| player-3d.webp | ||
| plugin-capability-inventory.md | ||
| plugin-manifest.schema.json | ||
| plugin-modules.md | ||
| plugin-styles.md | ||
| plugin-v3-ui.md | ||
| size-exemptions.md | ||
| sloppak-hand-editing.md | ||
| sloppak-spec.md | ||
| working-tuning-on-device-tests.md | ||