Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 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
528b0f3
feat: hibernate sandboxes with durable snapshots
kgpp34 Sep 25, 2026
0ebe3e6
feat: clone running sandboxes from snapshots
kgpp34 Sep 28, 2026
0fbe88e
perf: share snapshot memory and reflink clone disks
kgpp34 Sep 28, 2026
7c3e75e
test: model existing cgroup CPU control files
kgpp34 Sep 28, 2026
1ca7d63
feat: export and import portable snapshots
kgpp34 Sep 28, 2026
2426a2e
fix: classify x/sys as direct dependency
kgpp34 Sep 28, 2026
d4c4b7f
fix: import snapshots before target image is available
kgpp34 Sep 28, 2026
cd831de
feat: align snapshot transfer and sandbox lifecycle commands
kgpp34 Sep 28, 2026
29a7f1c
fix: retain running sandbox when guest reseed is unavailable
kgpp34 Sep 28, 2026
790dfa6
test: cover partial failures in batch image pulls
kgpp34 Sep 28, 2026
09f79d3
feat: resize running sandbox network interfaces
kgpp34 Sep 29, 2026
801db01
test: isolate sandbox CLI from host CNI
kgpp34 Sep 29, 2026
e63261c
Add live sandbox status and lock-safe garbage collection
kgpp34 Sep 29, 2026
5b4f4d6
Collect orphan image layers and missing snapshot records
kgpp34 Sep 29, 2026
45315f8
Add snapshot LRU eviction and process exit supervision
kgpp34 Sep 29, 2026
0dff898
Add runtime disk and PCI device hotplug
kgpp34 Sep 30, 2026
52fe65e
Add managed sandbox data disks
kgpp34 Sep 30, 2026
f89e1a8
Make multi-disk restore atomic and extend clone disks
kgpp34 Sep 30, 2026
cb1c8df
Keep optional capabilities checked at use sites
kgpp34 Sep 30, 2026
7227916
Separate snapshot-backed sandbox creation
kgpp34 Sep 30, 2026
9b3b1c7
Separate maintenance workflows from snapshot service
kgpp34 Sep 30, 2026
04e7ddf
Configure guest networking through agent protocol
kgpp34 Sep 30, 2026
8c8f61e
Centralize locked sandbox resolution
kgpp34 Sep 30, 2026
42d1601
Preserve IPv6 DNS in guest network updates
kgpp34 Sep 30, 2026
bd64754
Use named fields for error context
kgpp34 Sep 30, 2026
c82623c
Report Cloud Hypervisor exit status on failed start
kgpp34 Sep 30, 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