mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 00:57:45 +00:00
* fix(mobile): stop review notes disappearing or coming back after deletion The phone sent its whole notes list on every add or delete, and the host stored it as is. A note added on desktop after the phone loaded was wiped by the phone's next edit, two quick taps could overwrite each other, and a failed save rolled back to an old snapshot. worktree.set now takes an optional diffCommentsBase, like linkedItemsBase: the host applies only the writer's own adds, edits and removals to the stored notes. The phone sends the list it started from, shows the host's merged list from the reply, and undoes only its own change on failure. Older hosts drop the field and replace the list as before; older phones send no base and get the same. Co-authored-by: Neil <neil@stably.ai> * fix(mobile): keep loaded review notes when an early save fails The first load was discarded once any save started, so a save that failed before it landed left the host's notes hidden. The load now applies the phone's changes made during the read onto the host's list instead. * fix(mobile): send review-note requests one at a time Two in-flight saves could reach the host in either order, so adopting the later reply hid a note the earlier save had stored. Session notes now send one request at a time and reconcile every reply with the phone's changes made since it was sent, replacing the sequence counters. * fix(mobile): drop review-note saves queued behind a failed one A save queued behind one that failed still sent the list built on the failed change, and an older host stores that list whole. Those saves now undo their own change instead of sending. Also renames the shared base type so it no longer shares a name with the renderer's mutation record. * fix(mobile): show review notes as the host's list plus pending saves A queued reply was reconciled against the list captured at tap time, so a note desktop deleted meanwhile came back on the phone. The phone now keeps the host's last list and its unanswered saves per workspace and shows the two combined; a reply for another workspace is ignored. The review screen also shows the host's list after a save, so an edit to a note desktop deleted no longer looks saved. * fix(mobile): fail queued review-note requests while disconnected A notes request queued behind a pending load waited for a reconnect with no timeout, holding every later save. Notes requests now fail at once when the connection is down, like terminal input. * fix(mobile): drop every review-note save built on a failed or dropped one A save made while a dropped save was still pending carried its change, so an older host could store it. Each failed or dropped save now moves the failure count. * fix(mobile): send each review-note save as the host's list plus its change Each queued save now builds its payload when it is sent, from the host's last list plus only its own change. A note added before the first load no longer replaces the loaded notes on an older host, and a failed save's change never rides along, so later saves no longer need dropping. Delivered-note cleanup waits for a reconnect again so those notes are not sent twice. --------- Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>