super-productivity/src
Johannes Millan 83a6efed78 fix(sync): fail safe to replay when snapshot coverage is unprovable
Review hardening for the split-file snapshot delta split.

- Classify a downloaded op as delta (replay) rather than covered
  (record-applied-only) whenever snapshot coverage can't be proven: no
  usable snapshot clock, or an op missing its own vector clock. Replay is
  idempotent (getAppliedOpIds/LWW), so the worst case is redundant work;
  recording an op as applied whose effect never reached state is the
  silent data-loss bug this path prevents. These branches are unreachable
  today (the file adapter always reports a non-empty snapshot clock with
  snapshotState) but stop a future provider/refactor from reintroducing
  the loss silently.
- Add a unit test asserting a CONCURRENT delta op is replayed, not
  recorded applied; all five prior delta tests only exercised
  GREATER_THAN. Mutation-verified: dropping CONCURRENT from the filter
  fails exactly this test.
2026-07-14 18:57:13 +02:00
..
app fix(sync): fail safe to replay when snapshot coverage is unprovable 2026-07-14 18:57:13 +02:00
assets fix(sync): preserve conflict cancellation and harden force overwrite (#8981) 2026-07-13 21:54:07 +02:00
environments 18.14.0 2026-07-10 17:23:35 +02:00
static fix(security): harden XSS sinks and add Origin check (#7413) 2026-05-06 21:37:06 +02:00
styles fix(android): reserve full system-bar inset for the mobile bottom nav (#8792) (#8799) 2026-07-06 18:34:24 +02:00
test-helpers
typings
_common.scss
favicon.ico
hammer-config.class.ts
index.html fix(security): stored XSS → RCE chain — note image, plugin nodeExecution, CSP (GHSA-78rv-m663-4fph) (#8178) 2026-06-08 20:20:17 +02:00
karma.conf.js chore(task-repeat): revert RRULE Phase 1 from master (#7948) Develop the full RFC-5545 RRULE epic on the long-running feat/rrule-epic branch and merge once complete and testable in final form, rather than landing 13 phases into master one half-state at a time. Work preserved on feat/rrule-epic. Not yet shipped (post-v18.9.1), so no user impact. 2026-06-09 13:56:38 +02:00
main.ts feat(sync): conflict journal + disjoint-field auto-merge + review UI (#8874) 2026-07-11 17:48:46 +02:00
manifest.json
polyfills.ts fix(schedule): indicate tasks beyond available time 2026-05-11 14:30:55 +02:00
styles.scss fix(android): reserve full system-bar inset for the mobile bottom nav (#8792) (#8799) 2026-07-06 18:34:24 +02:00
test.ts chore: remove unused eslint-disable directives 2026-06-10 17:35:37 +02:00
tsconfig.app.json fix(build): exclude test helpers from production build 2026-02-25 16:46:51 +01:00
tsconfig.spec.json chore(ui): removes dead utilities and op-log leftovers [#8260 - Tier A] (#8892) 2026-07-11 13:05:34 +02:00
tsconfig.worker.json