Files
orca/tests/e2e/layout-compat-baselines.json
T
Jinwoo Hong cfd9e9c82c Editor tabs main-first: the window asks main for every editor tab change and draws only main's update (dark, layout-owner build only) (#31438)
* Editor tabs main-first: the window sends each editor action to main and draws editor tabs only from main's frames (dark, layout-owner build only)

With ORCA_LAYOUT_OWNER_IS_MAIN on, editor open (preview replace, open to the side), reopen at
its position, close, close-all, promote, the resolved conflict placeholder, a restored-editor
move and a disk rename are layout commands the window sends before it draws anything. Window
content (open file records, drafts, buffers, the autosave gate) is written at once for an open,
and rekeyed in the same store update as the frame for a move or rename. Main publishes each
non-edit tab's view, keeps views in memory across applies and partition changes, stamps the
tab's time, folds same-file duplicates, and republishes a windowless host's session.tabs after
its own file open. The switch-off path is unchanged.

* test(d3a-2): the buffer view index follows a rename main answers

* test(e2e): the old-phone baseline records a windowless server opening the file, as main does since #31291 (test only)
2026-10-21 12:38:35 -04:00

2221 lines
62 KiB
JSON

{
"about": "Layout rework P3: what the server and its clients report in each mixed-version, two-client and phone scenario, recorded from runs on main. Ids are replaced by labels in first-seen order; PTY labels keep their minting kind (pty@@ = daemon, ptyServe = serve). See tests/e2e/helpers/layout-compat-baseline.ts. Linux only: CI records and compares them; macOS and Windows have no baselines.",
"scenarios": {
"new-desktop-on-old-server": {
"linux": {
"runtimeProtocolVersion": 3,
"steps": [
{
"step": "desktop shows the server workspace",
"oldServer": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": "leaf1",
"paneTitles": []
}
]
},
"oldServerTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
}
],
"desktop": {
"tabs": 1,
"tree": "leaf1",
"paneTitles": [],
"drawnPanes": ["leaf1"],
"drawnPaneTitles": []
}
},
{
"step": "desktop splits right",
"oldServer": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": {
"split": "vertical",
"ratio": 0.5,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": "Terminal",
"tree": {
"split": "vertical",
"ratio": 0.5,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": []
}
]
},
"oldServerTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": null
}
],
"desktop": {
"tabs": 1,
"tree": {
"split": "vertical",
"ratio": 0.5,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": [],
"drawnPanes": ["leaf1", "leaf2"],
"drawnPaneTitles": []
}
},
{
"step": "desktop drags the divider",
"oldServer": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": "Terminal",
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": []
}
]
},
"oldServerTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": null
}
],
"desktop": {
"tabs": 1,
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": [],
"drawnPanes": ["leaf1", "leaf2"],
"drawnPaneTitles": []
}
},
{
"step": "desktop renames a pane",
"oldServer": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": ["leaf1=renamed-pane"]
},
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": "Terminal",
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": ["leaf1=renamed-pane"]
}
]
},
"oldServerTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": null
}
],
"desktop": {
"tabs": 1,
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": ["leaf1=renamed-pane"],
"drawnPanes": ["leaf1", "leaf2"],
"drawnPaneTitles": ["renamed-pane"]
}
},
{
"step": "after the server restarts and the desktop reconnects",
"oldServer": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "Terminal 1",
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": ["leaf1=renamed-pane"]
},
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": "Terminal 1",
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": ["leaf1=renamed-pane"]
}
]
},
"oldServerTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": null
},
{
"tab": "tab1",
"leaf": "leaf2",
"pty": "pty@@2",
"title": null
}
],
"desktop": {
"tabs": 1,
"tree": {
"split": "vertical",
"ratio": 0.8,
"first": "leaf1",
"second": "leaf2"
},
"paneTitles": ["leaf1=renamed-pane"],
"drawnPanes": ["leaf1", "leaf2"],
"drawnPaneTitles": ["renamed-pane"]
}
}
]
}
},
"old-cli-terminal-create": {
"linux": {
"exitCode": 0,
"ok": true,
"error": null,
"resultFields": [
"executionHostId",
"handle",
"hostPlatform",
"incarnationId",
"paneKey",
"ptyId",
"surface",
"tabId",
"title",
"warning",
"worktreeId"
],
"ptyId": "pty@@1",
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "old-cli",
"tree": "leaf1",
"paneTitles": []
}
]
}
}
},
"old-desktop-on-new-server": {
"linux": {
"oldDesktopVersion": "1.4.224",
"steps": [
{
"step": "old desktop opens the server workspace",
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"serverTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": null
}
],
"published": {
"groups": [["tab1", "tab2"]],
"tabs": [
{
"tab": "tab1",
"kind": "terminal",
"customTitle": "host-made",
"tree": "leaf1",
"panes": [
{
"leaf": "leaf1",
"pty": "pty@@1"
}
]
},
{
"tab": "tab2",
"kind": "terminal",
"customTitle": null,
"tree": "leaf2",
"panes": [
{
"leaf": "leaf2",
"pty": "ptyServe1"
}
]
}
]
},
"oldDesktopTabs": 2,
"oldDesktopPanes": ["leaf2"]
},
{
"step": "old desktop splits right",
"server": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": "Terminal",
"tree": {
"split": "vertical",
"ratio": 0.5,
"first": "leaf2",
"second": "leaf3"
},
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf3",
"pty": "pty@@2",
"title": "Terminal",
"tree": {
"split": "vertical",
"ratio": 0.5,
"first": "leaf2",
"second": "leaf3"
},
"paneTitles": []
}
]
},
"serverTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab2",
"leaf": "leaf3",
"pty": "pty@@2",
"title": null
},
{
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": null
}
],
"published": {
"groups": [["tab1", "tab2"]],
"tabs": [
{
"tab": "tab1",
"kind": "terminal",
"customTitle": "host-made",
"tree": "leaf1",
"panes": [
{
"leaf": "leaf1",
"pty": "pty@@1"
}
]
},
{
"tab": "tab2",
"kind": "terminal",
"customTitle": null,
"tree": {
"split": "vertical",
"ratio": 0.5,
"first": "leaf2",
"second": "leaf3"
},
"panes": [
{
"leaf": "leaf2",
"pty": "ptyServe1"
},
{
"leaf": "leaf3",
"pty": "pty@@2"
}
]
}
]
},
"oldDesktopTabs": 2,
"oldDesktopPanes": ["leaf2", "leaf3"]
},
{
"step": "old desktop closes the new pane",
"server": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"serverTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": null
}
],
"published": {
"groups": [["tab1", "tab2"]],
"tabs": [
{
"tab": "tab1",
"kind": "terminal",
"customTitle": "host-made",
"tree": "leaf1",
"panes": [
{
"leaf": "leaf1",
"pty": "pty@@1"
}
]
},
{
"tab": "tab2",
"kind": "terminal",
"customTitle": null,
"tree": "leaf2",
"panes": [
{
"leaf": "leaf2",
"pty": "ptyServe1"
}
]
}
]
},
"oldDesktopTabs": 2,
"oldDesktopPanes": ["leaf2"]
},
{
"step": "after server restart",
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": "Terminal 2",
"tree": "leaf2",
"paneTitles": []
}
]
},
"serverTerminals": [
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "pty@@1",
"title": "host-made"
},
{
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe1",
"title": null
}
],
"published": {
"groups": [["tab1", "tab2"]],
"tabs": [
{
"tab": "tab1",
"kind": "terminal",
"customTitle": "host-made",
"tree": "leaf1",
"panes": [
{
"leaf": "leaf1",
"pty": "pty@@1"
}
]
},
{
"tab": "tab2",
"kind": "terminal",
"customTitle": null,
"tree": "leaf2",
"panes": [
{
"leaf": "leaf2",
"pty": "ptyServe1"
}
]
}
]
},
"oldDesktopTabs": 2,
"oldDesktopPanes": ["leaf2"]
}
]
}
},
"old-phone-on-new-server": {
"linux": {
"steps": [
{
"step": "phone creates two terminals",
"phone": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone activates the first",
"reply": {
"ok": true,
"fields": [
"activeGroupId",
"activeTabId",
"activeTabType",
"publicationEpoch",
"snapshotVersion",
"tabGroups",
"tabs",
"worktree"
]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone renames the first",
"reply": {
"ok": true,
"fields": ["rename"]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone focuses the second",
"reply": {
"ok": true,
"fields": ["focus"]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "host pins the second",
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone closes the pinned tab",
"reply": {
"ok": false,
"error": "terminal_tab_pinned"
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone opens a file",
"reply": {
"ok": true,
"fields": ["kind", "opened", "relativePath", "worktree"]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
}
},
{
"step": "phone reconnects after a server restart",
"snapshotBefore": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"snapshotAfter": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"terminalsAfter": [
{
"tab": "tab1",
"pty": "ptyServe1"
},
{
"tab": "tab2",
"pty": "ptyServe2"
}
]
},
{
"step": "phone closes the first terminal",
"reply": {
"ok": true,
"fields": ["close"]
},
"phone": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab2", "tab3"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"server": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab2", "tab3"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
}
}
],
"snapshotFields": [
"activeGroupId",
"activeTabId",
"activeTabType",
"publicationEpoch",
"snapshotVersion",
"tabGroups",
"tabs",
"type",
"worktree"
],
"terminalRowFields": [
"customTitle",
"id",
"incarnationId",
"isActive",
"isPinned",
"leafId",
"parentLayout",
"parentTabId",
"ptyId",
"startupCwd",
"status",
"terminal",
"title",
"type"
]
}
},
"old-phone-on-new-server.layout-owner": {
"linux": {
"steps": [
{
"step": "phone creates two terminals",
"phone": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone activates the first",
"reply": {
"ok": true,
"fields": [
"activeGroupId",
"activeTabId",
"activeTabType",
"publicationEpoch",
"snapshotVersion",
"tabGroups",
"tabs",
"worktree"
]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone renames the first",
"reply": {
"ok": true,
"fields": ["rename"]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone focuses the second",
"reply": {
"ok": true,
"fields": ["focus"]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "host pins the second",
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone closes the pinned tab",
"reply": {
"ok": false,
"error": "terminal_tab_pinned"
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
}
]
}
},
{
"step": "phone opens a file",
"reply": {
"ok": true,
"fields": ["kind", "opened", "relativePath", "worktree"]
},
"phone": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
}
},
{
"step": "phone reconnects after a server restart",
"snapshotBefore": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"snapshotAfter": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "phone-renamed",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"terminalsAfter": [
{
"tab": "tab1",
"pty": "ptyServe1"
},
{
"tab": "tab2",
"pty": "ptyServe2"
}
]
},
{
"step": "phone closes the first terminal",
"reply": {
"ok": true,
"fields": ["close"]
},
"phone": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab2", "tab3"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
},
"server": {
"activeTab": "tab2",
"groups": [
{
"tabs": ["tab2", "tab3"],
"active": "tab2"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "ptyServe2",
"title": "Terminal 2",
"pinned": true,
"tree": "leaf2",
"paneTitles": []
},
{
"type": "markdown",
"tab": "tab3",
"title": "README.md"
}
]
}
}
],
"snapshotFields": [
"activeGroupId",
"activeTabId",
"activeTabType",
"publicationEpoch",
"snapshotVersion",
"tabGroups",
"tabs",
"type",
"worktree"
],
"terminalRowFields": [
"customTitle",
"id",
"incarnationId",
"isActive",
"isPinned",
"leafId",
"parentLayout",
"parentTabId",
"ptyId",
"startupCwd",
"status",
"terminal",
"title",
"type"
]
}
},
"serve-restart-keeps-@@-terminals": {
"linux": {
"created": {
"cli": "pty@@1",
"serve": "tab3"
},
"before": {
"server": {
"activeTab": "tab1",
"groups": [
{
"tabs": ["tab1", "tab2", "tab3"],
"active": "tab1"
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "pty@@1",
"title": "cli-created",
"tree": "leaf2",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab3",
"leaf": "leaf3",
"pty": "ptyServe2",
"title": "Terminal",
"tree": "leaf3",
"paneTitles": []
}
]
},
"terminals": [
{
"tab": "tab2",
"leaf": "leaf2",
"pty": "pty@@1",
"title": "cli-created"
},
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": null
},
{
"tab": "tab3",
"leaf": "leaf3",
"pty": "ptyServe2",
"title": null
}
],
"published": {
"groups": [["tab1", "tab2", "tab3"]],
"tabs": [
{
"tab": "tab1",
"kind": "terminal",
"customTitle": null,
"tree": "leaf1",
"panes": [
{
"leaf": "leaf1",
"pty": "ptyServe1"
}
]
},
{
"tab": "tab2",
"kind": "terminal",
"customTitle": "cli-created",
"tree": "leaf2",
"panes": [
{
"leaf": "leaf2",
"pty": "pty@@1"
}
]
},
{
"tab": "tab3",
"kind": "terminal",
"customTitle": null,
"tree": "leaf3",
"panes": [
{
"leaf": "leaf3",
"pty": "ptyServe2"
}
]
}
]
},
"desktopTabs": 3,
"desktopPanes": 1
},
"after": {
"server": {
"activeTab": "<first listed>",
"groups": [
{
"active": "<desktop tab or first listed>",
"tabs": ["tab1", "tab2", "tab3"]
}
],
"rows": [
{
"type": "terminal",
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": "Terminal <position>",
"tree": "leaf1",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab2",
"leaf": "leaf2",
"pty": "pty@@1",
"title": "cli-created",
"tree": "leaf2",
"paneTitles": []
},
{
"type": "terminal",
"tab": "tab3",
"leaf": "leaf3",
"pty": "ptyServe2",
"title": "Terminal <position>",
"tree": "leaf3",
"paneTitles": []
}
]
},
"terminals": [
{
"tab": "tab2",
"leaf": "leaf2",
"pty": "pty@@1",
"title": "cli-created"
},
{
"tab": "tab1",
"leaf": "leaf1",
"pty": "ptyServe1",
"title": null
},
{
"tab": "tab3",
"leaf": "leaf3",
"pty": "ptyServe2",
"title": null
}
],
"published": {
"groups": [["tab1", "tab2", "tab3"]],
"tabs": [
{
"tab": "tab1",
"kind": "terminal",
"customTitle": null,
"tree": "leaf1",
"panes": [
{
"leaf": "leaf1",
"pty": "ptyServe1"
}
]
},
{
"tab": "tab2",
"kind": "terminal",
"customTitle": "cli-created",
"tree": "leaf2",
"panes": [
{
"leaf": "leaf2",
"pty": "pty@@1"
}
]
},
{
"tab": "tab3",
"kind": "terminal",
"customTitle": null,
"tree": "leaf3",
"panes": [
{
"leaf": "leaf3",
"pty": "ptyServe2"
}
]
}
]
},
"desktopTabs": 3,
"desktopPanes": 1
}
}
}
}
}