Track Store for Sessions#150
Conversation
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Review: Track Store for Sessions (#150)Full review of purpose, correctness, and complexity. TL;DR: the feature is well-scoped and the backend wiring is clean, but the branch does not type-check (5 Purpose (as I understand it)Browser-local saved sessions for the realtime motion-graph performance UI: save / open / rename / delete sessions persisted in IndexedDB. A snapshot captures runtime config + selected fixture + custom-track metadata + stem-overlay state, plus the decoded PCM, original upload files, and cached MelBand stems needed to restore without a re-upload. A new This is a reasonable, self-contained feature and the snapshot/restore split is sound in principle. Blocking — the branch is broken (fails
|
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Signed-off-by: BuffMcBigHuge <marco@bymar.co>
Summary
This PR adds browser-local saved sessions to the realtime motion graph performance UI. A performer can save the current session, reopen it later from the same browser, rename/delete saved sessions, and see an always-visible dirty/save status pill while performing.
The saved session snapshot captures the active runtime config, selected fixture, uploaded custom track metadata, stem overlay state, and local audio assets needed to restore the performance state without requiring a fresh upload.
What Changed
SavePillandSessionsTileUI surfaces so saved sessions are available directly from the performance screen and drawer.skip_stem_extractionthrough the frontend protocol and backend swap/start paths so restored sessions with cached stems do not re-run the backend stem extraction path.Notes
Saved sessions are intentionally local to the browser/device. The audio assets live in IndexedDB, while a legacy localStorage read path keeps older lightweight saved session records from disappearing. Saved custom-track stems must be ready before saving a non-
fullsource mode, because restore depends on the cached stem PCM.Deleting a session removes the session record but leaves shared cached audio assets untouched, which avoids breaking other saved sessions that may reference the same uploaded audio.
Test Plan
No automated checks are currently reported on this PR branch.
Recommended manual validation:
full, save the session, reload the page, and reopen it from Local Saved Sessions.vocalsorinstruments, wait for stem extraction, save, reload, and confirm restore uses cached stem audio without triggering backend extraction again.