Skip to content

feat(csghub): sandbox API client, build split, unified Docker image#8

Open
GatewayJ wants to merge 7 commits intoOpenCSGs:mainfrom
GatewayJ:csghub-sandbox-manager
Open

feat(csghub): sandbox API client, build split, unified Docker image#8
GatewayJ wants to merge 7 commits intoOpenCSGs:mainfrom
GatewayJ:csghub-sandbox-manager

Conversation

@GatewayJ
Copy link
Copy Markdown

Add CSGHub sandbox backend behind -tags csghub (paths, service, box wiring). Split config DefaultDir for boxlite vs tenant PVC; shared env helpers for PicoClaw. Add docker/Dockerfile.unified, supervisord role configs, and SaaS env contract doc. Extend Makefile, onboarding/serve bootstrap, and ignore bin-csghub build outputs.

Add CSGHub sandbox backend behind -tags csghub (paths, service, box wiring).
Split config DefaultDir for boxlite vs tenant PVC; shared env helpers for PicoClaw.
Add docker/Dockerfile.unified, supervisord role configs, and SaaS env contract doc.
Extend Makefile, onboarding/serve bootstrap, and ignore bin-csghub build outputs.
@GatewayJ GatewayJ force-pushed the csghub-sandbox-manager branch from 8c71ffb to 73f2cf1 Compare April 20, 2026 13:54
@RussellLuo
Copy link
Copy Markdown
Collaborator

Review Suggestions

  • Ideally, most of the new code for csghub-sandbox should go under /internal/sandbox/csghub.
  • Let's keep the csghub-sandbox server changes out of csgclaw.
  • For other modifications that are not related to csghub-sandbox, it is recommended to optimize them in the next PR.

- Wire CSGHub agent/onboard/serve to BoxLite sandbox options
- Add cli/sandboxopts and expand tests for onboard/serve
- Simplify unified Docker image; drop supervisord multi-role conf
- Remove third_party Python sandbox-runtime in favor of BoxLite
- Update SaaS env contract docs

Made-with: Cursor
Remove CSGCLAW_BOOTSTRAP_MANAGER_IMAGE; align docs with ensureAutoOnboard.

Made-with: Cursor
- Add internal/sandbox/csghub (Provider, Runtime, Instance) and wire agent service.
- Centralize env var names and CSGHub sandbox loading in internal/config (env.go,
  sandbox_csghub.go); serve bootstrap uses config helpers; EnvSnapshot on startup.
- PVC RunnerVolumeSpec subpaths use <tid>/... without tenants/ prefix; update docs.
- Add service_csghub tests; Makefile and sandboxopts adjustments for csghub build.

Made-with: Cursor
- Add service_common.go with shared Create/Delete/EnsureManager/StreamLogs/CreateWorker
  delegating to boxliteBackend / csghubBackend
- Move Hub HTTP client types to internal/sandbox/csghubsdk; simplify sandbox package
- CSGHub: avoid extra GET after Reconcile via cached instance info; tidy instance timestamps
- Remove dead code (gatewayStartCommand tests, unused manager helpers, unused fields)
- Restore rt==nil guard in boxlite delete for test hooks

Made-with: Cursor
@GatewayJ GatewayJ force-pushed the csghub-sandbox-manager branch from efb4c4b to be6bb87 Compare April 22, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants