Context
Junior's sandbox runtime (packages/junior/src/chat/sandbox/README.md) already runs on Vercel's Sandbox API: an opaque SandboxRef, a bespoke workspace-snapshot build pipeline (SQL-tracked, sliced background job), and its own pause/resume-adjacent lifecycle for repo checkouts + setup scripts.
Separately, Developer Infrastructure is building Box (Notion: "Box (Remote Dev Environments)"), a harness-agnostic CLI/primitive for durable, provisioned Sentry devboxes — pause/resume, snapshot/fork, devserver-ready, credentials injected, meant to be usable by Claude Code, Codex, Cursor, and Junior alike. Box has also landed on Vercel Sandboxes as its provider.
Both systems now sit on the same underlying substrate (Vercel Sandboxes / MicroVMs) and solve overlapping problems: durable, resumable, snapshot-capable execution environments for agents working on Sentry code.
The ask
This issue is not a build task. It's a forcing function to get an explicit decision instead of two systems quietly diverging:
- Should Junior's workspace-snapshot system be replaced by, or built on top of, Box once Box is stable?
- If not, what capability does Junior's bespoke snapshot pipeline need that Box does not (and will not) provide — e.g. conversation-scoped lifecycle, credential isolation model, snapshot hash keyed on plugin/runtime dependency profile, cold-build timing guarantees?
- Who owns the decision — Junior/chat-runtime maintainers, Developer Infrastructure, or both jointly — and by when should it be revisited (e.g. when Box exits its current provider-evaluation phase)?
Why now
No one has proposed convergence yet, and the two efforts are on a path to duplicate plumbing (credential injection, pause/resume, snapshot forking) independently on the same substrate. Better to name the fork in the road early than reconcile two production systems later.
Non-goals
- This issue does not propose an implementation or migration plan.
- This issue does not assume convergence is correct — a documented decision to stay separate, with reasons, is an acceptable outcome.
cc: raised from a Slack discussion with Dave Rosenthal about the relationship between Junior's sandbox durability limitations and Box.
via Dave Rosenthal.
--
View Junior Session [Sentry]
Context
Junior's sandbox runtime (
packages/junior/src/chat/sandbox/README.md) already runs on Vercel's Sandbox API: an opaqueSandboxRef, a bespoke workspace-snapshot build pipeline (SQL-tracked, sliced background job), and its own pause/resume-adjacent lifecycle for repo checkouts + setup scripts.Separately, Developer Infrastructure is building Box (Notion: "Box (Remote Dev Environments)"), a harness-agnostic CLI/primitive for durable, provisioned Sentry devboxes — pause/resume, snapshot/fork, devserver-ready, credentials injected, meant to be usable by Claude Code, Codex, Cursor, and Junior alike. Box has also landed on Vercel Sandboxes as its provider.
Both systems now sit on the same underlying substrate (Vercel Sandboxes / MicroVMs) and solve overlapping problems: durable, resumable, snapshot-capable execution environments for agents working on Sentry code.
The ask
This issue is not a build task. It's a forcing function to get an explicit decision instead of two systems quietly diverging:
Why now
No one has proposed convergence yet, and the two efforts are on a path to duplicate plumbing (credential injection, pause/resume, snapshot forking) independently on the same substrate. Better to name the fork in the road early than reconcile two production systems later.
Non-goals
cc: raised from a Slack discussion with Dave Rosenthal about the relationship between Junior's sandbox durability limitations and Box.
via Dave Rosenthal.
--
View Junior Session [Sentry]