2 months ago
3041eb1Load the target RegisteredLibrary from operation.library_id before any file or network work; never use the currently active library for mutation-driven publish. Under the per-library commit lock, merge co-pending Publish ops into one survivor: union song_ids, rebind expected_generation to committed, cancel the rest — one CAS advances one generation with all assets. project_outbox deletes from prepared.library_id working copy. Candidate freeze fails closed if outbox sanitation fails. Startup drops residual outbox rows for terminal operations when song_ids match instead of reopening them.
Parent416ab15