mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
* fix(remote): a desktop ignores its own workspaces echoed back by a server it serves (#33424) When two desktops pair to each other, each server republishes the tabs it mirrors from its own servers. Desktop A then received B's mirror of A's own workspace under the real workspace id and grafted it onto its local copy as B-hosted tabs, so opening those files asked B (selector_not_found) and closing them closed B's tabs. A session-tabs frame from a paired server no longer writes a workspace this app lists as its own (a stamped local or direct SSH row) unless that server also lists a copy. Other servers' workspaces stay open to every runtime. * fix(remote): retire echoes already taken and replay frames a twin's late row releases An echo fenced out of this app's own workspace now applies as that server's tombstone, so rows it left before the fence (restored sessions, or frames that arrived before this app's own row listed) are retired without closing anything. A held frame replays once the server's own copy of the workspace lists, so a same-id twin that publishes before its row loads still mirrors. The e2e waits on a later frame from the same stream instead of a fixed delay. * fix(remote): serve a desktop's tabs on its servers' files only to its phone, not to other runtimes Redesign of the #33424 fix at the source. A desktop publishes every editor tab in its window, including ones on files of its paired servers; its phone uses those through the desktop's relay. Served to another runtime, such a tab routes the file to the desktop, and in a pairing cycle it is that runtime's own workspace coming back as the desktop's tab: file reads fail with selector_not_found and closing it closes the desktop's real tab. Publishers now stamp those rows with hostRuntimeEnvironmentId (window, layout-owner main projection and the windowless projection alike). projectSessionTabsForClient strips the stamp for every caller and drops the stamped rows for runtime-scope callers, keeping groups, layout and the active tab consistent. Phones and local callers see what they saw before. The receiver-side fence is removed. * refactor(remote): keep the file-host stamp helper outside the old-client boundary; test an all-server snapshot