Skip to content

Dx 2953 - Full Filesystem and websocket support - #786

Merged
CahidArda merged 2 commits into
mainfrom
DX-2953
Aug 25, 2026
Merged

Dx 2953 - Full Filesystem and websocket support#786
CahidArda merged 2 commits into
mainfrom
DX-2953

Conversation

@alitariksahin

Copy link
Copy Markdown
Contributor

No description provided.

Documents what shipped with exec.session and the filesystem release.

Adds a Live Sessions page covering the interaction model that exec.command
cannot express: starting a process and holding it open, writing to stdin and
closing it so an EOF-reading command finishes, allocating a real terminal with
a size, signalling the process tree, and the ownership rule that closing the
handle or losing the connection stops the command. Includes the Node-only
restriction, a table for choosing between command, stream, and session, and
worked examples for driving a REPL, answering an installer prompt, and stopping
a build that overruns.

Extends the Filesystem page with ranged reads, stat (including follow and the
version token for optimistic concurrency), mkdir with parents, rename, and
remove with recursive.

Every snippet on both pages was run against a real box in both SDKs. The new
examples use workspace-relative paths, which resolve, rather than the /work
prefix used elsewhere on these pages, which does not exist in a box.
…trix

Addresses review on DX-2953.

The teardown section claimed both SDKs expose a context manager. Only Python
does; the JavaScript handle has no Symbol.dispose, so the try/finally in its
example was right and the prose was wrong.

The terminate note said to "send KILL", which reads as an argument to terminate.
It now names kill("KILL"), matching the snippet below it.

Timeout units were mixed: Python wait() takes seconds while terminate() takes
milliseconds, so wait(300) next to terminate(5000) invited a copy-paste error.
Examples now use wait() with no argument as the analogue of the JavaScript call,
every remaining timeout is labelled with its unit, and the difference between
the two wait() signatures is stated once up front.

The EphemeralBox capability matrix predated both releases. EphemeralBox forwards
exec and files wholesale, so it already has exec.session and stat/mkdir/rename/
remove; verified against a real ephemeral box rather than inferred from the
forwarding.

Also links the how-it-works Shell row to the new page, widens its Filesystem row
now that files does more than transfer, and regenerates llms.txt and
llms-full.txt so CI does not have to commit them.
@alitariksahin alitariksahin self-assigned this Aug 24, 2026
@mintlify

mintlify Bot commented Aug 24, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
upstash 🟢 Ready View Preview Aug 24, 2026, 3:53 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@linear-code

linear-code Bot commented Aug 24, 2026

Copy link
Copy Markdown

DX-2953

@context7

context7 Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Docs7 preview for upstash.com

Status Commit Updated (UTC)
✅ Ready (visit preview) 05a1e10 2026-08-24 15:54

@context7
context7 Bot temporarily deployed to Docs7 Preview: DX-2953 August 24, 2026 15:51 Destroyed
@context7

context7 Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Docs7 review for upstash.com · 05a1e10

No problems found.

Open this review on Docs7

@alitariksahin alitariksahin changed the title Dx 2953 Dx 2953 - Full Filesystem and websocket support Aug 24, 2026
@CahidArda
CahidArda merged commit 75e920e into main Aug 25, 2026
5 checks passed
@CahidArda
CahidArda deleted the DX-2953 branch August 25, 2026 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants