rootfs apps: the staged-version sweep exists (#122 closed); cover rootfs images
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+7
−6
docs/superpowers/specs/2026-10-24-rootfs-apps-design.md+7 −6
CI cancelled — superseded by a newer push — run details
CI log
=== gate === .amadan/test-gate.sh amadan: job cancelled — a newer push superseded it
diff --git a/docs/superpowers/specs/2026-10-24-rootfs-apps-design.md b/docs/superpowers/specs/2026-10-24-rootfs-apps-design.md| index 5c292a2d0..990e12a3f 100644 |
| --- a/docs/superpowers/specs/2026-10-24-rootfs-apps-design.md |
| +++ b/docs/superpowers/specs/2026-10-24-rootfs-apps-design.md |
| @@ -164,8 +164,9 @@ All citations are origin/main. |
| The adopt pass stages only the artifact matching the box's |
| `GOOS-GOARCH` (`adopt.go:31`) into `/opt/carlos/versions/<ver>/...`, |
| sha256-checked. The ship door caps an upload at 256 MiB across all |
| - parts (`internal/console/apicli.go:1647`). Old versions are never |
| - reaped (#122). |
| + parts (`internal/console/apicli.go:1647`). Unpinned staged versions are |
| + swept by the root adopt pass (`sweepStagedVersions`, |
| + `internal/host/versionsweep.go:52`, #122 closed). |
| - **Object storage.** `carlos store create` provisions a bucket and IAM |
| user and delivers credentials as env with a configurable prefix |
| (`internal/console/instanceprivatestore.go:165`). Rails Active Storage |
| @@ -233,10 +234,10 @@ else. |
| run` ruling F8: never presigned) with a larger cap for the rootfs part. |
| My call: 2 GiB. The box stages it streaming to disk, as #269 does for |
| binaries. |
| -- **Disk.** Before rootfs apps ship to anyone, old versions must be |
| - reaped (#122) at least for rootfs artifacts, or a few deploys fill a |
| - box. The builder can scope the reaper to rootfs releases if the |
| - general one is not ready. |
| +- **Disk.** The staged-version sweep (`internal/host/versionsweep.go`) |
| + must cover rootfs images: an image no live link, generation or pin |
| + references is evicted like a binary tree. A test proves a superseded |
| + image is removed after the grace period and a running one is not. |
| - Image format: erofs or squashfs, whichever the boxes' kernel and |
| systemd mount without extra packages. Builder's call; state the |
| choice in the plan. |