Reconcile an all-pages side toggle with queued side changes

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>
49fb00f081Dara Adedeji committed on 9/25/2026, 4:08:58 AMparent8477f47
2 files changedLine totals unavailable