super-productivity/packages/shared-schema
Johannes Millan d32f7037a3 fix(sync): preserve own vector clock counter across full-state op resets
When a full-state op (SYNC_IMPORT/BACKUP_IMPORT) arrived from another
client, mergeRemoteOpClocks reset the local clock to a "minimal" form
but only preserved the current client's counter from the incoming op's
clock. If the current client had issued ops (e.g. GLOBAL_CONFIG) not
reflected in the incoming full-state op's clock, its counter was dropped,
causing subsequent ops to reuse the same counter value. Downstream clients
then saw these ops as EQUAL (duplicate) and skipped them silently.

Fix: take max(mergedClock[clientId], currentClock[clientId]) when
rebuilding the clock after a full-state op reset.

Also add __SP_E2E_BLOCK_WS_DOWNLOAD flag to WsTriggeredDownloadService
to allow E2E tests to block automatic WS-triggered downloads during
concurrent conflict scenarios.

Fix archive conflict test by blocking WS downloads on Client A during
the concurrent edit phase so it doesn't auto-receive B's rename via
WebSocket before archiving (restoring the intended conflict scenario).

Fix LWW singleton test to assert convergence rather than specific winner.
Fix renameTask helper to avoid Playwright/Angular re-render races.
Fix shepherd.js import paths that broke the Angular dev server build.
2026-04-01 15:41:13 +02:00
..
src refactor(sync): improve vector clock implementation quality 2026-03-17 13:59:40 +01:00
tests test(sync): add vector clock pruning edge case tests (#6506) 2026-02-13 12:42:36 +01:00
.gitignore feat(sync): add shared schema versioning package for frontend/backend 2025-12-12 20:47:44 +01:00
package.json fix(sync): preserve own vector clock counter across full-state op resets 2026-04-01 15:41:13 +02:00
tsconfig.json fix(shared-schema): fix module resolution for bundler compatibility 2026-01-11 13:20:16 +01:00
tsup.config.ts fix(shared-schema): use tsup for dual ESM/CJS build 2026-01-11 14:05:23 +01:00
vitest.config.ts feat(sync): add shared schema versioning package for frontend/backend 2025-12-12 20:47:44 +01:00