Each version runs the whole test matrix on the reference machine, in one
session, before its tag is made. Its record is added here, newest first. A record never names
the machine, its addresses or its network.
go test -tags integration,online -run Online ./...
pass
Fuzz
each target for 5 minutes
no new failure
Manual step
Result
A1
pass, “permission denied” on the configuration, the secrets and the data_dir; the operator reads them
A2
pass, the decoy is in no process list or environment in 30 samples, 9 during a box; the operator finds it in its files
A3
pass, “permission denied” on the keep\’s socket and on the data_dir; the operator connects
A4
pass
Traffic
pass, sandcastle’s pieces open only keep → gate and gate → an allowed destination; every other flow is a test’s attacker or control
Boot
pass, the gate, the keep and the core were up from the lingering user manager, whose session logind opened first; the desktop’s auto-login opened in the same second
Private names
pass: the publication script finds no private name in the git history, on GitHub or in the built site
go test -tags integration,online -run Online ./...
pass
Fuzz
each target for 5 minutes
no new failure
Manual step
Result
A1
pass, “permission denied” on the configuration, the secrets and the data_dir; the operator reads them
A2
pass, the decoy is in no process list or environment in 30 samples, 6 during a box; the operator finds it in its files
A3
pass, “permission denied” on the keep’s socket and on the data_dir; the operator connects
A4
pass, the gate does not answer; no listening port of the machine is sandcastle’s
Traffic
pass, sandcastle’s pieces open only keep → gate and gate → an allowed destination; every other flow is a test’s attacker or control
Boot
pass, the gate, the keep and the core were up from the lingering user manager, whose session logind opened first; the desktop’s auto-login opened in the same second
Private names
pass: the publication script finds no private name in the git history, on GitHub or in the built site
## vX.Y.Z
- **Date**: YYYY-MM-DD
- **Commit**: the full hash the tag points at
- **Kernel**: `uname -r`
- **Podman**: `podman version --format '{{.Client.Version}}'`
- **systemd**: `systemctl --version`, first line
- **Smokescreen**: the commit the gate's recipe fixes
| Level | Command | Result |
|---|---|---|
| U | `go test ./...` | pass / fail |
| I | `go test -tags integration ./...` | pass / fail |
| Online | `go test -tags integration,online -run Online ./...` | pass / fail |
| Fuzz | each target for 5 minutes | no new failure / the failing input |
| Manual step | Result |
|---|---|
| A1 | pass / fail, with what was seen |
| A2 | … |
| A3 | … |
| A4 | … |
| Traffic | … |
| Boot | … |
| Private names | … |
A version is released only when every row passes. A promise that cannot be proved is fixed, or
moved outside the promise with the threat model rewritten; a row is never left empty.