Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
367ece1
docs: define P12 rewrite approval gates
kgpp34 Sep 9, 2026
87561f2
refactor: reset source tree for P12 rewrite
kgpp34 Sep 9, 2026
5c5c275
feat: add tenant and content identities
kgpp34 Sep 9, 2026
e1c175b
feat: define sandbox identity and lifecycle state
kgpp34 Sep 9, 2026
f9455d7
refactor: align sandbox primitives with lifecycle model
kgpp34 Sep 9, 2026
b823802
feat: add operation identities
kgpp34 Sep 9, 2026
7af49e3
chore: remove the ChatGPT-authored core packages
kgpp34 Sep 10, 2026
04686b4
feat(doctor): report whether this machine can run KumaBox
kgpp34 Sep 10, 2026
b05da96
feat(doctor): port Cocoon's pre-flight checker
kgpp34 Sep 10, 2026
ff7072d
revert: doctor is the script, shipped as kumabox-check
kgpp34 Sep 10, 2026
abdb06e
feat: add host doctor command
kgpp34 Sep 10, 2026
957676c
fix: harden doctor host checks
kgpp34 Sep 10, 2026
8084ae8
refactor: keep OCI blobs in staging only
kgpp34 Sep 10, 2026
6c9fa7f
feat(images): complete S2 OCI import and integrity checks
kgpp34 Sep 14, 2026
44c22ed
feat: support Docker imports and modularize image management
kgpp34 Sep 14, 2026
72953a1
feat: improve image CLI output and progress reporting
kgpp34 Sep 14, 2026
5e8cf51
feat: add sandbox create workflow
kgpp34 Sep 15, 2026
939e2af
fix: migrate existing metadata roots
kgpp34 Sep 15, 2026
2cbd204
feat: add retryable sandbox removal
kgpp34 Sep 16, 2026
ce1c3e5
feat: add sandbox listing
kgpp34 Sep 16, 2026
01fee5b
feat: add sandbox inspection
kgpp34 Sep 16, 2026
4ad06eb
fix: update kumabox image short description
kgpp34 Sep 16, 2026
6b0a676
feat: start sandboxes with cloud hypervisor
kgpp34 Sep 16, 2026
ff383e1
feat: add recoverable sandbox stop
kgpp34 Sep 17, 2026
46f2e72
feat: add sandbox console and VMM backends
kgpp34 Sep 18, 2026
15aa88c
feat: add sandbox exec through guest agent
kgpp34 Sep 18, 2026
3766f75
fix: accept hybrid vsock assigned port
kgpp34 Sep 18, 2026
19f8456
fix: preserve structured error chains
kgpp34 Sep 18, 2026
bc8a559
refactor: centralize runtime configuration
kgpp34 Sep 18, 2026
a31d591
refactor: organize sandbox service workflows
kgpp34 Sep 18, 2026
bcb8f54
refactor: separate CLI and command boundaries
kgpp34 Sep 18, 2026
21e0f13
refactor: share CLI progress rendering
kgpp34 Sep 20, 2026
ff2d616
test: strengthen runtime lifecycle contracts
kgpp34 Sep 21, 2026
dfcb53f
test: stabilize binary signal synchronization
kgpp34 Sep 21, 2026
b459301
docs: publish project specifications
kgpp34 Sep 21, 2026
2b9ea4f
feat: add sandbox log streaming
kgpp34 Sep 21, 2026
c80d439
chore: keep project docs local
kgpp34 Sep 21, 2026
50ce576
feat: add CNI network foundation
kgpp34 Sep 22, 2026
a536d92
feat: provision sandbox networks
kgpp34 Sep 22, 2026
fbd0fe6
feat: connect sandbox networking to VMM
kgpp34 Sep 22, 2026
d391c9a
fix: include guest agent build dependencies
kgpp34 Sep 22, 2026
c74dd06
feat: add run command
kgpp34 Sep 22, 2026
a798d32
feat: add live snapshot management
kgpp34 Sep 22, 2026
bacc617
feat: restore sandboxes from snapshots
kgpp34 Sep 22, 2026
3259ee1
docs: update README.md
kgpp34 Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
**
!go.mod
!go.sum
!agent/
!agent/**
!errdefs/
!errdefs/**
!types/
!types/**
!version/
!version/**
!cmd/
!cmd/kumabox-agent/
!cmd/kumabox-agent/**
!oci-images/
!oci-images/ubuntu/
!oci-images/ubuntu/overlay.sh
!oci-images/ubuntu/network.sh
!oci-images/ubuntu/kumabox-agent.service
131 changes: 15 additions & 116 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ name: CI
on:
pull_request:
push:
branches:
- main
- develop
branches: [main, develop]

permissions:
contents: read
Expand All @@ -15,8 +13,11 @@ concurrency:
cancel-in-progress: true

jobs:
lint:
name: Lint
# verify covers T1/T2 only: pure models, coordinator ordering with fake ports,
# and real SQLite/filesystem integration. It needs no root and no KVM, so it
# runs on a plain runner. T3/T4 (real Cloud Hypervisor on Linux/KVM) are
# executed manually on Linux hosts with KVM and the required VMM tooling.
verify:
runs-on: ubuntu-latest
steps:
- name: Check out source
Expand All @@ -26,123 +27,21 @@ jobs:
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
cache: false

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.12
args: --timeout=5m

security:
name: Vulnerability scan
runs-on: ubuntu-latest
steps:
- name: Check out source
uses: actions/checkout@v4
- name: Verify
run: make verify

- name: Set up Go
uses: actions/setup-go@v5
with:
# Keep the scanner on a standard library version containing the
# security fixes reported by govulncheck. This does not change the
# project's minimum Go version in go.mod.
go-version: '1.26.6'
cache: true
- name: Race detector
run: make race

- name: Run govulncheck
run: go run golang.org/x/vuln/cmd/govulncheck@latest ./...

test:
name: Go ${{ matrix.go }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go:
- '1.24.x'
- stable

steps:
- name: Check out source
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
cache: true

- name: Download Go modules
run: go mod download

- name: Check formatting
shell: bash
run: |
files="$(gofmt -l .)"
if [[ -n "$files" ]]; then
printf 'Go files are not formatted:\n%s\n' "$files"
exit 1
fi

- name: Reject tracked local documentation
shell: bash
run: |
files="$(git ls-files docs)"
if [[ -n "$files" ]]; then
printf 'Files under docs/ are local-only and must not be tracked:\n%s\n' "$files"
exit 1
fi
- name: Lint
run: make lint

- name: Check module files
run: |
go mod tidy
git diff --exit-code -- go.mod go.sum

- name: Run vet
run: go vet ./...

- name: Run tests with race detection
run: go test -race -count=1 ./...

- name: Build all packages
run: go build ./...

- name: Check shell scripts
shell: bash
run: |
while IFS= read -r -d '' script; do
bash -n "$script"
done < <(find . -type f -name '*.sh' -not -path './.git/*' -print0)

- name: Test release installer
run: |
test/release/install.sh
test/release/check.sh

build:
name: Linux build
runs-on: ubuntu-latest
needs: test
steps:
- name: Check out source
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Build release-shaped binaries
env:
VERSION: 0.0.0-ci
COMMIT: ${{ github.sha }}
BUILD_TIME: ${{ github.event.head_commit.timestamp || github.event.repository.updated_at }}
run: make build

- name: Verify build outputs
run: |
test -x bin/kumabox
test -x oci-images/ubuntu/kumabox-agent-linux-amd64
./bin/kumabox version
- name: Reject tracked local documentation
run: test -z "$(git ls-files docs)"
142 changes: 0 additions & 142 deletions .github/workflows/release.yml

This file was deleted.

11 changes: 9 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@
.DS_Store
bin/
dist/
.rewrite-backup/
.claude/
coverage.out
# Local design and implementation notes must never be committed.
docs/
oci-images/ubuntu/kumabox-agent-linux-amd64
oci-images/ubuntu/kumabox-agent-linux-arm64

# Local Go and tooling caches are generated, never source.
.cache*/
.gocache*/
.gomodcache*/
gocache*/
gomodcache*/
Loading
Loading