mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-17 16:37:43 +00:00
The REPAIR paths built their vector clock from the per-tab in-memory clock cache and then REPLACED the durable clock with it. A stale cache (another tab advanced the clock) regressed the durable clock, letting subsequent captures reuse counters already shipped — silently corrupting cross-device dominance comparisons. - createRepairOperation: route through appendMixedSourceBatchSkipDuplicates; the in-transaction rebase makes regression unrepresentable. State cache stores the clock actually written. - replaceRejectedRepair: rebase the replacement clock onto the durable clock inside its transaction (shared rebaseLocalClockOnDurable helper). - Drop client-side clock pruning from repair op building: inert under the rebase, and it dropped client IDs the server still tracks (false CONCURRENT). Server prunes after conflict detection. - Rename appendWithVectorClockUpdate -> appendWithVectorClockOverwrite and document the derivation invariant; the capture path (its only remaining production caller) already satisfies it. |
||
|---|---|---|
| .. | ||
| 2026-03-22-advanced-onboarding-design.md | ||
| 2026-05-21-clean-slate-data-loss-prevention.md | ||
| 2026-05-28-android-keyboard-resize-jank.md | ||
| 2026-06-05-project-completion.md | ||
| 2026-06-22-android-keyboard-and-systembars-handover.md | ||
| 2026-06-22-android-systembars-migration-corrected.md | ||
| 2026-06-30-plainspace-super-productivity-connect-flow.md | ||
| 2026-07-03-android-home-screen-widget.md | ||
| 2026-07-03-sync-engine-extraction-plan.md | ||
| 2026-07-07-complete-architecture-review.md | ||
| 2026-07-07-ios-home-screen-widget-port.md | ||
| 2026-07-09-todoist-import.md | ||
| 2026-07-13-sync-simplification-plan.md | ||
| 2026-07-14-ios-testflight-master-builds.md | ||
| 2026-07-14-microsoft-365-calendar-provider.md | ||
| 2026-07-16-conflict-review-cohort-audit.md | ||