docs(infra-local): box boot via the API is verified#884
Conversation
…ified) Verified 2026-06-29 on the local stack: POST /api/v1/boxes (no image default-resolves to agent-base) creates a box that boots creating -> started, POST .../stop stops it, and a proxy call (POST .../:id/exec) on a stopped box auto-starts it. The dashboard "Create Box" UI is still incomplete (image picker removed / PostHog-gated), but the box-boot caveat itself was stale.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthrough
ChangesInfra-local README update
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 43e2f8896a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| > **Box boot via the API works** (verified 2026-06-29). `POST /api/v1/boxes` with | ||
| > no `image` default-resolves to `ghcr.io/boxlite-ai/boxlite-agent-base:v0.1.0`, | ||
| > creates the box, and it boots `creating → started`; `POST .../stop` stops it, | ||
| > and a proxy call (`POST .../:id/exec`) on a stopped box auto-starts it. The |
There was a problem hiding this comment.
Document the explicit start step before stopped-box exec
When the box has actually reached state=stopped, desiredState=stopped, this documented flow sends users to POST .../:id/exec, but that endpoint is only a proxy (BoxliteProxyController.proxyExec → proxyToRunner, apps/api/src/boxlite-rest/boxlite-proxy.controller.ts:45-53 and 177-213) and never calls BoxService.start; the desired-state flip to STARTED is done by the explicit start endpoint (apps/api/src/boxlite-rest/boxlite-box.controller.ts:177, apps/api/src/box/services/box.service.ts:816-819). The runner also classifies stopped execs as a conflict (apps/runner/pkg/api/controllers/boxlite_exec.go:76-86), so API-only validation will fail unless callers POST /api/v1/boxes/:id/start before exec.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Good catch — fixed in 61a6dad. The "proxy exec auto-starts a stopped box" behavior is from #861 (ensureStartedForProxy/startHint), which isn't merged to main yet, so it doesn't hold on this base branch. Dropped that clause; the doc now states only what's true on main (create → boot → stop via the API).
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/infra-local/README.md`:
- Around line 92-98: The README’s default box image is stale and does not match
the API fallback used by box creation. Update the documentation in the box boot
section to reflect the current default from curated-images.constant.ts and the
create-box path in the API, keeping the rest of the verification notes intact.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 59ceb5b0-674e-4825-8762-e38d4f6b4d8c
📒 Files selected for processing (1)
apps/infra-local/README.md
… autostart claim Address review on #884: - CR (Major): documented default `v0.1.0` is stale. main's curated-images.constant.ts resolves no-image creates to boxlite-agent-base:20260605-p0-r3, and the tag rotates — reference the constant instead of pinning a value that goes stale. - Codex (P2): the "proxy exec auto-starts a stopped box" behavior comes from #861 (not yet merged); main's proxyExec doesn't trigger it. Dropped that clause so the doc states only what's true on main: create -> boot -> stop via the API.
Pull request was closed
What
Corrects a stale caveat in
apps/infra-local/README.md. The doc said "Box boot is unverified on this stack" — that's no longer true.Evidence (verified 2026-06-29 on the local stack)
End-to-end, API-only:
POST /api/v1/boxes(noimage) → default-resolvesghcr.io/boxlite-ai/boxlite-agent-base:v0.1.0→ box bootscreating → started.POST /api/v1/boxes/:id/stop→stopped.POST /api/v1/boxes/:id/exec, also/metrics) →desiredStateflipsSTOPPED → STARTED→box_syncauto-boots it back tostarted.execon the auto-started box → returns anexecution_id(success).Scope
Discovered while running the exec-autostart e2e for #861; this fix is intentionally separate from that PR.
Summary by CodeRabbit