Skip to content

docs(sandbox): correct two false mechanisms in the cursor comment - #854

Open
orveth wants to merge 1 commit into
mainfrom
fix/cursor-comment-mechanism
Open

docs(sandbox): correct two false mechanisms in the cursor comment#854
orveth wants to merge 1 commit into
mainfrom
fix/cursor-comment-mechanism

Conversation

@orveth

@orveth orveth commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Two statements in the sandbox Dockerfile's cursor comment were false. Both are the kind that end a reader's search, because each explains a real decision with a mechanism that does not exist.

The install-script paragraph named a user that does not exist

It said the script's /root/.local install "the agent user this image runs as cannot read". There is no agent user. /etc/passwd in the built image has one non-system entry, node:x:1000:1000, and the image sets no USER at all — so a bare docker run is root.

The decision to take the tarball instead of the script is still right, and the real mechanism is worse than the one written down. Jobs arrive as a host uid through docker run --user, which the same file already documents 100 lines further down. So an install under /root/.local is readable by a bare docker run and unreadable by every real job. It would pass exactly the test someone would think to run, and fail only when a buyer's sats are on it.

cursor-agent is not the program

The comment described a "4 KB launcher script, not the bundled Node application it execs". Measured: the launcher is 1,074 B of bash, and it execs the package's own bundled node — dist-package/node, ~129 MB. This image's /usr/local/bin/node does not run cursor.

That matters beyond the byte count. The reason for digesting the tarball rather than the launcher is stronger than stated: the digest has to cover the interpreter too, not just the .js beside it. And it moves the open gVisor question onto a different binary. "Node is the best-exercised workload on runsc" is a claim about the image's node, which is not the one that has to survive. The package also ships cursorsandbox and crepectl — the class of helper that reaches for namespace syscalls runsc may not implement.

This cannot change the image

Comment-only, and proven rather than asserted: strip every comment and blank line from this file at main and at this head, and the two are byte-identical. Zero instruction lines differ. The --version gate, the digests, the arch mapping and the layout check are all untouched.

Sequencing

Nothing here gates rc3. It is a correction to what the file tells the next reader, not to what it does.

🤖 Generated with Claude Code

The install-script paragraph explained itself with a user that does not
exist. It said /root/.local is unreadable by "the `agent` user this image
runs as"; there is no `agent` user, the image creates none, and it sets no
USER at all — so a bare `docker run` is root.

The decision to take the tarball is unchanged and the real mechanism is
worse. Jobs arrive as a host uid through `docker run --user`, which this
file already documents 100 lines below. So a /root/.local install is
readable by a bare `docker run` and unreadable by every real job: it passes
exactly the test someone would think to run, and fails only when a buyer's
sats are on it.

`cursor-agent` is also not the program. It is 1,074 B of bash that execs
the package's own bundled node (dist-package/node, ~129 MB), so this
image's /usr/local/bin/node does not run cursor. That strengthens the
reason for digesting the tarball — the digest has to cover the interpreter,
not just the .js beside it — and it moves the open gVisor question onto a
different binary, alongside the `cursorsandbox` and `crepectl` helpers the
package ships.

Comment-only, and proven rather than asserted: strip every comment and
blank line from this file at main and at this head and the two are
byte-identical. Zero instruction lines differ.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mobee Ready Ready Preview Aug 21, 2026 2:39pm

Request Review

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