docs/sync-and-op-log/supersync-scenarios.md
Status: Routing index, not a prose specification.
Executable tests and their implementation owners define current behavior. This page points maintainers to representative coverage for each durable scenario family; it does not attempt to enumerate every timing interleaving or duplicate test names in prose.
For the complete inventory, search
e2e/tests/sync/,
src/app/op-log/, and
packages/super-sync-server/tests/.
Use the smaller suite first when changing one mechanism:
| Mechanism | Focused owner/test |
|---|---|
| Download paging, gaps, and cursor plans | operation-log-download.service.spec.ts |
| Import filtering and clean-slate classification | sync-import-filter.service.spec.ts |
| Remote conflict/apply orchestration | remote-ops-processing.service.spec.ts |
| Superseded-op replacement and SECTION replay | superseded-operation-resolver.service.spec.ts |
| Decrypted payload/metadata integrity | verify-decrypted-op-integrity.spec.ts |
| Crash-safe apply/store behavior | service-logic.integration.spec.ts, remote-apply-store-port.integration.spec.ts |
| Mechanism | Focused owner/test |
|---|---|
| Conflict detection and multi-entity lookup | conflict-detection.spec.ts, conflict-entity-lookup-plan.pglite.spec.ts |
| Atomic clean-slate replacement | clean-slate-atomicity-sql.integration.spec.ts |
| Gap/reset detection | gap-detection.spec.ts |
| Snapshot clock and skip optimization | snapshot-vector-clock-sql.integration.spec.ts, snapshot-skip-optimization.integration.spec.ts |
| Validation, payload limits, and server security | validation.service.spec.ts, server-security.spec.ts |
Run a focused client spec with:
npm run test:file src/app/op-log/sync/<file>.spec.ts
For SuperSync and WebDAV E2E, prefer manually dispatching
E2E Tests (Scheduled) for the
branch. It provides the dedicated services and sharded SuperSync jobs. See
e2e/CLAUDE.md for focused local commands.
Every sync fix must begin with a reproducible failure against real operation or state shapes. Add the narrow focused test first, then add or extend E2E when the contract spans clients, persistence/restart, transport, or released-version compatibility. Update this index only when a durable scenario family gains or changes its executable owner.