Add cowsay/fortune, auto-open Claude Code, and a shared scratch volume to sandbox
cowsay/cowthink/fortune install to /usr/games on Debian, not on this image's PATH by default - added the packages and extended PATH via ENV so nvim's start-screen header (plugins/ui.lua) can actually find them as non-login subprocesses. That surfaced a real, pre-existing bug in ui.lua itself (unrelated to the sandbox): `cowsay -l` wraps cow names across multiple space-separated lines after a header line, but the code treated each whole line as a single cow name, so a wrapped line got passed to cowthink -f as one bogus multi-word argument. Fixed to parse every name from every line. Verified directly against the real cowsay/fortune installed in the image. The sandbox now opens claudecode.nvim's terminal on startup (CLAUDE_SANDBOX- gated, so this doesn't affect normal host nvim use) instead of requiring <leader>ac - starting a Claude session is the point of being in there. :ClaudeCode is only defined once the plugin loads (it's lazy-loaded on that keymap, no `cmd` in its spec), so the autocmd force-loads it first. Also adds an optional read-write scratch volume (~/shared in the container, $SANDBOX_SHARE_DIR on the host, auto-created) separate from the project mount, for passing files back and forth with a sandboxed session without touching the actual project checkout. Mentioned in sandbox-context.sh so a sandboxed agent knows it's there.
This commit is contained in:
@@ -50,7 +50,16 @@ if [ -z "${GH_TOKEN:-}" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Read-write scratch space, separate from WORKSPACE_DIR, for passing files
|
||||
# (screenshots, temp scripts) back and forth with a sandboxed session without
|
||||
# touching the actual project checkout. Persists across sessions (it's a
|
||||
# real host directory, not a container volume) since the point is sharing
|
||||
# things with the host, not just scratch space for one run.
|
||||
SANDBOX_SHARE_DIR="${SANDBOX_SHARE_DIR:-$HOME/.local/share/claude-sandbox/shared}"
|
||||
mkdir -p "$SANDBOX_SHARE_DIR"
|
||||
|
||||
export WORKSPACE_DIR
|
||||
export SANDBOX_SHARE_DIR
|
||||
export SSH_AUTH_SOCK
|
||||
export SSH_KNOWN_HOSTS="${SSH_KNOWN_HOSTS:-$HOME/.ssh/known_hosts}"
|
||||
export GITEA_TOKEN="${GITEA_TOKEN:-}"
|
||||
|
||||
Reference in New Issue
Block a user