spec: rollback pops History[0]; say it once, not both ways
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015QCUCpfxbCyEAVQ2m51dH5
1 file changed,
+4
−4
docs/superpowers/specs/2026-09-06-carlos-system-update-design.md+4 −4
CI failed — run details
diff --git a/docs/superpowers/specs/2026-09-06-carlos-system-update-design.md b/docs/superpowers/specs/2026-09-06-carlos-system-update-design.md| index 7db22cae1..2bc453e58 100644 |
| --- a/docs/superpowers/specs/2026-09-06-carlos-system-update-design.md |
| +++ b/docs/superpowers/specs/2026-09-06-carlos-system-update-design.md |
| @@ -417,11 +417,11 @@ outcome (a no-op request, §6) is shown as such, not as an apply. |
| **`carlos system rollback [--channel …]`** |
| -Swaps `Current` with `History[0]` — whole releases, so the previous |
| +Pops `History[0]` into `Current` — whole releases, so the previous |
| artifacts and hashes come back with the version — re-signs with |
| -`PromotedAt` now, bumps the serial. `History[0]` becomes `Current` and is |
| -removed from `History`; a second rollback goes one further back. Nothing GCs `bootstrap/router/` in |
| -v1, so the objects are there. Every box rolls back through the same path |
| +`PromotedAt` now, bumps the serial. The outgoing release is not pushed |
| +back, so a second rollback goes one further back rather than undoing the |
| +first. Nothing GCs `bootstrap/router/` in v1, so the objects are there. Every box rolls back through the same path |
| it rolled forward on; the box-side `.prev` (§6) is for the box that |
| cannot come up, not for this. |