super-productivity/e2e/pages
Johannes Millan bd67174863
fix(sync): make task and time replay deterministic (#8979)
* fix(sync): make task replay values deterministic

Capture logical dates and timestamps in task actions and backfill legacy operations. Carry per-day task totals so own-operation replay is idempotent while foreign time remains additive.

Fixes #8957

* fix(sync): make time snapshots replay-safe

Exclude pending task-time batches from op-log and file-sync snapshots so their later additive operations cannot overlap snapshot state. Preserve concurrent direct credits and normalize legacy replay dates deterministically.

Fixes #8957

* fix(sync): align snapshots with queued task time

Exclude accumulator and in-flight task-time deltas from operation-log snapshots so later delta operations cannot double-count them. Capture file and direct-upload snapshots at the same operation-log boundary, and flush or clear queued time around destructive state replacement.

* fix(tasks): flush queued time at task boundaries

Persist queued timer deltas before absolute short-syntax edits, and clear them whenever project, schedule, or repeat cleanup deletes the owning task. This prevents stale batches from recreating or overwriting removed task time.

* fix(sync): preserve concurrent task time deltas

Treat concurrent task-time batches as commuting updates on both client and server, while retaining causal stale-operation checks. Reject malformed identities, dates, durations, and unsafe timestamps before replay or persistence.

* test(sync): cover task time snapshot replay

Exercise seeded snapshot and restart invariants plus a real three-client SuperSync convergence path with the initial time inside the snapshot.

* fix(sync): select action type for legacy conflicts
2026-07-13 21:53:46 +02:00
..
base.page.ts feat(tasks): redesign add-task-bar layout, toggles, note field & a11y (#8812) 2026-07-07 16:26:36 +02:00
dialog.page.ts Update recurrent task calendar and general calendar design (#8017) 2026-06-09 16:30:22 +02:00
import.page.ts Improve automated store screenshots 2026-05-10 00:58:01 +02:00
index.ts docs(e2e): add CLAUDE.md reference and barrel export for easier test creation 2026-01-03 13:27:24 +01:00
note.page.ts test(e2e): fix flaky tests with better waits and focus handling 2026-03-03 21:46:11 +01:00
planner.page.ts test(e2e): fix 12 flaky tests by removing networkidle waits and fixing plugin setup 2026-02-09 17:55:12 +01:00
project.page.ts feat(project): project completion experience (#8036) 2026-06-08 13:43:38 +02:00
settings.page.ts test(e2e): use correct route /#/tag/TODAY/tasks instead of /#/tag/TODAY 2026-03-15 18:48:00 +01:00
side-nav.page.ts refactor: cleanup 2025-12-10 15:29:03 +01:00
supersync.page.ts fix(sync): make task and time replay deterministic (#8979) 2026-07-13 21:53:46 +02:00
sync.page.ts test(sync): reliably dismiss setup-time E2EE dialog in webdav e2e helper (#8727) 2026-07-03 15:27:48 +02:00
tag.page.ts test(e2e): fix flaky tests with better waits and focus handling 2026-03-03 21:46:11 +01:00
task.page.ts fix(task): schedule overdue tasks for today via Shift+T and guard stale task focus (#8867) 2026-07-10 12:07:19 +02:00
work-view.page.ts feat(tasks): redesign add-task-bar layout, toggles, note field & a11y (#8812) 2026-07-07 16:26:36 +02:00