Harden upload lifecycle and renderer recovery

Serialize upload starts across durable audit work, drain in-flight batch additions before cleanup, and fail closed when recovery persistence is incomplete. Wire bounded renderer reload recovery with a branded localized failure surface and use merge-safe fallback log persistence.
This commit is contained in:
Sucukdeluxe
2026-08-13 21:11:48 +02:00
parent 4c48044a95
commit 3ced148ee8
7 changed files with 252 additions and 82 deletions
+28
View File
@@ -0,0 +1,28 @@
function createUploadStartReservation() {
let active = null;
return {
acquire() {
if (active) return null;
const state = { cancelled: false, released: false };
const lease = {
isCancelled: () => state.cancelled,
release() {
if (state.released) return;
state.released = true;
if (active && active.lease === lease) active = null;
}
};
active = { lease, state };
return lease;
},
cancel() {
if (!active) return false;
active.state.cancelled = true;
return true;
},
isActive: () => active !== null
};
}
module.exports = { createUploadStartReservation };