switchSide(allPages:) compared each cloud page against the server's side only. Toggling twice while page B's first change was still queued or in flight skipped B (the server still showed the requested side), so the queued change won and B ended on the wrong side. A page's intended side is now the newest pending descriptor intent that carries isAttack (successor, queued, paused, then in flight), else the server's. An op is authored whenever that differs from the target; the op queue replaces the queued change (merging other pending fields such as a rename) or queues it as the successor of the in-flight one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Dara Adedeji committed on 9/25/2026, 4:08:58 AMparent8477f47
2 files changedLine totals unavailable