Skip to content

feat: Go launcher + docs consolidation#11

Merged
robbycochran merged 2 commits into
mainfrom
rc-go
Jun 4, 2026
Merged

feat: Go launcher + docs consolidation#11
robbycochran merged 2 commits into
mainfrom
rc-go

Conversation

@robbycochran

Copy link
Copy Markdown
Collaborator

Summary

  • Go launcher: Rewrites sandbox/launcher/entrypoint.sh (bash+Python) as a single-file Go program (main.go). Eliminates python3/pip/tomli dependencies. Produces a 3.2MB static binary running from a scratch Docker image (~50MB vs ~200MB with UBI9). Same observable behavior, 7 unit tests.
  • Docs consolidation: Adds SPEC.md (implementation-independent harness spec), rewrites README, extracts TOML parsing to lib/parse-profile.py, removes dead code.

Changes

Launcher (Go rewrite)

  • sandbox/launcher/main.go — gateway mTLS config, TOML parsing, provider detection, file staging, sandbox creation with retry, upload, startup
  • sandbox/launcher/main_test.go — 7 unit tests (config parsing with defaults, missing/invalid files, env staging, GWS credential copying)
  • sandbox/launcher/go.mod — single dependency: github.com/BurntSushi/toml
  • sandbox/launcher/Dockerfile — scratch-based (was UBI9 with bash+python3+pip+openssh)
  • Makefile — new cli-launcher target for cross-compilation

Docs

  • SPEC.md — implementation-independent specification of the harness
  • README.md — rewritten for clarity
  • lib/parse-profile.py — extracted from inline Python in profile.sh

Test plan

  • go test ./... passes (7/7 tests)
  • GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build produces static ELF binary
  • make launcher builds scratch-based Docker image
  • make test-ocp passes with Go launcher (same behavior as bash)

🤖 Generated with Claude Code

robbycochran and others added 2 commits June 4, 2026 07:48
Replace the bash+Python launcher (entrypoint.sh) with a single-file Go
program. Eliminates python3, pip, and tomli dependencies. Produces a
3.2MB static binary that runs from a scratch-based Docker image alongside
the openshell CLI — ~50MB total vs ~200MB with UBI9.

Same observable behavior: gateway mTLS config, TOML profile parsing,
provider detection, file staging, sandbox creation with retry, upload,
and startup. 7 unit tests covering config parsing and file staging.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@robbycochran robbycochran merged commit 4a4798d into main Jun 4, 2026
@robbycochran robbycochran deleted the rc-go branch June 13, 2026 14:02
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.

1 participant