You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/specs/transport.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,6 +80,8 @@ VS Code-only workbench chord mirroring uses `dormouse:runWorkbenchCommand` from
80
80
| Direction | Message | Source type | Contract |
81
81
| --- | --- | --- | --- |
82
82
| Webview → host |`dormouse:openExternal`|`WebviewMessage`| Request the host to open a user-confirmed external URI from an OSC 8 hyperlink. Hosts must revalidate and reject malformed, control-character-bearing, or blocked pseudo-scheme targets (`javascript:`, `data:`, `blob:`, `about:`). |
83
+
| Webview → host |`pty:getOpenPorts`|`WebviewMessage`| Request the TCP listening ports opened by a PTY's shell process **and all of its descendant subprocesses**. The host resolves them from the PTY's root pid and replies with `pty:openPorts`. Source of truth: `getOpenPortsForPid()` in `standalone/sidecar/pty-core.js` (the VS Code extension loads it through the `lib/pty-core.cjs` shim). |
84
+
| Host → webview |`pty:openPorts`|`ExtensionMessage`| Reply to `pty:getOpenPorts`: `ports: OpenPort[]` (`{ protocol, family, address, port, pid, processName }`), de-duplicated by `(family, address, port)` and sorted by port. Empty array when the PTY is gone or enumeration fails. |
83
85
| Host → webview |`pty:data`|`ExtensionMessage`| PTY output after state-driving supported OSC sequences have been parsed/stripped; `OSC 8` hyperlinks are preserved for xterm.js and routed only to the owning router. |
84
86
| Host → webview |`pty:replay`|`ExtensionMessage`| Buffered raw output since spawn; the webview parses semantic OSCs during replay reconstruction without triggering alerts. |
85
87
| Host → webview |`dormouse:newTerminal`|`ExtensionMessage`| Payload may include `shell`, `args`, display `name`, `replaceUntouched`, and `announce`; the webview replaces the selected untouched terminal in-place only when `replaceUntouched` is true, otherwise it spawns a new pane. |
0 commit comments