The disk
Each session has a 10 GB SQLite-backed disk owned by its Durable Object. It survives WebSocket drops, browser restarts, hibernation, and DO eviction.
$ echo "still here tomorrow" > /home/user/note.txt# close the tab, come back next week$ cat note.txtstill here tomorrowThe disk preserves arbitrary bytes, symlinks, stat metadata, and exec bits.
Write raw bytes with fs.writeFileSync and read them back unchanged.
chmod +x survives, and ./prog honors it. Every inode stores uid,
gid, and mode durably, and a process without permission gets EACCES
rather than silent success (security). The
VFS event bus sends coalesced file changes to the editor and dev servers,
which is what keeps Vite HMR working. Each path has a revision watermark,
so runtime caches know when to refresh.
The shell, all four runtimes, the editor, box.files in the SDK, and the
agent’s tools see the same bytes. A compiled C program can read with
fopen("./data.txt", "r") what cat sees.
Process writes stream to the supervisor with credit backpressure. A process
with no credit cannot send more. That lets a parallel npm install or an
84,000-file checkout fit inside a 128 MiB isolate. fsync and process exit
are durability boundaries, and hibernation does not lose a committed write.
Short-lived runtime paths read bounded, revision-invalidated snapshots for speed. Long-running processes use the live bridge. Every path follows one rule. A read sees the latest committed state or its own unflushed write. Inside the disk explains the machinery.