Skip to content

shell: deprecate in favour of @cloudflare/computer - #2564

Open
mattzcarey wants to merge 1 commit into
deprecate-shell/5-examples-docsfrom
deprecate-shell/6-deprecate-shell
Open

mattzcarey wants to merge 1 commit into
deprecate-shell/5-examples-docsfrom
deprecate-shell/6-deprecate-shell

Conversation

@mattzcarey

@mattzcarey mattzcarey commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Deprecates @cloudflare/shell and adds Migrating to @cloudflare/computer. The guide covers what changes, both storage schemas, and a script that copies a Shell workspace into Computer through workspace.fs. By default the script copies under /workspace, where Think and Computer's tools work. Cleanup deletes only the copied rows' exact R2 keys, so other namespaces that share a prefix keep their data.

What's included:

  • a changeset that publishes the deprecation;
  • deprecation banners in the Shell docs and README;
  • the package description now says "Deprecated: use @cloudflare/computer";
  • the root README, docs/index.md, AGENTS.md and design/workspace.md mark Shell as deprecated.

The two packages use different tables (cf_workspace_<namespace> and vfs_*), so switching doesn't move any data. The guide documents where each schema lives for people writing their own migration.

After this publishes, run npm deprecate @cloudflare/shell "Use @cloudflare/computer".

Docs and package metadata only.

Stacked on #2563.


Stack (merge in order, or merge the top to land them all together):

  1. examples(pi): move to @cloudflare/computer 0.5 #2559 examples(pi): move to @cloudflare/computer 0.5
  2. think, agents: work in a @cloudflare/computer Workspace #2560 think, agents: work in a @cloudflare/computer Workspace
  3. think: use the @cloudflare/computer workspace tools #2561 think: use the @cloudflare/computer workspace tools
  4. think: drop @cloudflare/shell #2562 think: drop @cloudflare/shell
  5. examples, docs: move off @cloudflare/shell #2563 examples, docs: move off @cloudflare/shell
  6. shell: deprecate in favour of @cloudflare/computer #2564 (this PR) shell: deprecate in favour of @cloudflare/computer
  7. think: deprecate createExecuteTool in favour of the Workspace exec tool #2565 think: deprecate createExecuteTool in favour of the Workspace exec tool

@changeset-bot

changeset-bot Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 65eae7d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@cloudflare/shell Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@agent-think

agent-think Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

✅ agents import sizes: no significant changes (11aac37c → 1ed438fd, workflow run)

@pkg-pr-new

pkg-pr-new Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

agents

npm i https://pkg.pr.new/agents@2564

@cloudflare/ai-chat

npm i https://pkg.pr.new/@cloudflare/ai-chat@2564

@cloudflare/codemode

npm i https://pkg.pr.new/@cloudflare/codemode@2564

hono-agents

npm i https://pkg.pr.new/hono-agents@2564

@cloudflare/shell

npm i https://pkg.pr.new/@cloudflare/shell@2564

@cloudflare/think

npm i https://pkg.pr.new/@cloudflare/think@2564

@cloudflare/voice

npm i https://pkg.pr.new/@cloudflare/voice@2564

@cloudflare/worker-bundler

npm i https://pkg.pr.new/@cloudflare/worker-bundler@2564

commit: 1ed438f

@mattzcarey
mattzcarey added this pull request to stack #2566 October 12, 2026 11:52
devin-ai-integration[bot]

This comment was marked as resolved.

@mattzcarey
mattzcarey force-pushed the deprecate-shell/6-deprecate-shell branch from 47e6e77 to 7a1314b Compare October 12, 2026 12:32

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Devin Review

Comment thread docs/shell/migrating-to-computer.md Outdated
// Absolute targets move with the files; relative ones need no change.
const target = entry.target.startsWith("/")
? at(entry.target)
: entry.target;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Relative links escape the migrated workspace

When a Shell link uses .. past the old root, copyShellWorkspace preserves its target under /workspace. The copied link resolves outside /workspace, leaving migrated files unreachable through that link.

Learn more

Shell normalizes relative symlink targets against the link's parent and clamps paths at / in resolveSymlink. Moving the link below /workspace adds a directory level. A relative target that previously traversed above / can now resolve outside /workspace, even though the target file was migrated there. Absolute targets are already rebased by the copy script.

Example: Shell has /file.txt and /link pointing to ../file.txt; Shell resolves the link to /file.txt. The copy creates /workspace/file.txt and /workspace/link pointing to ../file.txt, which resolves to /file.txt instead.

Recommended fix: Resolve relative targets against the original link parent using Shell's path normalization, rebase the resolved absolute path under root, then emit a relative target from the copied link's parent. Keep dangling-link behavior in mind when computing paths; no file lookup is needed.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed: the script resolves each target the way Shell does (against the link's directory, never above /), then moves it under root.

@mattzcarey
mattzcarey force-pushed the deprecate-shell/6-deprecate-shell branch from 7a1314b to 6d242a5 Compare October 12, 2026 14:09
@mattzcarey
mattzcarey force-pushed the deprecate-shell/6-deprecate-shell branch from 6d242a5 to 1ed438f Compare October 12, 2026 14:11
@mattzcarey
mattzcarey force-pushed the deprecate-shell/6-deprecate-shell branch from 1ed438f to 65eae7d Compare October 12, 2026 16:16
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.

1 participant