cloudflare/computer @cloudflare/computer@0.3.0
cloudflare/computer
Captured source
source ↗published Sep 11, 2026seen 8hcaptured 8hhttp 200method plain
@cloudflare/computer@0.3.0
Repository: cloudflare/computer
Tag: @cloudflare/computer@0.3.0
Published: 2026-09-11T16:38:11Z
Prerelease: no
Release notes:
Minor Changes
- #110 `c85a255` Thanks @aron-cf! - The container's HTTP surface now requires a bearer token. The host generates a secret, passes it to the container as RPC_CLIENT_SECRET at launch, and sends it on /connect. Readiness at /health stays open, and leaving the variable unset disables the checks. Before opening a session the host checks that the container refuses an unauthenticated request and fails the connect if it does not, so a container or image predating this has to be recycled. The container's dial-back to the host carries the same secret, and the host refuses an upgrade that does not present it.
- #108 `3074d90` Thanks @aron-cf! - The /connect caller now provides both API & healthcheck endpoints. The container no longer builds either path itself, so a host is free to serve them wherever it likes.
- #110 `199fc17` Thanks @aron-cf! -
IWorkspaceContainerAPI.start()andrestart()now take a singleContainerLaunchSpecof{ env, enableInternet }instead of two arguments, and return which oflaunched,adoptedorrelaunchedhappened. Each launch records its spec, and a container found already running is relaunched unless it matches, because neither the environment nor the internet flag can be changed on a live container. A container started outside this API has no record and is relaunched rather than trusted.setInactivityTimeout()joins the interface so a caller that pre-starts containers, such as a warm pool, does not need to reach past it.
- #110 `c85a255` Thanks @aron-cf! - A command run through the shell no longer inherits the container's whole environment. It receives PATH, HOME, TMPDIR, TZ, LANG, TERM, the LC* family, and any variable prefixed COMPUTER_VAR*, which arrives with the prefix stripped so COMPUTER_VAR_NODE_ENV becomes NODE_ENV. A workspace that relied on some other inherited variable needs the prefix.
- #108 `3074d90` Thanks @aron-cf! - The UPSTREAM_URL environment variable has been removed along with the container's own sync loop. Syncing is driven by whichever peer holds the other end of the Cap'n Web session.
- #108 `3074d90` Thanks @aron-cf! - The Cap'n Web /ws endpoint has been renamed to /api at both ends of the connection. A durable object that routes the container's outbound upgrade must match /api in its own fetch handler. Support for the Cap'n Web HTTP batch transport has been removed, so /api carries a websocket only.
- #138 `25c603a` Thanks @aron-cf! -
Workspace.pull()andWorkspace.push()are now async iterables that commit one block of changes per iteration. This allows a caller to implement a deferred post-exec sync across several invocations. See [./docs/02_sync_protocol.md](./docs/02_sync_protocol.md) for details.
- #109 `e2dd6d8` Thanks @aron-cf! - Make the artifacts session id optional:
createArtifact(binding)now returns a client over the whole namespace rather than requiring a session to scope by. See [./docs/15_artifacts_interface.md](./docs/15_artifacts_interface.md) for details.
Patch Changes
- #96 `45fa716` Thanks @agent-think! - Fix issue where the edit tool would rewrite the whole file when oldText doesn't match exactly.