Context
ai/deploy/** is part of Wave 3 and changed between the currently deployed pin and current dev. This leaf moves deployment authority only after the source/package receive is green, then proves a Brain-built image before Neo removal.
Wave 0 owns the live baseline and the image-pin + named-bundle rollback pair. This leaf consumes that receipt; it does not replace or redo Wave 0.
The Problem
Moving source without deployment leaves the running Agent OS tied to Neo paths. Moving deployment too early can rebuild against incomplete package topology or destroy the very rollback surface the cut needs.
The Architectural Reality
ai/deploy/ contains compose profiles, Dockerfile/Caddy profiles, host plists, and provider/deployment fixtures.
- ADR 0040 makes Container Cloud a nested package and Host Edge the root.
- Wave 0 provides the pre-cut image-pin + named-bundle rollback authority and must be green first.
- Wave 4 owns the severe production battery; this leaf owes bounded receive/image health only.
The Fix
Move every cut-manifest-classified deployment artifact into the Brain repo, rewrite build contexts and paths to the received package topology, preserve config/secrets SSOT, build the Brain-owned image at the received SHA, and run bounded MC/KB/container health against a disposable or operator-approved environment.
Definitions move here; privileged plist installation and final production re-point remain operator/Wave-4 actions.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
| Brain Docker/compose build |
cut manifest + ADR 0040 |
builds from Brain root/cloud/ only |
no Neo-path fallback |
deployment docs |
image digest + build log |
| config/secrets binding |
ADR 0019 |
templates/overlays re-home without duplicated defaults or secret commits |
missing binding fails loud |
config docs |
template/overlay parity |
| MC/KB health |
Wave 0 baseline |
bounded healthy start on Brain image |
rollback to Wave-0 pair |
D#17782 |
live health receipts |
| host plists |
ai/deploy/** custody |
definitions point to Brain runtime root |
install remains operator-owned |
plist docs |
static path + dry-run checks |
| deployment revision |
image metadata |
target Brain SHA visible and read back |
mismatch blocks |
cookbook |
deployed revision probe |
Decision Record impact
amends ADR 0040 §2.7 deployment custody and depends-on ADR 0019.
Decision Record
Required: ADR 0040 amendment lands with the Wave-3 custody stream; no new deployment topology is invented.
Acceptance Criteria
Out of Scope
- Wave-0 repair/bundle/pin implementation;
- final production container update;
- severe MC write+recall, KB moved-learn query, wake/fleet/FM battery;
- seat/runtime target re-point;
- Neo-side deletion.
Avoided Traps
- Build from Neo after “moving” deployment: leaves authority behind.
- Health without revision: can test the old image.
- Image-only rollback: ignores the named verified bundle.
- Commit live overlays: leaks secrets and creates a second config authority.
- Claim Wave-4 completion from a bounded smoke.
Related
Blocked by: #17788 and Wave 0 green receipt
Parent Wave-3 Epic: #17786
Handoff Retrieval Hints
Retrieval Hint: ai/deploy relocation Brain image bounded MC KB health Wave0 rollback pair
Origin Session ID: 975b7d3f-ebb0-46bd-8b5a-ac7fa64ba0d0
Context
ai/deploy/**is part of Wave 3 and changed between the currently deployed pin and current dev. This leaf moves deployment authority only after the source/package receive is green, then proves a Brain-built image before Neo removal.Wave 0 owns the live baseline and the image-pin + named-bundle rollback pair. This leaf consumes that receipt; it does not replace or redo Wave 0.
The Problem
Moving source without deployment leaves the running Agent OS tied to Neo paths. Moving deployment too early can rebuild against incomplete package topology or destroy the very rollback surface the cut needs.
The Architectural Reality
ai/deploy/contains compose profiles, Dockerfile/Caddy profiles, host plists, and provider/deployment fixtures.The Fix
Move every cut-manifest-classified deployment artifact into the Brain repo, rewrite build contexts and paths to the received package topology, preserve config/secrets SSOT, build the Brain-owned image at the received SHA, and run bounded MC/KB/container health against a disposable or operator-approved environment.
Definitions move here; privileged plist installation and final production re-point remain operator/Wave-4 actions.
Contract Ledger Matrix
cloud/onlyai/deploy/**custodyDecision Record impact
amends ADR 0040 §2.7deployment custody anddepends-on ADR 0019.Decision Record
Required: ADR 0040 amendment lands with the Wave-3 custody stream; no new deployment topology is invented.
Acceptance Criteria
ai/deploy/**mover in the cut manifest exists once in the Brain target and no unclassified deployment artifact remains.agentosRuntimeRoot; installation remains explicitly operator-owned.Out of Scope
Avoided Traps
Related
Blocked by:
#17788and Wave 0 green receiptParent Wave-3 Epic:
#17786Handoff Retrieval Hints
Retrieval Hint:
ai/deploy relocation Brain image bounded MC KB health Wave0 rollback pairOrigin Session ID: 975b7d3f-ebb0-46bd-8b5a-ac7fa64ba0d0