Skip to content

@cloudflare/computer@0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 16:38
· 91 commits to main since this release

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() and restart() now take a single ContainerLaunchSpec of { env, enableInternet } instead of two arguments, and return which of launched, adopted or relaunched happened. 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() and Workspace.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 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 for details.

Patch Changes

  • #111 e9bbc50 Thanks @aron-cf! - Create missing parent directories while applying sync entries.

  • #96 45fa716 Thanks @agent-think! - Fix issue where the edit tool would rewrite the whole file when oldText doesn't match exactly.

  • #113 f35f5df Thanks @aron-cf! - Sync node_modules by default so package manager installs persist across workspace runtimes.