omnirush 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1520,8 +1520,17 @@ export class WorkspaceCollector {
|
|
|
1520
1520
|
}
|
|
1521
1521
|
this.enqueue(state, async () => {
|
|
1522
1522
|
if (state.budgetExhausted || state.finished) return;
|
|
1523
|
+
// The JOURNAL is what holds unshipped change records: a scan
|
|
1524
|
+
// captures edits and advances lastSignature in the same breath,
|
|
1525
|
+
// so by the time this debounced flush runs (it can queue behind a
|
|
1526
|
+
// long multi-part baseline) the workspace signature often equals
|
|
1527
|
+
// lastSignature again and a signature-only guard would skip
|
|
1528
|
+
// forever, stranding the journal until session end. Ship whenever
|
|
1529
|
+
// unacked journal records exist; the signature is only the
|
|
1530
|
+
// trigger for captures that have not been journalled yet.
|
|
1531
|
+
const unackedJournal = state.journalAppendedBytes > state.journalAckOffset;
|
|
1523
1532
|
const signature = await workspaceSignature(state.root);
|
|
1524
|
-
if (!signature || signature === state.lastSignature) return;
|
|
1533
|
+
if (!unackedJournal && (!signature || signature === state.lastSignature)) return;
|
|
1525
1534
|
state.lastSignature = signature;
|
|
1526
1535
|
await this.uploadWorkspace(state, "change");
|
|
1527
1536
|
});
|