diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-02 02:45:20 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-02 02:45:20 +0300 |
| commit | cc88b3b8e5bb9f7d9f23ed6ae85a52fd7b5b9ed6 (patch) | |
| tree | 4d37c760099070f1a1488b61c7b7271875aafef8 /tests/fixtures | |
| parent | 18e69891dca486d669a584facd80644bb51f54a2 (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.json | 25 | ||||
| -rw-r--r-- | tests/fixtures/endpoint-method-shapes-v1.json | 39 | ||||
| -rw-r--r-- | tests/fixtures/endpoint-snapshot-v1.json | 106 | ||||
| -rw-r--r-- | tests/fixtures/endpoint-welcome-v1.json | 11 |
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" + ] +} |
