Repository navigation
Coders can work in their own Upstash Box (0.22.0) - #2
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a box behind the Pty interface (tmux, events file) Smoke-tested against a real box (scripts/box-smoke.ts): output, typing, events and exit code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ox, its CLI through BoxPty; local sessions unchanged Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rom the base snapshot, desk and sign-in check in the box, sign-in in their terminal, Cloud boxes card in Settings Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…m (no Chrome for ARM; exact-build mismatch) Measured in a box: '--browser chromium' alone fails (wants chromium-1247, base has 1248); with --executable-path it opens pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A resumed session (Carry on, a follow-up message, the recovery after a restart) was given the desk path on this computer, so its CLI in the box exited 1 at the cd. deskOf() picks the box's desk for box recruits. The clean-up before a box CLI starts used pkill -x tmux, which matches nothing: tmux's server is named "tmux: server". It now finds the recruits' tmux servers by their command line (-L cd-...). Measured: CLIs left by restarts were stopped, and a crash mid-task resumes and finishes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…loud boxes Ctrl+C left a box recruit's CLI running in the box (its stop was sent without waiting, and the dungeon exited first). Quitting now waits for it, as it does for local CLIs. Measured: after Ctrl+C mid-task, nothing runs in the box. The guide's guild chapter says how to set up Upstash Boxes and move a coder into one; how-it-works and the code map describe the box layer. The switch-back note no longer claims the dungeon pauses the box. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Coders can work in their own Upstash Box: a Linux machine in the cloud, signed in once to the Overlord's own Claude or Codex subscription, with its own clone of the repo. It takes builds, tests and the test browser off this computer. Testers stay local.
What's in it
server/boxes.ts): the Box API through@upstash/box; key fromUPSTASH_BOX_API_KEY, a shared fine-grained GitHub token fromCODEDUNGEON_BOX_GITHUB_TOKEN(env or the Windows user environment, never written to a file or the box's disk); a base snapshot with tmux, the Playwright MCP and its Chromium, no logins.server/boxRunner.ts):BoxPtyimplementsPty. The CLI runs in tmux; the dungeon's terminal istmux attachover a PTY session that reconnects; hooks write to an events file the dungeon follows withtail -F.Measured in the test dungeon (Captain Pickle, port 4470)
pkill -x tmuxmatched nothing: tmux's server is named "tmux: server").Known limits
🤖 Generated with Claude Code