Skip to content

Commit 214629e

Browse files
fix(mux): strip internal stub note from PTY OpenAPI descriptions (#9315)
1 parent 5d86ef5 commit 214629e

2 files changed

Lines changed: 26 additions & 42 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 119
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-70af693bc68f1ed5f2678a59d9ad3bb8a9e9bf8356fac4c3080cbd1a117819f8.yml
3-
openapi_spec_hash: b29dfd448505a0a3a6686202f606b8f7
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-a248dcb8ee40eb7c0446077413996aa6a67b543a1f2a47272378641fa8791e7f.yml
3+
openapi_spec_hash: 0636ec3e6ef760052c346ecaa8a4107d
44
config_hash: 444e00951b440bf92e7548b2807584a4

src/runloop_api_client/resources/pty.py

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -68,22 +68,18 @@ def connect(
6868
effect. The response returns a PtyConnectView containing connect_url (a
6969
server-relative path to the WebSocket data plane), idle_ttl_seconds (how long
7070
this session is retained after the last client disconnects), and the resulting
71-
cols/rows. The interactive byte stream itself is intentionally not modeled in
72-
OpenAPI; see the controller-level documentation for the WebSocket close-code
73-
conventions. The single-attach contract is enforced when a client opens the
74-
WebSocket data plane, not on this bootstrap call: bootstrap always succeeds for
75-
a valid session_name, even if another client is currently attached. Rejection of
76-
a second concurrent attach happens at WebSocket upgrade time. If the active
77-
client disconnects, the session is preserved for the idle TTL so a later connect
78-
using the same session_name resumes the same shell. After the TTL expires, after
79-
an explicit close control action, or after the underlying Devbox lifecycle
80-
replaces the PTY process (such as through suspend/resume), a later request with
81-
the same session_name creates a fresh PTY session without the previous shell
82-
state.
83-
84-
Documentation note: this operation is published from mux strictly as an OpenAPI
85-
contract stub for the PTY service control plane. It is not evidence that mux
86-
itself serves the interactive PTY transport.
71+
cols/rows. The interactive terminal byte stream is exchanged over the WebSocket
72+
data plane and is not modeled in this OpenAPI contract; clients should connect
73+
to connect_url and exchange raw binary frames for terminal I/O. The
74+
single-attach contract is enforced when a client opens the WebSocket data plane,
75+
not on this bootstrap call: bootstrap always succeeds for a valid session_name,
76+
even if another client is currently attached. Rejection of a second concurrent
77+
attach happens at WebSocket upgrade time. If the active client disconnects, the
78+
session is preserved for the idle TTL so a later connect using the same
79+
session_name resumes the same shell. After the TTL expires, after an explicit
80+
close control action, or after the underlying Devbox lifecycle replaces the PTY
81+
process (such as through suspend/resume), a later request with the same
82+
session_name creates a fresh PTY session without the previous shell state.
8783
8884
Args:
8985
cols: Optional initial terminal width in character cells (1..=1000). Defaults to 80
@@ -158,10 +154,6 @@ def control(
158154
from the server's session cache. A subsequent connect with the same session_name
159155
will create a fresh PTY session.
160156
161-
Documentation note: this operation is published from mux strictly as an OpenAPI
162-
contract stub for the PTY service control plane. It is not evidence that mux
163-
itself serves the interactive PTY transport.
164-
165157
Args:
166158
extra_headers: Send extra headers
167159
@@ -241,22 +233,18 @@ async def connect(
241233
effect. The response returns a PtyConnectView containing connect_url (a
242234
server-relative path to the WebSocket data plane), idle_ttl_seconds (how long
243235
this session is retained after the last client disconnects), and the resulting
244-
cols/rows. The interactive byte stream itself is intentionally not modeled in
245-
OpenAPI; see the controller-level documentation for the WebSocket close-code
246-
conventions. The single-attach contract is enforced when a client opens the
247-
WebSocket data plane, not on this bootstrap call: bootstrap always succeeds for
248-
a valid session_name, even if another client is currently attached. Rejection of
249-
a second concurrent attach happens at WebSocket upgrade time. If the active
250-
client disconnects, the session is preserved for the idle TTL so a later connect
251-
using the same session_name resumes the same shell. After the TTL expires, after
252-
an explicit close control action, or after the underlying Devbox lifecycle
253-
replaces the PTY process (such as through suspend/resume), a later request with
254-
the same session_name creates a fresh PTY session without the previous shell
255-
state.
256-
257-
Documentation note: this operation is published from mux strictly as an OpenAPI
258-
contract stub for the PTY service control plane. It is not evidence that mux
259-
itself serves the interactive PTY transport.
236+
cols/rows. The interactive terminal byte stream is exchanged over the WebSocket
237+
data plane and is not modeled in this OpenAPI contract; clients should connect
238+
to connect_url and exchange raw binary frames for terminal I/O. The
239+
single-attach contract is enforced when a client opens the WebSocket data plane,
240+
not on this bootstrap call: bootstrap always succeeds for a valid session_name,
241+
even if another client is currently attached. Rejection of a second concurrent
242+
attach happens at WebSocket upgrade time. If the active client disconnects, the
243+
session is preserved for the idle TTL so a later connect using the same
244+
session_name resumes the same shell. After the TTL expires, after an explicit
245+
close control action, or after the underlying Devbox lifecycle replaces the PTY
246+
process (such as through suspend/resume), a later request with the same
247+
session_name creates a fresh PTY session without the previous shell state.
260248
261249
Args:
262250
cols: Optional initial terminal width in character cells (1..=1000). Defaults to 80
@@ -331,10 +319,6 @@ async def control(
331319
from the server's session cache. A subsequent connect with the same session_name
332320
will create a fresh PTY session.
333321
334-
Documentation note: this operation is published from mux strictly as an OpenAPI
335-
contract stub for the PTY service control plane. It is not evidence that mux
336-
itself serves the interactive PTY transport.
337-
338322
Args:
339323
extra_headers: Send extra headers
340324

0 commit comments

Comments
 (0)