feat!: move to umbra v0.140.0 and drop the sandbox #1662
No reviewers
Labels
No labels
burndown-2026-06
pressure-test
sunday-sprint
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/ward!1662
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/umbra-rename"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two things, because they cannot land apart: the module rename (umbra#285) and the sandbox removal (umbra#288). Pinning v0.139.0 first and v0.140.0 second would mean two breaking bumps and an intermediate state nobody wants, so this goes straight to v0.130.0 -> v0.140.0.
1. Module path
cli-guardis nowforgejo.coilysiren.me/coilyco-flight-deck/umbra. All 18 packages ward imports survive the intervening cleanup (umbra#284 removed 20 dead ones, none of them ours). Two things ward never used went with them:passthrough.WithReadCacheand theaws-readexecverb gate.2. The sandbox is gone
umbra#288 deleted the namespace jail: it was disabled in 34 places across the fleet, absent on macOS and Windows, and broken or denied on Linux (umbra#256, umbra#277). Removed here:
cmd/ward/main.go__jailhelper re-exec dispatchcmd/ward/runner.gosandboxSpec()and bothSandboxfieldscmd/ward/agent.gosuspendSandbox()and its two docker call sites - there is no jail left to suspend for a snap-provided docker (ward#540)cmd/ward/container_bootstrap.goCLIGUARD_NO_SANDBOX=1, which now opts out of nothingcmd/ward/docker_sandbox_test.goThat is ward's last
CLIGUARD_reference.The security posture genuinely changed, and the docs now say so
SECURITY.mdclaimed the wrapper held "at arbitrary process depth, not just depth 0" on Linux via the jail, and that an escape was a reportable vulnerability. That is no longer true anywhere. The doc now states enforcement is depth-0 on every platform and descendant bypass is a known limitation rather than a vulnerability - which is what the same file already said for macOS and Windows, and consistent with its existing line that an escaped process is the container's job, not the gate's.README.mdfollows.This is a real reduction in claimed guarantees. It is the honest description of what ward does now, not a downgrade hidden in a rename.
Verification
go buildandgo vetclean against v0.140.0.go test ./...: 6 packages pass;cmd/wardandscriptshang in my environment.That hang is pre-existing. I confirmed it by cloning ward at
mainunmodified, still on v0.130.0, and running the same two packages - they hang identically, readingWARD_GITLAB_BASEand a config file. So it looks environmental, not dependency-related. CI is the authoritative signal here - please don't read my green build/vet as a full pass.Fleet follow-on is gated on this
30 workflows across
coilyco-bridge/deploy(25),agentic-os(4) andagentic-os-xxx(1) still declareCLIGUARD_NO_SANDBOX=1. Those cannot be swept until this merges and releases, because they run insideagentic-os:release, which bakesWARD_VERSION=0.879.0- a ward that still contains the jail. Deleting the opt-out before that image rebuilds would re-enable a broken sandbox in 30 workflows.Order: merge this -> ward release -> bump
WARD_VERSIONin agentic-os' Dockerfile -> then delete the declarations.umbra#288 removed the namespace jail, so the pin goes straight to v0.140.0 rather than stopping at v0.139.0. Removed here: cmd/ward/main.go the __jail helper re-exec dispatch cmd/ward/runner.go sandboxSpec() and both Sandbox fields cmd/ward/agent.go suspendSandbox() and its two docker call sites - there is no jail left to suspend for a snap-provided docker cmd/ward/container_bootstrap.go CLIGUARD_NO_SANDBOX=1, which now opts out of nothing cmd/ward/docker_sandbox_test.go pinned the suspend/restore behaviour That is ward's last CLIGUARD_ reference. SECURITY.md claimed the wrapper held "at arbitrary process depth, not just depth 0" on Linux via the jail, and that an escape was a vulnerability. That is no longer true anywhere, so the doc now says enforcement is depth-0 on every platform and descendant bypass is a known limitation rather than a vulnerability - which is what the same file already said about macOS and Windows, and consistent with its existing line that an escaped process is the container's job. Verified: build and vet clean, 6 test packages pass. cmd/ward and scripts still hang locally, unchanged from pristine main - pre-existing and environmental, so CI remains the authoritative signal. Co-authored-by: Kai Siren <coilysiren@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>chore!: move to the umbra module pathto feat!: move to umbra v0.140.0 and drop the sandbox