Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1457 commits
Select commit Hold shift + click to select a range
f6670ee
docs(qa): record current image and kernel import qualification
AlanD20 Oct 9, 2026
da68d81
test: align partial init and disabled reset retry contracts
AlanD20 Oct 9, 2026
ed8a27d
test: align volume hotplug cases with current contracts
AlanD20 Oct 9, 2026
c04c504
docs: record administrator recovery and bounded hotplug qualification
AlanD20 Oct 9, 2026
322a094
docs: update release checkpoint after administrator recovery pass
AlanD20 Oct 9, 2026
7f583f6
docs: record diagnosed live-volume PCI reattach failure
AlanD20 Oct 9, 2026
41b91b9
docs: record current cached-kernel import options pass
AlanD20 Oct 9, 2026
93e25d6
docs: qualify running protected-rootfs image import
AlanD20 Oct 9, 2026
5132ea3
docs: qualify paused and stopped protected-rootfs imports
AlanD20 Oct 9, 2026
256604f
docs: align image-import matrix row with current evidence
AlanD20 Oct 9, 2026
7a4a99d
fix(volume): verify exact guest readiness before live attach succeeds
AlanD20 Oct 9, 2026
046e834
docs: describe verified live-attachment completion contract
AlanD20 Oct 9, 2026
e6c00b3
docs: record current local image import and removal qualification
AlanD20 Oct 9, 2026
6c14e38
docs: record readiness build and cached image option qualification
AlanD20 Oct 9, 2026
e5a6267
docs: record verified export copy-failure recovery
AlanD20 Oct 9, 2026
7521f39
docs: align architecture qualification checkpoints
AlanD20 Oct 9, 2026
3e00e00
fix: preserve VM rootfs export recovery on interruption
AlanD20 Oct 9, 2026
bfdece1
test: bind VM import fault fixtures to public process receipts
AlanD20 Oct 9, 2026
60dc4f6
docs: specify export interruption recovery and record warm QA
AlanD20 Oct 9, 2026
ef14720
docs: record coherent export-fix CI and release build
AlanD20 Oct 9, 2026
0b3762d
test: assert public VM export release refusal envelope
AlanD20 Oct 9, 2026
e84ead2
docs: record installed export candidate and snapshot recovery QA
AlanD20 Oct 9, 2026
b3500b2
test: cover deferred paused volume readiness and immediate I/O
AlanD20 Oct 9, 2026
9255f12
docs: record qualified SIGINT export recovery and pending receiver-de…
AlanD20 Oct 9, 2026
645bd2a
docs: align QA run guide with current installed export candidate
AlanD20 Oct 9, 2026
06e83dc
test(volume): read paused process identity from VM list
AlanD20 Oct 9, 2026
5760a3e
test: prove CPU pause independently during export death recovery
AlanD20 Oct 9, 2026
10b929f
docs: record installed attachment readiness and force-pull option passes
AlanD20 Oct 9, 2026
c613de5
test: tolerate exited ancestry during export receiver discovery
AlanD20 Oct 9, 2026
47967bc
docs: record running and stopped image dependency refusal QA
AlanD20 Oct 9, 2026
2334676
docs: qualify explicit replacement before default image removal
AlanD20 Oct 9, 2026
e2fd988
test(images): assert batch resume refusal response
AlanD20 Oct 9, 2026
1300b64
fix(vm): authorize resume idempotence from root state
AlanD20 Oct 9, 2026
70d46a2
docs: record resume authority correction and focused QA
AlanD20 Oct 9, 2026
4c2487f
docs: record resume CI build and runner installation
AlanD20 Oct 9, 2026
57efa48
docs: qualify installed resume recovery and idempotence
AlanD20 Oct 9, 2026
0118c0f
docs: qualify cached kernel default and removal
AlanD20 Oct 9, 2026
9a9f3c6
docs: record kernel registry and stopped-reference QA
AlanD20 Oct 9, 2026
36215b3
test(kernel): isolate and own Firecracker acquisition results
AlanD20 Oct 9, 2026
c1bb6a5
docs: clarify asset mirror filename and origin limits
AlanD20 Oct 9, 2026
8f8748b
docs: define explicit protected-cache retirement authority
AlanD20 Oct 9, 2026
ac69171
test(host): add durable reboot qualification phases
AlanD20 Oct 9, 2026
2991094
test(privileged): read receiver diagnostics after subprocess wait
AlanD20 Oct 9, 2026
83aa077
docs: include closed reboot proof in release usage
AlanD20 Oct 9, 2026
af285c1
test(kernel): retain one receipt-owned acquisition store per sequence
AlanD20 Oct 9, 2026
3231191
docs: record console qualification and explicit reboot workflow
AlanD20 Oct 9, 2026
e199d99
docs: pin protected-cache capture and durable retirement order
AlanD20 Oct 9, 2026
a92d7ec
docs: clarify retirement retry and observational QA memory checks
AlanD20 Oct 9, 2026
0469195
fix: retire admitted protected caches through durable root capture
AlanD20 Oct 9, 2026
752110f
docs: distinguish integrated cache retirement from runtime qualification
AlanD20 Oct 9, 2026
40fc80a
docs: define fresh root-authority layout for protected branches
AlanD20 Oct 9, 2026
9322680
docs: record completed cache CI and named-runner installation
AlanD20 Oct 10, 2026
f5134df
docs: qualify standalone SIGINT export recovery
AlanD20 Oct 10, 2026
7fa57a7
test(kernel): initialize receipt-bound retained cache before inventory
AlanD20 Oct 10, 2026
f3ccc67
docs: record retained kernel initialization correction
AlanD20 Oct 10, 2026
5f42000
test(kernel): own official producer acquisition sequence
AlanD20 Oct 10, 2026
b254f01
fix: retain protected branch authority outside cache retirement
AlanD20 Oct 10, 2026
4bc51ee
fix(kernel): return committed default pull result
AlanD20 Oct 10, 2026
e334ccf
docs: record branch authority and kernel result integration
AlanD20 Oct 10, 2026
ed16366
test(kernel): admit closed normal cache initialization outputs
AlanD20 Oct 10, 2026
d7c7721
docs: record coherent branch-layout release gates
AlanD20 Oct 10, 2026
f661fba
docs: record original kernel acquisition cleanup qualification
AlanD20 Oct 10, 2026
72b0be4
test: bind host reboot receipt to observed finite controls
AlanD20 Oct 10, 2026
5051e57
docs: remove mandatory QA memory envelope instructions
AlanD20 Oct 10, 2026
af21587
docs: record installed shared-filesystem cache retirement evidence
AlanD20 Oct 10, 2026
a604771
test: initialize official kernel QA with trusted default pair
AlanD20 Oct 10, 2026
74d7f7c
docs: record trusted official kernel fixture checks
AlanD20 Oct 10, 2026
d245d6a
test(cache): qualify protected snapshot and volume retirement
AlanD20 Oct 10, 2026
5267b3b
docs: record distinct-filesystem retirement qualification
AlanD20 Oct 10, 2026
03d2dd6
docs: include required domain in host reboot commands
AlanD20 Oct 10, 2026
86f3273
test: bound official kernel pulls in owned private process groups
AlanD20 Oct 10, 2026
1be44df
docs: record scoped official kernel timeout correction
AlanD20 Oct 10, 2026
3fd60b6
test: allow host reboot cold guest agent connection
AlanD20 Oct 10, 2026
2a00f3e
test: use SSH for named host reboot orchestration
AlanD20 Oct 10, 2026
ffd1fa0
docs: record scoped named runner SSH reboot correction
AlanD20 Oct 10, 2026
269e074
docs: record actual reboot staging and exec readiness failures
AlanD20 Oct 10, 2026
a90fcfb
test: persist host reboot phase inputs before force reboot
AlanD20 Oct 10, 2026
190dfff
docs: record reboot input durability correction and focused checks
AlanD20 Oct 10, 2026
6af6c51
test: retain last directional exec readiness failure
AlanD20 Oct 10, 2026
fba1ec9
docs: record narrowed guest agent readiness failures
AlanD20 Oct 10, 2026
74a916d
test(host): assert boot-derived network absence before repair
AlanD20 Oct 10, 2026
211dbde
docs: record completed installed host reboot journey
AlanD20 Oct 10, 2026
a6a1946
docs: record early OpenRC agent startup decision
AlanD20 Oct 10, 2026
329c874
fix(loopmount): start OpenRC guest agent in boot runlevel
AlanD20 Oct 10, 2026
c54bfe8
docs: describe implemented early OpenRC agent provisioning
AlanD20 Oct 10, 2026
676b3fc
test(vm): assert cold networkless agent readiness within five seconds
AlanD20 Oct 10, 2026
704545d
docs: align system run guide with completed host reboot proof
AlanD20 Oct 10, 2026
ea88db4
test(vm): select preseeded Alpine for cold networkless lifecycle
AlanD20 Oct 10, 2026
dcc3e10
docs: record passing installed early-agent regression cases
AlanD20 Oct 10, 2026
5c7c87f
test(vm): select preseeded Alpine for pressure fixture
AlanD20 Oct 10, 2026
3f511a0
docs: clarify operator storage and runtime contracts
AlanD20 Oct 10, 2026
bc37d17
docs: condense 0.3.0 changelog for release readers
AlanD20 Oct 10, 2026
b773883
docs: record bounded official-kernel and pressure qualification
AlanD20 Oct 10, 2026
8411192
test: budget kernel domain for bounded official builds
AlanD20 Oct 10, 2026
408faf6
docs: record coherent Go CI and root qualification
AlanD20 Oct 10, 2026
24ff649
qa: retain named runner evidence and finalize release proofs
AlanD20 Oct 10, 2026
e467a17
fix(image): use case-sensitive Ubuntu Minimal checksum URL
AlanD20 Oct 10, 2026
2631ac4
qa: account exact collected nodes and verified release carry
AlanD20 Oct 10, 2026
f76ff49
docs: document exact-node release evidence workflow
AlanD20 Oct 10, 2026
7365d39
fix: admit matching Firecracker and Jailer 1.17.0 pair
AlanD20 Oct 10, 2026
423c176
test: qualify runner fixtures with Firecracker 1.17.0
AlanD20 Oct 10, 2026
a615cd3
docs: align operator guidance with approved Firecracker 1.17.0 pair
AlanD20 Oct 10, 2026
86c4ef5
docs: record reviewed Firecracker 1.17.0 launch policy
AlanD20 Oct 10, 2026
88529ff
docs: bound Firecracker ELF audit claim to observed headers
AlanD20 Oct 10, 2026
0e64739
test: complete Firecracker 1.17 release fixture migration
AlanD20 Oct 10, 2026
198ed00
image: diagnose staging population copy failures
AlanD20 Oct 10, 2026
4865cae
qa: install pytest timeout through apt in runner base
AlanD20 Oct 10, 2026
9b6b19b
docs: describe apt-managed runner timeout plugin
AlanD20 Oct 10, 2026
9eb2200
qa: allow protected reusable-base import to finish
AlanD20 Oct 11, 2026
a0e1d89
docs: keep system-test run guide operational
AlanD20 Oct 11, 2026
8b9063a
fix(vm): release leases after unrecorded root removal
AlanD20 Oct 11, 2026
8ba5f99
fix(qa): gracefully bound mvm command timeout cleanup
AlanD20 Oct 11, 2026
d688eb6
fix(qa): require exact runner base image identity
AlanD20 Oct 11, 2026
b3f8e37
docs: clarify clean installation and QA tooling fixes
AlanD20 Oct 11, 2026
fbb4dd9
fix(qa): allow bounded nested prepare creation time
AlanD20 Oct 11, 2026
4f1552f
fix(qa): verify mirror reads beyond nested image cache
AlanD20 Oct 11, 2026
0713cd9
fix(qa): make staged evidence helpers readable by runner
AlanD20 Oct 11, 2026
ad17860
docs: record verified release runner preparation
AlanD20 Oct 11, 2026
e93ab6f
fix(qa): establish Alpine default before T2 tests
AlanD20 Oct 11, 2026
baeb492
fix(qa): align Jailer fixtures with isolation contracts
AlanD20 Oct 11, 2026
6bd4aa0
fix(qa): accept exact observed unlimited reboot controls
AlanD20 Oct 11, 2026
7f5c0cd
docs(qa): document truthful reboot control receipts
AlanD20 Oct 11, 2026
1cf2dff
fix(qa): align domain runner creation deadlines
AlanD20 Oct 11, 2026
c9f83f3
fix(jailer): refresh exited processes before namespace cleanup
AlanD20 Oct 11, 2026
cc32d71
docs(qa): record coherent cleanup candidate gates
AlanD20 Oct 11, 2026
c869257
docs(qa): clarify deferred aarch64 qualification
AlanD20 Oct 11, 2026
467f729
fix(qa): bind jailer fixtures to explicit cached images
AlanD20 Oct 11, 2026
083aa25
fix(qa): extend base dependency installation deadline
AlanD20 Oct 11, 2026
b01a3fc
fix(qa): preserve both networks across host reboot
AlanD20 Oct 11, 2026
da8e6a6
test(env): match typed specs and structured CLI results
AlanD20 Oct 11, 2026
5561778
docs(qa): record environment contract verification
AlanD20 Oct 11, 2026
cbbb5dc
docs(snapshot): describe protected capture and restore authority
AlanD20 Oct 11, 2026
7b64da9
test(kernel): isolate default mutations from shared assets
AlanD20 Oct 11, 2026
762e57d
fix(snapshot): retry restore backing contention atomically
AlanD20 Oct 12, 2026
905c2cd
style(snapshot): enforce CI line-length formatting
AlanD20 Oct 12, 2026
4d002a3
fix(snapshot): wait for restore metadata preflight contention
AlanD20 Oct 12, 2026
8f1cf54
fix(qa): align snapshot rootfs cases with endpoint contracts
AlanD20 Oct 12, 2026
7e2b6fb
fix(qa): align isolated VM fixtures and per-operator mirror access
AlanD20 Oct 12, 2026
8c96402
fix(qa): admit exact cached imported runner bases
AlanD20 Oct 12, 2026
d1327a1
docs(qa): clarify cached imported runner base admission
AlanD20 Oct 12, 2026
2fa1295
fix(system-tests): qualify cache cleanup on fresh identities
AlanD20 Oct 12, 2026
a5cfcb9
fix(host): observe managed sudoers policy through root authority
AlanD20 Oct 12, 2026
00fca04
docs: clarify host policy observation and cache fixture scope
AlanD20 Oct 12, 2026
c7a9fd3
test: inspect protected sudoers through authenticated stat
AlanD20 Oct 12, 2026
c5edc8b
fix(loopmount): preserve whole-image copy failures
AlanD20 Oct 12, 2026
24f443a
test(images): reclaim scratch only after complete passing teardown
AlanD20 Oct 12, 2026
9803867
docs(testing): document image scratch outcome lifecycle
AlanD20 Oct 12, 2026
de46e04
fix(agent): preserve completed unused source-session commands
AlanD20 Oct 12, 2026
842666b
test(qa): register exact imported runner kernel for source-session gu…
AlanD20 Oct 12, 2026
84afd9e
docs(exec): clarify source completion and kernel capability
AlanD20 Oct 12, 2026
38c4a89
fix(qa): account for T2 provisioning in completion deadline
AlanD20 Oct 13, 2026
cfdfd7c
fix(qa): bind reboot checks to selected imported kernel
AlanD20 Oct 13, 2026
add68ca
test(qa): allow agent boot readiness before snapshot capture
AlanD20 Oct 13, 2026
0ab2f73
docs(qa): explain scheduler completion gap and command limits
AlanD20 Oct 13, 2026
fbb2f7c
test(qa): preserve defaults in kernel imports and accept secure bin a…
AlanD20 Oct 13, 2026
19cb79e
test(console): select cached Alpine without changing image defaults
AlanD20 Oct 13, 2026
6f789df
test(logs): verify IP lookup while serial output grows
AlanD20 Oct 13, 2026
7279362
docs: align 0.3.0 architecture and qualification checkpoint
AlanD20 Oct 13, 2026
d8b79b0
test: size and bound the complete images QA journey
AlanD20 Oct 13, 2026
228be25
test: own image defaults and derive import fault cache identity
AlanD20 Oct 13, 2026
fb8f6d8
docs: record complete image and orchestrator QA checkpoint
AlanD20 Oct 13, 2026
506cd30
test: preserve disabled GuestFS configuration intent during VM setup
AlanD20 Oct 13, 2026
f79b0d1
docs: record kernel teardown failure and verified fixture correction
AlanD20 Oct 13, 2026
9f6d4e3
docs: accept immutable kernel successor lineage design
AlanD20 Oct 14, 2026
719961c
test: preserve kernel cleanup ownership and primary failures
AlanD20 Oct 14, 2026
f479b38
docs: record complete historical kernel qualification checkpoint
AlanD20 Oct 14, 2026
4891487
test: verify pinned candidate507 source carry with original provenance
AlanD20 Oct 14, 2026
d17bea8
docs: distinguish carry tooling checks from actual release joining
AlanD20 Oct 14, 2026
0a8ff31
feat: preserve immutable kernel lineage across retired caches
AlanD20 Oct 14, 2026
1119bad
docs: record implemented kernel lineage and root verification limits
AlanD20 Oct 14, 2026
8403e02
test: cover identical kernel succession after cache retirement
AlanD20 Oct 14, 2026
4af8db3
style: wrap kernel lineage code to project line limits
AlanD20 Oct 14, 2026
04df460
test: route kernel succession through a fresh tier2 runner
AlanD20 Oct 14, 2026
7a8317c
docs: record coherent lineage build and QA installation
AlanD20 Oct 14, 2026
cf714d4
fix(image): preserve sparse VM rootfs exports
AlanD20 Oct 14, 2026
7c16690
docs: describe sparse VM image export behavior
AlanD20 Oct 14, 2026
e215e26
fix(qa): generate hostname-safe runner names
AlanD20 Oct 14, 2026
ce5b091
fix(kernel): preserve typed import conflict details
AlanD20 Oct 14, 2026
e7d2f63
docs: record kernel import error preservation
AlanD20 Oct 14, 2026
a26a0bc
fix(qa): use private temporary roots for ordinary runner tests
AlanD20 Oct 14, 2026
7f49cd0
fix(qa): observe committed kernel lineage during cache retirement
AlanD20 Oct 14, 2026
092cd5c
fix(qa): bind reboot phases to an explicit operator namespace
AlanD20 Oct 14, 2026
738d866
docs(qa): document explicit host reboot namespace binding
AlanD20 Oct 14, 2026
10de0df
docs: record current release qualification checkpoint
AlanD20 Oct 14, 2026
e372c5b
fix(qa): allow guest boot before policy agent probes
AlanD20 Oct 15, 2026
beb873c
test(qa): retain boot logs on agent readiness failure
AlanD20 Oct 15, 2026
0574702
fix(qa): await guest startup at Jailer lifecycle boundaries
AlanD20 Oct 15, 2026
471a285
fix(qa): await agent readiness across VM lifecycle transitions
AlanD20 Oct 15, 2026
4764bb0
fix(qa): await agent startup in SSH and storage journeys
AlanD20 Oct 15, 2026
f0bba2f
docs: record 363 accepted qualification cases
AlanD20 Oct 15, 2026
1805750
docs: record 492 accepted qualification cases
AlanD20 Oct 15, 2026
d51e3ee
fix(qa): retain bounded local pytest timeout diagnostics
AlanD20 Oct 15, 2026
cd569db
fix(qa): contain local pytest timeouts and retain qualification host
AlanD20 Oct 15, 2026
494373e
test(qa): isolate timeout gate fixtures
AlanD20 Oct 15, 2026
b56fa77
docs(qa): explain local pytest timeout reconciliation
AlanD20 Oct 15, 2026
c4acd1c
fix(qa): budget nested isolated aggregate fixture cycles
AlanD20 Oct 15, 2026
cc04f03
docs(qa): explain measured nested domain deadline
AlanD20 Oct 15, 2026
d5e694e
docs(qa): record 504 accepted qualification cases
AlanD20 Oct 15, 2026
f1d2403
docs: correct operator storage and privileged operation guidance
AlanD20 Oct 15, 2026
3da9a44
docs: correct current operator reference contracts
AlanD20 Oct 15, 2026
df00fc5
docs: restore the actual writeback default
AlanD20 Oct 15, 2026
64685a5
qa: bind candidate565 final evidence to reviewed source milestones
AlanD20 Oct 16, 2026
1122be6
qa: distinguish verifier and release checkpoint provenance
AlanD20 Oct 16, 2026
049233e
docs(qa): describe closed candidate565 evidence join
AlanD20 Oct 16, 2026
3ffb56b
fix(qa): isolate the exact trusted release receipt command
AlanD20 Oct 15, 2026
57742e1
docs(qa): record complete ordinary kernel526 checkpoint
AlanD20 Oct 16, 2026
8690e91
docs(qa): record verified 528-node candidate565 evidence join
AlanD20 Oct 16, 2026
03b8463
docs: condense release plan and checklist to current gates
AlanD20 Oct 16, 2026
7935abe
docs(qa): replace execution diaries with current evidence summary
AlanD20 Oct 16, 2026
4034eef
docs(adr): reconcile completed cache and kernel qualification
AlanD20 Oct 16, 2026
e0be4e8
docs: align guides and architecture records with 0.3.0
AlanD20 Oct 16, 2026
485817b
fix(image): report persisted acquisition ownership
AlanD20 Oct 19, 2026
230d59a
feat(env): add owned volumes policies and guest readiness
AlanD20 Oct 19, 2026
eb894de
docs(env): document resources policies readiness and cleanup
AlanD20 Oct 19, 2026
71e2713
refactor(db): initialize 0.3.0 from one atomic baseline
AlanD20 Oct 19, 2026
75a95fa
fix(network): accept default routes sharing one NAT uplink
AlanD20 Oct 19, 2026
5cbc37c
docs: record v0.3 clean-install baseline and uplink admission
AlanD20 Oct 19, 2026
01c48be
test(kernel): expect atomic baseline initialization outputs
AlanD20 Oct 19, 2026
c3ce033
fix(network): observe owner-unset foreign TUN devices
AlanD20 Oct 19, 2026
8237d7c
fix(loopmount): use supported Btrfs no-replay mount option
AlanD20 Oct 20, 2026
a35ba89
feat(policy): add root-authorized managed-gateway traffic grants
AlanD20 Oct 27, 2026
aca3a83
feat(policy): expose gateway grants through CLI and environment specs
AlanD20 Oct 27, 2026
eee487d
test(system): keep idle transport helpers alive under Go 1.26
AlanD20 Oct 27, 2026
99f8350
test(policy): add installed gateway traffic qualification journey
AlanD20 Oct 27, 2026
cf8f032
docs(policy): describe explicit VM-to-host gateway grants
AlanD20 Oct 27, 2026
4cad2bc
fix(policy): return persisted metadata for duplicate gateway grants
AlanD20 Oct 27, 2026
d82c729
style: align policy and uplink tests with pinned Go formatters
AlanD20 Oct 27, 2026
a56dbae
docs(policy): record installed gateway qualification coverage
AlanD20 Oct 27, 2026
e7bcc61
refactor(db): consolidate host policies into the 0.3.0 baseline
AlanD20 Oct 27, 2026
8c1a6a6
fix(qa): check nftables readiness through the host info contract
AlanD20 Oct 30, 2026
8f4a938
fix(vm): report rootfs provisioning separately from cloud-init
AlanD20 Oct 30, 2026
f24b109
fix(jailer): admit fixed local cloud-init seeds for networkless VMs
AlanD20 Oct 30, 2026
6e75b48
test(vm): check hardware NIC absence for local-seed guests
AlanD20 Oct 30, 2026
3d1a852
fix(image): expose exact retained local import resume
AlanD20 Oct 30, 2026
437f855
fix(image): reject retained resume after backend changes
AlanD20 Oct 30, 2026
1d7e2cd
fix(image): resume the recorded managed extracted filesystem
AlanD20 Oct 30, 2026
beae5c5
test(image): isolate retained source path confinement
AlanD20 Oct 30, 2026
42a254e
style(image): format resume validation errors
AlanD20 Oct 30, 2026
1f00723
fix(image): retain original failure in import error details
AlanD20 Oct 30, 2026
3f48e3d
fix(network): allow unresolved neighbors recreated by host traffic
AlanD20 Nov 12, 2026
c53a30b
test(network): show structural neighbor error differences
AlanD20 Nov 12, 2026
c6cb91e
docs(network): record neighbor recreation regression evidence
AlanD20 Nov 12, 2026
0776b34
chore(release): prepare 0.3.0 version metadata
AlanD20 Nov 13, 2026
2eb0cb4
docs(release): reconcile memory policy and final checklist
AlanD20 Nov 13, 2026
f28e9a2
docs(release): record local gates and final approval boundary
AlanD20 Nov 13, 2026
6f016f7
fix(host): admit terminal cleanup history during reset
AlanD20 Nov 14, 2026
8c8c7a8
feat(admin): add ownership-checked full uninstall
AlanD20 Nov 14, 2026
fd22dc1
docs: explain full uninstall and clean reinstall
AlanD20 Nov 14, 2026
49282ff
fix(packaging): drop obsolete firewall CLI dependencies
AlanD20 Nov 14, 2026
4f007f8
chore(release): keep generated coverage out of build provenance
AlanD20 Nov 14, 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
  •  
  •  
  •  
15 changes: 8 additions & 7 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Thanks for wanting to contribute. This guide covers everything you need to get s

- **Go 1.26.3+** — check with `go version`
- **Linux** (x86_64 or aarch64) — Firecracker only runs on Linux with KVM
- **System packages** — see [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md) for distro-specific lists
- **System packages** — see [docs/DEPENDENCIES.md](../docs/DEPENDENCIES.md) for distro-specific lists
- **git**

## Development Setup
Expand Down Expand Up @@ -47,10 +47,11 @@ Three-tier architecture: **CLI → API → Core**. CLI stays thin (arg parsing +

| Layer | Command | What it covers |
|-------|---------|---------------|
| L0/L1 unit | `go test ./... -count=1` | Pure functions, in-memory repos, hermetic tests |
| CI Go tests | `bash scripts/run-go-ci-tests.sh` | Unprivileged L0/L1 selection, including Jailer contracts |
| Local Jailer tests | Full package test binary as root in a disposable VM | Root-owned lifecycle effects |
| L2 system | See full guide below | End-to-end with real Firecracker VMs (requires KVM) |

For L2 system tests — running specific tiers, domains, preparing assets, interpreting results, and troubleshooting — follow [docs/development/HOW_TO_RUN_SYSTEM_TESTS.md](docs/development/HOW_TO_RUN_SYSTEM_TESTS.md). That doc covers the orchestrator script, prerequisite checks, the `--prepare` / `--rebuild` / `--tier` / `--push` flags, and common failure patterns.
For L2 system tests — running specific tiers, domains, preparing assets, interpreting results, and troubleshooting — follow [docs/development/HOW_TO_RUN_SYSTEM_TESTS.md](../docs/development/HOW_TO_RUN_SYSTEM_TESTS.md). That doc covers the orchestrator script, prerequisite checks, the `--prepare` / `--rebuild` / `--tier` / `--push` flags, and common failure patterns.

## Code Style

Expand All @@ -70,7 +71,7 @@ go vet ./...
go mod tidy && git diff --exit-code
```

See [docs/STANDARDS.md](docs/STANDARDS.md) for the full coding standards reference.
See [docs/STANDARDS.md](../docs/STANDARDS.md) for the full coding standards reference.

## Commit Conventions

Expand All @@ -95,10 +96,10 @@ Keep the subject under 72 characters. Add a body if the change needs explanation
```bash
go mod tidy && git diff --exit-code
go vet ./...
go test ./... -count=1
bash scripts/run-go-ci-tests.sh
golines --max-len=120 --no-reformat-tags --list-files ./internal/ ./pkg/ ./cmd/
```
4. **Layering check** — read [CONTEXT.md](CONTEXT.md) for architecture rules:
4. **Layering check** — read [CONTEXT.md](../CONTEXT.md) for architecture rules:
- Core domains never import other core packages
- Validation lives in `pkg/api/inputs/`, not in Service/Controller
- ALL subprocess calls through `system.DefaultRunner.Run()` / `system.DefaultRunner.Stream()`
Expand All @@ -109,7 +110,7 @@ Keep the subject under 72 characters. Add a body if the change needs explanation

## Design Decisions

When proposing a change that touches architecture boundaries, review the relevant ADRs in [docs/adr/](docs/adr/). Hard-to-reverse decisions (three-tier architecture, error handling model, test strategy) are documented there with trade-offs.
When proposing a change that touches architecture boundaries, review the relevant ADRs in [docs/adr/](../docs/adr/). Hard-to-reverse decisions (three-tier architecture, error handling model, test strategy) are documented there with trade-offs.

Key constraints:
- **No `reflect`**, no `goto` — banned unless approved via ADR.
Expand Down
15 changes: 10 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,17 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.26"
go-version: "1.26.3"
cache: true

- name: Tidy
run: go mod tidy && git diff --exit-code

- name: Check core domain imports
run: go test ./internal/architecture -count=1

- name: Install golines
run: go install github.com/segmentio/golines@latest
run: go install github.com/segmentio/golines@v0.13.0

- name: Check formatting (gofmt)
run: test -z "$(gofmt -l .)"
Expand All @@ -44,12 +47,14 @@ jobs:
- name: Vet
run: go vet ./...

- name: Test
run: go test ./... -count=1 -coverprofile=coverage.out -covermode=atomic
- name: Test unprivileged Go packages and Jailer contracts
run: bash scripts/run-go-ci-tests.sh

- name: Upload coverage report
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: coverage.out
path: |
coverage.out
coverage-jailer.out
retention-days: 3
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version: "1.26"
go-version: "1.26.3"
cache: true

- name: Generate embed placeholders
Expand All @@ -26,7 +26,7 @@ jobs:
run: |
go mod tidy && git diff --exit-code
go vet ./...
go test ./... -count=1 -coverprofile=coverage.out -covermode=atomic
bash scripts/run-go-ci-tests.sh

- name: Install package build tools
run: |
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,6 @@ legacy/python/docs/analyses/
MagicMock/
.prompts/
/coverage.out
/coverage-jailer.out

/.tmp/
152 changes: 25 additions & 127 deletions .opencode/agent/architect.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
---
description: >-
Use when you need deep technical discussion, architectural brainstorming,
critical analysis of design decisions, or to manage the full domain
implementation lifecycle. Challenges assumptions, pushes back on weak
decisions, explores alternatives, and orchestrates work by spawning
subagents (`engineer` for production Go code, `qa-engineer` for test
and release, `explore` for research). Never writes production Go code
itself — but OWNS all documentation directly (CONTEXT.md, AGENTS.md,
docs/, .opencode/, *.md). Plans, analyzes, delegates, and writes docs.
Plans mvmctl architecture, delegates implementation, owns documentation,
and reviews completed diffs. Never writes production code or tests.
mode: all
temperature: 0.65
permission:
Expand All @@ -22,6 +16,7 @@ permission:
"git diff *": allow
"git status *": allow
"git log *": allow
"git show *": allow
"go build *": allow
"go vet *": allow
"rm *": deny
Expand All @@ -31,7 +26,6 @@ permission:
"git reset --hard *": deny
"git restore *": deny
"git stash *": deny
"git show *": deny
"git branch -D *": deny
"git rebase --abort *": deny
"git merge --abort *": deny
Expand All @@ -43,128 +37,32 @@ permission:
"git worktree prune *": deny
---

You are the **architect** for the mvmctl project. You are the user's main point of
contact. You do NOT write production Go code — you think, analyze, plan, delegate
implementation to specialized subagents, and OWN all documentation.
You are the mvmctl project architect and the user's primary contact.

## CRITICAL: Question vs Implementation
Read `AGENTS.md` first. It defines the instruction order, role ownership, approval gate, host safety rules, pstack
policy, verification expectations, and architecture constraints. Read only the task-specific references that it names.

A user asking a question — even a leading, suggestive, or "what about X?" question — is ASKING A QUESTION. They want an ANSWER: clarification, reasoning, evidence, trade-offs, counterarguments, or a simple factual response. They do NOT want implementation. They do NOT want you to spawn `engineer` or `qa-engineer`. They do NOT want you to write code. They do NOT want you to assume they want "well actually let me explore that".
## Responsibilities

**Exception:** If answering the question requires reading multiple large files or deep codebase exploration, you may spawn `explore` for reading only. Do not spawn any agent that writes code or tests.
- Answer questions with evidence. A question does not authorize implementation.
- Inspect existing interfaces and two or three analogous paths before proposing a design.
- Present the files, trade-offs, effect boundaries, and verification plan. Wait for explicit approval before dispatching
implementation.
- Delegate production Go code and L0 or L1 Go tests to `engineer`.
- Delegate Python system tests, the system-test orchestrator, coverage, and release verification to the OpenCode `qa`
agent.
- Write plans, ADRs, and documentation directly. Do not write executable scripts, production code, or tests.
- Read every implementation diff before accepting it. Check interfaces, structs, imports, subprocess boundaries, and
ownership against `AGENTS.md` and the applicable ADRs.

**Unless the user explicitly says "implement", "build", "write code", "do it", "make it", "go ahead", or gives unambiguous approval to execute, YOU ANSWER THE QUESTION AND STOP.**
## Safety

If you are unsure whether a prompt is a question or an instruction, default to ANSWERING. Err on the side of talking, not doing.
Preserve all unrelated worktree changes. Candidate builds stay under `dist/`, the worktree, or a task-specific temporary
directory. Never direct an agent to replace an installed host binary, change sudoers, or run Tier 3 unless the user has
explicitly authorized that exact action.

## CRITICAL: Lost context → STOP
Use the controller and candidate separation from `docs/development/HOW_TO_RUN_SYSTEM_TESTS.md`. Do not invent another
test or release workflow in this prompt.

When implementing, watch for signals that you lack context:
- The user hints at regrouping or realigning ("let's step back", "that's not what I meant", "you're missing context").
- You realize you're guessing about requirements, architecture, or intent.
- The user corrects you on the same task more than once.

When any of these happen, you are in a broken state. STOP ALL WORK immediately. Do not attempt to fix, redo, or push forward. Switch to planning mode:

1. Acknowledge the misalignment.
2. Summarize what you think the goal is.
3. Ask the user to confirm or correct your understanding.
4. Propose a concrete plan before doing any work.
5. Wait for explicit approval ("go ahead", "yes", "do it") before resuming implementation.

You lost the plot — get realigned first.

## Your role

1. **Primary interface** — You are the only agent that talks to the user. Subagents report
to you, you report to the user.
2. **Brainstormer** — Challenge assumptions, push back on weak decisions, explore alternatives.
3. **Orchestrator** — Spawn `engineer` for production Go code, `qa-engineer` for test/release,
`explore` for research. Never write production Go code yourself.
4. **Documentation + scripts owner** — You write and maintain ALL documentation directly. This includes:
`CONTEXT.md`, `AGENTS.md`, `docs/**/*.md`, `.opencode/**/*.md`, `README.md`, `CHANGELOG.md`,
and any other `.md` files. You also own `scripts/` (build, dev, and utility scripts).
You have the deepest project knowledge — docs and scripts are architect territory, not engineer territory.
5. **Domain implementation manager** — Full lifecycle: **catalog** (read existing code/docs to understand what exists) → **plan** (propose approach) → **user approval** (wait for explicit "go ahead") → **execute** (spawn subagents).
6. **Deep thinker** — Engage in thorough analysis of architectural decisions and trade-offs.
Consult `CONTEXT.md` and `docs/adr/` for domain language and architectural decisions.

## Agent boundaries

| Work | Delegate to |
|---|---|---|
| Production Go code (`cmd/`, `internal/`, `pkg/`, `go.mod`) | `engineer` agent |
| Tests (`*_test.go`, `tests/system/`) + release | `qa-engineer` agent |
| Research / codebase exploration | `explore` agent |
| All documentation (`*.md`, `docs/`, `.opencode/`, `CONTEXT.md`, `AGENTS.md`) + `scripts/` | **architect** (directly — no delegation) |

## Subagent spawning rules

1. **Tell the agent its role** — Open every spawn with: "You are the `engineer`/`qa-engineer`/`explore` agent."
2. **State WHAT, not HOW** — Describe the goal and constraints. Do NOT include Go code,
type hints, or implementation details. The subagent knows its patterns.
3. **List files** — Source files to read + target files to modify.
4. **ALWAYS include build output path** — Every engineer/qa-engineer spawn MUST include in the goal:
`"Build to ~/.local/bin/mvm (./scripts/build.sh --output ~/.local/bin/mvm)"` +
`"Set MVM_ASSET_MIRROR=~/.cache/mvm-asset-mirror before running mvm"`.
These are NOT optional. The subagents do NOT have this info in their own instructions.
For `explore` spawns, build/env directives are optional (not needed for research).
5. **Repeat critical boundary** — "Do not touch any file outside the target list."
6. **Scope: only your changes** — Use `git diff` and `git status` ONLY to review files you added/modified. Never inspect, stash, clean, revert, or touch other people's untracked/staged/unstaged changes. They are not your concern.

## File reading policy

- **Read files directly** for quick checks (one function, small analysis).
- **Delegate reading to subagents** for multiple large files or deep exploration.
- You focus on thinking and deciding. Subagents focus on reading and doing.

## Running the binary (REQUIRED)

The mvm binary MUST be built to `~/.local/bin/mvm` — this path has passwordless sudo via sudoers rules.
The `MVM_ASSET_MIRROR=~/.cache/mvm-asset-mirror` env var MUST be set before any `mvm` command.
You MUST propagate both of these requirements to every subagent spawn. See Subagent Spawning Rule #4.

```bash
# Build (exact command - do not deviate):
./scripts/build.sh --output ~/.local/bin/mvm

# Run (exact env - do not deviate):
MVM_ASSET_MIRROR=~/.cache/mvm-asset-mirror mvm <subcommand>
```

If a subagent does NOT produce a binary at `~/.local/bin/mvm` or does NOT set the env var,
the task is incomplete. Reject the result and re-spawn with explicit instructions.

## Plan approval protocol

The architect MUST verify these before approving any implementation plan:

1. **Patterns cross-check** — Read the EXISTING interface/pattern the proposal touches. Does the new method match the naming and shape of existing methods? (e.g., `Backend.SetupSSH(ctx, user, keys)` → new method should be `InjectAgent(ctx, binary, port, token)`, not `ApplyOps(ctx, ops)`)
2. **Analogous precedent** — Find 2-3 existing code paths that solve the same KIND of problem. If the existing Backend methods are all named typed methods, a generic `[]Operation` passthrough is a red flag.
3. **Layer check** — Does the proposed code belong in the layer it's placed in? (e.g., CID retry loops belong in `internal/core/*/service.go`, not in `pkg/api/*.go`)
4. **Reject generic extension points** — "This is extensible for future use" is a smell. Prefer typed named methods that describe exactly what they do. Add new methods when new needs arise, not generic hooks.
5. **Architect reads the diff** — After every implementation phase, review the actual diff for the key changes (interfaces, structs, imports). Do not rely solely on subagent reviews.
6. **CI gates pass** — After subagent work, verify `go mod tidy && git diff --exit-code`, `gofmt`, `golines`, `go generate`, `go vet`, and `go test ./...` all pass before declaring done.
7. **AGENTS.md critical rules** — Verify the diff does not violate AGENTS.md critical rules: no core-to-core imports, no raw `os/exec` (check documented exceptions), `DomainError` usage, controllers have no create/remove, API layer is sole orchestrator, etc.

## Change confirmation protocol

Before a subagent writes code, present the plan to the user:
- What files will change and why
- Architectural decisions and alternatives
- Side effects or ripple effects
- Wait for explicit "approved" or "go ahead"

## Doc and script lifecycle

- **Create:** Write new docs/scripts directly. Follow conventions of existing files.
- **Update:** Edit in place. When decisions change, update ADRs and `CONTEXT.md` to stay in sync.
- **Archive/remove:** To remove an obsolete doc or script, zero its content with a comment noting
the removal reason and date, then the user can delete the file. Do not rely on `rm` — you cannot
run it. Use `write` to empty the file with a tombstone comment.

## Project context sources

- `CONTEXT.md` — Domain language, conventions, patterns, architecture rules.
- `docs/adr/` — Architecture Decision Records for hard-to-reverse decisions.
- `AGENTS.md` — Agent boundaries and critical rules.
When pstack applies, follow the adapter rules in `AGENTS.md`. Pstack does not change role ownership or remove the user's
approval checkpoint.
Loading
Loading