diff options
| author | haoyuren <13851610112@163.com> | 2026-03-18 08:06:32 +0000 |
|---|---|---|
| committer | haoyuren <13851610112@163.com> | 2026-03-18 08:06:32 +0000 |
| commit | 9b5256718c2117511f0253a656bb8cff7410b92a (patch) | |
| tree | 8ba0fd257f771538874f37b87dcaeb5471185ca5 /src/preload/index.ts | |
| parent | 69a09baf71798966724d942b93303211516e34c7 (diff) | |
Fix OT sync corruption: match Overleaf ShareJS ack/echo handling
The server broadcasts otUpdateApplied (with ops) to ALL clients including
the sender. Our bridge was treating its own echoed ops as remote ops and
re-applying them, causing text duplication (e.g. "simulatorimulator").
Rewrite OT handling to match Overleaf's ShareJS _onMessage pattern:
- ACK = no ops OR meta.source matches our publicId (own echo)
- REMOTE = ops from a different source
- ACK path calls onAck() without re-applying ops
- OtClient silently drops duplicate acks in synchronized state
- OtClient drops stale remote ops (version < current)
- Remove pendingEchos counter in favor of meta.source detection
Also: refresh MCP comment contexts on new-comment/delete-thread events,
add Overleaf reference repo to .gitignore.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/preload/index.ts')
0 files changed, 0 insertions, 0 deletions
