aboutsummaryrefslogtreecommitdiff
path: root/tests/fixtures
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-02 02:45:20 +0300
committerGitHub <noreply@github.com>2026-09-02 02:45:20 +0300
commitcc88b3b8e5bb9f7d9f23ed6ae85a52fd7b5b9ed6 (patch)
tree4d37c760099070f1a1488b61c7b7271875aafef8 /tests/fixtures
parent18e69891dca486d669a584facd80644bb51f54a2 (diff)
feat: add stable client endpoint compatibility (#3509)
* feat: add stable client endpoint compatibility * fix: keep portable-pty patch checks composable * ci: run maintenance checks in pull requests * fix: reject endpoint errors from terminal clients * feat: keep compatible servers running across updates
Diffstat (limited to 'tests/fixtures')
-rw-r--r--tests/fixtures/endpoint-hello-v1.json25
-rw-r--r--tests/fixtures/endpoint-method-shapes-v1.json39
-rw-r--r--tests/fixtures/endpoint-snapshot-v1.json106
-rw-r--r--tests/fixtures/endpoint-welcome-v1.json11
4 files changed, 181 insertions, 0 deletions
diff --git a/tests/fixtures/endpoint-hello-v1.json b/tests/fixtures/endpoint-hello-v1.json
new file mode 100644
index 00000000..dfe7ebb3
--- /dev/null
+++ b/tests/fixtures/endpoint-hello-v1.json
@@ -0,0 +1,25 @@
+{
+ "generation": 1,
+ "cell_width_px": 8,
+ "cell_height_px": 16,
+ "surface_size": {
+ "cols": 80,
+ "rows": 24
+ },
+ "pixel_mouse": true,
+ "direct_graphics": false,
+ "endpoint_keybindings": false,
+ "mouse_capture": true,
+ "snapshot_codecs": [
+ "shell.snapshot.v1"
+ ],
+ "surface_codecs": [
+ "shell.surface.v1"
+ ],
+ "input_codecs": [
+ "shell.input.semantic.v1"
+ ],
+ "blob_codecs": [
+ "shell.blob.v1"
+ ]
+}
diff --git a/tests/fixtures/endpoint-method-shapes-v1.json b/tests/fixtures/endpoint-method-shapes-v1.json
new file mode 100644
index 00000000..b473869f
--- /dev/null
+++ b/tests/fixtures/endpoint-method-shapes-v1.json
@@ -0,0 +1,39 @@
+{
+ "command.invoke": "b16817652442b1ea2405e60a0443826a55baca461e938f524e79b16a675c5899",
+ "integration.install": "913055b838166650fee6713332c1cc436efd4f8fae9a2064d8f9b6616a7a66f8",
+ "integration.list": "60c57189adf9c281958062f0e11680bda0ece83307c506fa18bff8b01ebfb4e8",
+ "layout.set_split_ratio": "13ef71d865f49c4f512fdfa8de64e1bdc0d4299675f78daf61bd5cdc10174d2f",
+ "pane.close": "dcc277a6a4f9b8fc3438d8fa61de2688f4338b0d2d60100798e4103690e0b316",
+ "pane.copy_motion": "57e690b444d5dbb408ac3e0d40ff307f77d6e79dccd3c026cd19580e1bd78983",
+ "pane.copy_search": "5391364ee0a0a12776a5ba3c59e7ca2a879448ec79ff357c8157b0c01e3cbfc1",
+ "pane.edit_scrollback": "c9b4722bb38e280f97915264205ba19171d76027002e7eeefae19141a44a91de",
+ "pane.focus": "680c1dffa1466d7725550f91cb58af6e1d45dcbde2bf5d4765e5dc5fc9c982d5",
+ "pane.focus_direction": "4e34a76f69213378d51b397927edc43e098c9cd24660fdcbf8b5001b6e226e05",
+ "pane.input.set": "4eb8914f4cd40417ba5631d4e9058a04cde11191c58c08e66553f43e4ca0ffd8",
+ "pane.link.activate": "42bf791ae426cb56f3fdad63e861bfe01432cb8e81e046960a9245d89dc442ff",
+ "pane.rename": "cc3df3226f618ec4b9a175eca3450a66a9f2bea9fa39843e1a5900a1b45918c3",
+ "pane.resize": "9fbcc70b8908c43f47b0ff85d0a9040ce18c9179a029ed7d8f2616a05d8c301d",
+ "pane.scroll": "3229d55230b89730e5231a43d87cefa98cfda24acaaf6365f7c6a3548cc42db1",
+ "pane.selection.read": "2f7b0fdf4f0fc1f1fe9ab4d962c833dd39a1e9bd866d77bbf0031f8b2c485534",
+ "pane.split": "5d740322cac5287070194fb522c8135795a6f877b44652ea4959c63b4c67cefd",
+ "pane.swap": "3146d499d8174d73cfdfa3b6ca44f5d5d0951ab1cdd1808f94a3cf8846dc8057",
+ "pane.zoom": "0521e444ea892abb1f73d16dc0e10a5667c8a752284eae4cbc0961cd6d96bbfe",
+ "product_announcement.dismiss": "7ce099f799f396d4733c77ddfa0ac7e2fd597e49c52e2739af3b883624a834d5",
+ "release_notes.dismiss": "75e096dc234e7879b401b934097ecc3a4a91b78d89a909d47f6dd9f49cfc7bdb",
+ "server.reload_config": "6def1206dab9748df80e6c98ab6fbee3d45c1e5019e889dd8c9abd22a3dadac8",
+ "tab.close": "29e03e6723e4eeef762161db2f6dd23306432b9ecbb8c879efe1e7b1fe697312",
+ "tab.create": "c2477e9bada16b329303fc552d66b900ad5c38ae9ed4ea0884f4b3de8ff01820",
+ "tab.focus": "666eff9e6ae83ae1dd8fd10c456cc5d216466a667070ee3f9fdca7a4422611e6",
+ "tab.move": "63c354ed4684d3216fc7f712c3073989f757135293a5ee37f49a2734841f4187",
+ "tab.rename": "bd84404b569286748a8cfa68720aacdbbe549fc5d2b009529d26e8cd455ef071",
+ "workspace.close": "e4e762f28e3e2fb96be974f3cd9be7420ec7c57cf1b6f55c19d7c67853197618",
+ "workspace.create": "b9dc2df43776d7d73bea576ef31b25276604c42a1c91e66e5bde8715119936ac",
+ "workspace.focus": "39675f05cfe6110ece18aa2789c26f0905303b2114af801712857d0c021df150",
+ "workspace.move": "1d8d308b3a6f878ef36232c7776a6d78e9ffb05f0ff3bdb52476d3a71a98208a",
+ "workspace.move_block": "1c1fdf3cd9387152e09d676830998f961cf80143704940da4dc88b5c7cb639a9",
+ "workspace.rename": "0e00bc779c367ef3e7a154c63b9bbbf9b9bcaa9b198450f5c479f9b9956fa7cb",
+ "worktree.create": "e5cca6546ace513fa2f6ca48c2ec7bc3eebcd589feeb6b97b9d16fd415037399",
+ "worktree.list": "b0ee8d77a954fdd418f7719074b07484294ee1395cb4dc6e38ab831a5ffac000",
+ "worktree.open": "5ea3b41d74b095c12bf342cd5cde3f23e2e1b9c71281dfb7138e929484b26fae",
+ "worktree.remove": "49425bdf418edd0c7f95fc80f7060210e390d5f5f659efc9f47db749f3d9716b"
+}
diff --git a/tests/fixtures/endpoint-snapshot-v1.json b/tests/fixtures/endpoint-snapshot-v1.json
new file mode 100644
index 00000000..001229a3
--- /dev/null
+++ b/tests/fixtures/endpoint-snapshot-v1.json
@@ -0,0 +1,106 @@
+{
+ "boot_id": "boot-v1",
+ "revision": 7,
+ "config_diagnostic": "endpoint warning",
+ "product_announcement": {
+ "version": "1.0.0",
+ "id": "announcement-v1",
+ "title": "Announcement",
+ "body": "Body",
+ "preview": false
+ },
+ "update_available": "1.0.1",
+ "update_install_command": "herdr update",
+ "server_keybindings_toml": "[keys]",
+ "latest_release_notes_available": true,
+ "integration_updates_available": true,
+ "worktree_directory": "/worktrees",
+ "release_notes": {
+ "version": "1.0.1",
+ "body": "Notes",
+ "preview": true
+ },
+ "focused_workspace_id": "w1",
+ "focused_tab_id": "w1:t1",
+ "focused_pane_id": "w1:p1",
+ "tab_bar_right": [
+ {
+ "text": "host",
+ "accent": true
+ }
+ ],
+ "tab_bar_right_separator": " | ",
+ "agent_view_label": "focus",
+ "agent_order": ["w1:p1"],
+ "workspaces": [
+ {
+ "workspace_id": "w1",
+ "active_tab_id": "w1:t1",
+ "new_workspace_cwd": "/repo",
+ "number": 1,
+ "label": "repo",
+ "custom_label": false,
+ "branch": "main",
+ "git_ahead_behind": [1, 2],
+ "tokens": [["model", "opus"]],
+ "worktree": {
+ "key": "repo/main",
+ "label": "main",
+ "is_linked_worktree": true
+ },
+ "focused": true,
+ "agent_status": "future_status_from_new_server"
+ }
+ ],
+ "tabs": [
+ {
+ "tab_id": "w1:t1",
+ "workspace_id": "w1",
+ "number": 1,
+ "label": "main",
+ "custom_label": false,
+ "zoomed": false,
+ "focused": true,
+ "agent_status": "working"
+ }
+ ],
+ "panes": [
+ {
+ "pane_id": "w1:p1",
+ "workspace_id": "w1",
+ "tab_id": "w1:t1",
+ "label": "shell",
+ "cwd": "/repo",
+ "foreground_cwd": "/repo",
+ "focused": true,
+ "right_click_passthrough": false
+ }
+ ],
+ "agents": [
+ {
+ "pane_id": "w1:p1",
+ "workspace_id": "w1",
+ "tab_id": "w1:t1",
+ "name": "reviewer",
+ "display_agent": "Claude",
+ "agent": "claude",
+ "title": "Review",
+ "terminal_title": "Claude Review",
+ "terminal_title_stripped": "Claude Review",
+ "agent_status": "blocked",
+ "state_change_seq": 9,
+ "state_labels": [["blocked", "waiting"]],
+ "tokens": [["task", "review"]],
+ "focused": true
+ }
+ ],
+ "commands": [
+ {
+ "command_id": "command-v1",
+ "binding_label": "prefix+x",
+ "binding_labels": ["prefix+x"],
+ "action": "Shell",
+ "description": "Command"
+ }
+ ]
+}
diff --git a/tests/fixtures/endpoint-welcome-v1.json b/tests/fixtures/endpoint-welcome-v1.json
new file mode 100644
index 00000000..3d153dfa
--- /dev/null
+++ b/tests/fixtures/endpoint-welcome-v1.json
@@ -0,0 +1,11 @@
+{
+ "generation": 1,
+ "server_version": "0.8.2",
+ "snapshot_codec": "shell.snapshot.v1",
+ "surface_codec": "shell.surface.v1",
+ "input_codec": "shell.input.semantic.v1",
+ "blob_codec": "shell.blob.v1",
+ "methods": [
+ "pane.focus"
+ ]
+}