fix(hub): control-box image carries the CLI + persistent projects volume#225
Merged
Merged
Conversation
…nt projects volume The hub queue (web-UI creates, queued agent runs, host-app launchers) spawns 'node $AGENTBOX_CLI_ENTRY …', but the control-box image never built apps/cli and set no entry — a web-UI create failed instantly with 'cannot spawn queue worker'. Build the CLI in the image and set AGENTBOX_CLI_ENTRY. Also mount a persistent /root/projects volume: the full-host hub keeps real project clones (the worker's per-job temp checkouts are deleted after create and make broken 'projects' in the UI — backlog). Found live on the deployed control box (final goal-scenario verify). Claude-Session: https://claude.ai/code/session_01QnaMFuHVZUdTq5VzxiSg2L
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
madarco
added a commit
that referenced
this pull request
Jul 15, 2026
All four phases live-verified against the deployed Hetzner control box: web-UI box create + host-off push (PC relay hard-killed, branch advanced on GitHub via control-box lease). Records fixes #225/#226 and four new backlog findings (notably the web-UI/queue create path not wiring git leasing). Claude-Session: https://claude.ai/code/session_01QnaMFuHVZUdTq5VzxiSg2L
madarco
added a commit
that referenced
this pull request
Jul 16, 2026
All four phases live-verified against the deployed Hetzner control box: web-UI box create + host-off push (PC relay hard-killed, branch advanced on GitHub via control-box lease). Records fixes #225/#226 and four new backlog findings (notably the web-UI/queue create path not wiring git leasing). Claude-Session: https://claude.ai/code/session_01QnaMFuHVZUdTq5VzxiSg2L
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Fifth live finding (final verify): web-UI create on the control box failed — the image had no built CLI and no AGENTBOX_CLI_ENTRY for the queue worker, and the only 'projects' were the worker's deleted temp clones. Image now builds apps/cli + sets the entry; compose mounts a persistent /root/projects volume for real checkouts. Typecheck green; live re-verify follows.
https://claude.ai/code/session_01QnaMFuHVZUdTq5VzxiSg2L
Note
Low Risk
Packaging and volume-mount changes for self-hosted hub deployment; no application auth or business-logic changes in this diff.
Overview
Fixes web-UI box creation on the control-box Docker image, which could list boxes but could not actually create them because the image never built the agentbox CLI and did not expose where workers should re-exec it.
The hub Dockerfile now runs
pnpm turbo run build --filter=@madarco/agentboxand setsAGENTBOX_CLI_ENTRY=/repo/apps/cli/dist/index.jsso the resident create queue and host-app launchers can spawnnode $AGENTBOX_CLI_ENTRY …as intended.docker-compose adds a host-mounted volume (
AGENTBOX_HUB_PROJECTS_DIR, default/opt/agentbox-projects) at/root/projectsso project checkouts used for UI-driven creates persist across image rebuilds instead of living only in ephemeral worker temp dirs.Reviewed by Cursor Bugbot for commit 768a92f. Configure here.