Home

dev / openkara

publicthedavidweng/OpenKara· sync paused
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

fix(remote): exact operation identity, batch CAS, SQLite TX, library outbox (#151)

2 months ago

cff7703
Authored
Davy7/21/2026, 6:38:00 AM
Pass operation_id from mutation through publish/status/executor so terminal
rows are never reopened via library+song guesswork.

Publish multi-song operations as one commit: upload every song under the
commit lock, freeze once, CAS once. Create one op per explicit re-publish.

Bind song_ids + Pending + Dirty in a real control-DB SQLite transaction.
Persist the change set in a library-DB remote_publish_outbox so startup can
rebuild control-plane ops after a projection crash. Force Dirty for any
outstanding publish ops. Fail closed on digest None and part cleanup without
control DB. Persist recovery asset-upload failures with executor-class state.

Parent3e23596

11 files changed
  • src-tauri/migrations/013_remote_publish_outbox.sql+12−0
  • src-tauri/src/app_runtime.rs+105−9
  • src-tauri/src/cache/mod.rs+4−0
  • src-tauri/src/remote/control_db.rs+136−7
  • src-tauri/src/remote/library_outbox.rs+121−0
  • src-tauri/src/remote/mod.rs+1−0
  • src-tauri/src/remote/mutation.rs+111−121
  • src-tauri/src/remote/recovery.rs
+82
−4
  • src-tauri/src/remote/sync/mirror.rs+1−1
  • src-tauri/src/remote/sync/publish.rs+292−234
  • src-tauri/src/remote/sync/upload_status.rs+139−9