split: sync-engine rewrite (sync-operations + sync-client.ts)

Replace the single unrestricted-syncer.ts with a two-loop architecture:
- syncer.ts drains the FIFO wire queue (HTTP + WS handlers).
- reconciler.ts moves files to make localPath match remoteRelativePath
  (topo-sorted move graph, in-memory cycle resolution with crash-safe
  swap markers).
- sync-event-queue.ts holds the byDocId / byLocalPath indexes and the
  pending-create promise chain.
- offline-change-detector.ts, expected-fs-events.ts, types.ts, and a
  rewritten cursor-tracker.ts / file-change-notifier.ts round it out.
Plus sync-client.ts wiring, tracing/sync-history.ts updates, index.ts
re-exports, and sync-client tsconfig/webpack/package.json.
This commit is contained in:
Andras Schmelczer 2026-05-08 21:37:26 +01:00
parent 0fda95ff8e
commit 42c9d55489
18 changed files with 5068 additions and 1257 deletions

View file

@ -12,7 +12,5 @@
"declaration": true,
"declarationDir": "./dist/types"
},
"exclude": [
"./dist"
]
"exclude": ["./dist"]
}