Repository navigation
feat(demos): add an opt-in sandboxed shell to page recordings - #534
Merged
Merged
Conversation
Some page Skills gate their own output with a CLI step. Without a shell, the Agent skips that step and a broken page can ship, as the archify diagram did. `--shell` gives a page recording the sandboxed Bash a video recording already gets. The default stays no shell.
A probe showed the sandboxed shell inherited the recorder's environment, including API keys, and could reach the SSH agent, GPG agent, keyring and session bus sockets under the runtime folder. Any Skill text that gets a shell could use them. The Agent now gets an allowlisted environment, and the sandbox denies the socket folders.
Collaborator
Author
|
Agent note (Claude Code, Harlan Agent Kit
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 Linked issue
No linked issue.
❓ Type of change
📚 Description
Some page Skills check their own output with a command. Page recordings had no shell, so the Agent skipped that check. The
tt-a1i/archify/archifydemo recorded on 2026-10-07 shipped broken this way.pnpm demo:record ... --shellgives a page recording the sandboxed Bash that a video recording already gets. The default stays no shell. The parsed input carries a taggedShellunion: a video always getssandboxed, and a page gets it only with the flag.The second commit closes two leaks that
--shellwould have widened to pages:$XDG_RUNTIME_DIRwas reachable. The sandbox now denies that folder, which also holds the GPG agent, keyring and session bus sockets.Both changes apply to video recordings too.
--shellalone does not let archify run itsfinalizecheck. That check needsbin/archify.mjs, andskilld rundoes not print executable files.The demo manifest does not record whether a run had a shell. A visitor's own Agent usually has a shell, so a shell run is the normal case. Video demos already run with one and record nothing, and nothing on the site would read the field.
📝 Migration
A verification recording uploaded four media files that nothing references. With
CLOUDFLARE_ACCOUNT_IDset to the account inwrangler.jsonc, delete them:Keep
desktop-35a0f40375.jpganddesktop-poster-9575d21ad9.jpgunder the same prefix. The live archify demo uses them.