Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/document-symlink-surface.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/expose-fs-rename.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/find-exclude-globs.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/mkdir-follows-symlinks.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/on-disk-computerd-store.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/selectable-exec-shell.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ copies the prebuilt binary out of the public GHCR image and into a thin
Debian base:

```dockerfile
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM debian:stable-slim

Expand Down
2 changes: 1 addition & 1 deletion examples/container/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# back to the userspace shim transparently.


FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM debian:stable-slim

Expand Down
2 changes: 1 addition & 1 deletion examples/egress/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM debian:bookworm-slim

Expand Down
2 changes: 1 addition & 1 deletion examples/mcp/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM node:22-bookworm-slim

Expand Down
2 changes: 1 addition & 1 deletion examples/think-compare-runtimes/Dockerfile.workspace
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# that do not expose /dev/fuse.


FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM --platform=linux/amd64 node:22-trixie-slim

Expand Down
2 changes: 1 addition & 1 deletion examples/think/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# surface reads and writes.


FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM debian:stable-slim

Expand Down
2 changes: 1 addition & 1 deletion examples/tutorial/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# through the Workspace is on disk for pandoc to read, and the PDF
# pandoc writes syncs back to the durable object.

FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd

FROM debian:stable-slim

Expand Down
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/computer-computerd-linux-x64/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ builds the binary, stages it into `bin/computerd`, and publishes the image
instead:

```dockerfile
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.3.0 AS computerd
FROM ghcr.io/cloudflare/computer-computerd-linux-x64:0.4.0 AS computerd
FROM debian:stable-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
Expand Down
2 changes: 1 addition & 1 deletion packages/computer-computerd-linux-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/computer-computerd-linux-x64",
"version": "0.3.0",
"version": "0.4.0",
"description": "Docker image context for the prebuilt computerd linux-x64 binary.",
"license": "MIT",
"private": true
Expand Down
18 changes: 18 additions & 0 deletions packages/computer/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# @cloudflare/computer

## 0.4.0

### Minor Changes

- [#124](https://github.com/cloudflare/computer/pull/124) `Workspace.fs` gains `rename(oldPath, newPath)`, exposing the store's existing transactional move through the public surface and through `WorkspaceFilesystemStub`. An existing destination is replaced when the two ends agree on kind — a file or symbolic link for a file or symbolic link, an empty directory for a directory — and the operation reports `ENOENT`, `ENOTEMPTY`, `EISDIR`, `ENOTDIR`, `EINVAL`, and `EROFS` as documented in `docs/04_filesystem_interface.md`. The Worker shell's `mv` now calls it, so an interrupted move no longer leaves the entry at both paths or a directory half copied. ([`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc)) - Thanks [@aron-cf](https://github.com/aron-cf)

- [#124](https://github.com/cloudflare/computer/pull/124) `find` accepts `exclude`, a list of glob patterns matched against the same directory-relative path as the inclusion glob. Exclusion is decided first, so it always wins, and an excluded directory is pruned during traversal: neither it nor anything below it is read. `limit` and `offset` apply to the matches that survive. The option travels through `WorkspaceFilesystem`, `WorkspaceFilesystemStub`, and the public find tool. ([`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc)) - Thanks [@aron-cf](https://github.com/aron-cf)

```ts
const sources = await workspace.fs.find("/workspace", "**/*.ts", {
exclude: ["node_modules", "node_modules/**", ".git", ".git/**"],
});
```

### Patch Changes

- [#124](https://github.com/cloudflare/computer/pull/124) Document the symbolic-link filesystem surface. `docs/04_filesystem_interface.md` claimed that symbolic links were internal and that `Workspace.fs` had no `symlink`, `readlink`, `lstat`, or `chmod`, none of which matched the shipped API. Those four methods now have sections of their own covering return values and the `ENOENT`, `EINVAL`, and `ELOOP` cases, the comparison with `node:fs/promises` maps them, and the specification explains that `stat` follows a trailing link while `lstat` reports the link itself. ([`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc)) - Thanks [@aron-cf](https://github.com/aron-cf)

## 0.3.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/computer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/computer",
"version": "0.3.0",
"version": "0.4.0",
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
"description": "Cloudflare Computer — a SQLite-backed virtual filesystem with sync to a container-side daemon (computerd).",
"license": "MIT",
"repository": {
Expand Down
12 changes: 12 additions & 0 deletions packages/computerd/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# @cloudflare/computerd

## 0.4.0

### Minor Changes

- [#139](https://github.com/cloudflare/computer/pull/139) The exec runner now takes an optional shell naming the interpreter each command runs under, and computerd reads the same value from EXEC_SHELL. Both default to /bin/sh, so existing behavior is unchanged. On a Debian-family image /bin/sh is dash, where bash-only syntax such as the PIPESTATUS array is a parse error that aborts the command rather than a missing feature, and that array is how a caller recovers the real exit status of a pipeline whose output it filters. Repointing /bin/sh in the image was the only previous workaround, which changes echo semantics for every other script in that image and is unavailable when the image is prebuilt. ([`5f310b6`](https://github.com/cloudflare/computer/commit/5f310b69421d334dfd3791216ca0a6a704a36efa)) - Thanks [@aron-cf](https://github.com/aron-cf)

### Patch Changes

- Updated dependencies [[`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc), [`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc), [`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc), [`ef8cd11`](https://github.com/cloudflare/computer/commit/ef8cd11040b222875f1d04e7cfd6553068e07bb7)]:
- @cloudflare/dofs@0.4.0
- @cloudflare/computer-rpc@0.4.0

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/computerd/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/computerd",
"version": "0.3.0",
"version": "0.4.0",
"description": "Computer daemon CLI and FUSE mount. Source-only; the distributable lives at @cloudflare/computer-computerd-linux-x64.",
"license": "MIT",
"private": true,
Expand Down
20 changes: 20 additions & 0 deletions packages/dofs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# @cloudflare/dofs

## 0.4.0

### Minor Changes

- [#124](https://github.com/cloudflare/computer/pull/124) `Workspace.fs` gains `rename(oldPath, newPath)`, exposing the store's existing transactional move through the public surface and through `WorkspaceFilesystemStub`. An existing destination is replaced when the two ends agree on kind — a file or symbolic link for a file or symbolic link, an empty directory for a directory — and the operation reports `ENOENT`, `ENOTEMPTY`, `EISDIR`, `ENOTDIR`, `EINVAL`, and `EROFS` as documented in `docs/04_filesystem_interface.md`. The Worker shell's `mv` now calls it, so an interrupted move no longer leaves the entry at both paths or a directory half copied. ([`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc)) - Thanks [@aron-cf](https://github.com/aron-cf)

- [#124](https://github.com/cloudflare/computer/pull/124) `find` accepts `exclude`, a list of glob patterns matched against the same directory-relative path as the inclusion glob. Exclusion is decided first, so it always wins, and an excluded directory is pruned during traversal: neither it nor anything below it is read. `limit` and `offset` apply to the matches that survive. The option travels through `WorkspaceFilesystem`, `WorkspaceFilesystemStub`, and the public find tool. ([`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc)) - Thanks [@aron-cf](https://github.com/aron-cf)

```ts
const sources = await workspace.fs.find("/workspace", "**/*.ts", {
exclude: ["node_modules", "node_modules/**", ".git", ".git/**"],
});
```

- [#123](https://github.com/cloudflare/computer/pull/123) Let `computerd` keep its workspace on disk instead of in memory, so it survives a restart. Set `COMPUTERD_DB` to a file path — see [the `computerd` README](../packages/computerd/README.md#on-disk-store). ([`ef8cd11`](https://github.com/cloudflare/computer/commit/ef8cd11040b222875f1d04e7cfd6553068e07bb7)) - Thanks [@aron-cf](https://github.com/aron-cf)

### Patch Changes

- [#124](https://github.com/cloudflare/computer/pull/124) `mkdir` now follows symbolic links in intermediate path segments, so a link to a directory resolves transparently instead of failing with `ENOTDIR`. Creating `/alias/new-directory` where `/alias` points at `/real` creates `/real/new-directory`, and recursive creation places its missing ancestors under the resolved parent. A resolved parent that is a file still reports `ENOTDIR`, a dangling parent link reports `ENOENT`, and a chain longer than the shared forty-hop budget reports `ELOOP`. ([`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc)) - Thanks [@aron-cf](https://github.com/aron-cf)

## 0.3.0

## 0.2.1
Expand Down
2 changes: 1 addition & 1 deletion packages/dofs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/dofs",
"version": "0.3.0",
"version": "0.4.0",
"private": true,
"type": "module",
"exports": {
Expand Down
7 changes: 7 additions & 0 deletions packages/rpc/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @cloudflare/computer-rpc

## 0.4.0

### Patch Changes

- Updated dependencies [[`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc), [`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc), [`e6a92c5`](https://github.com/cloudflare/computer/commit/e6a92c50cb53997bd601bdce0563b96276d0f8fc), [`ef8cd11`](https://github.com/cloudflare/computer/commit/ef8cd11040b222875f1d04e7cfd6553068e07bb7)]:
- @cloudflare/dofs@0.4.0

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/rpc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/computer-rpc",
"version": "0.3.0",
"version": "0.4.0",
"private": true,
"type": "module",
"exports": {
Expand Down
Loading