# REPORT — R-50 island control plane: Phase A artifacts (felhom.eu) (2026-07-25) Phase A of the R-50 implementation (spike GO). Fresh **appliance** installs are now born on the island (F1-immune). Pairs with agent **v0.96.0** (which attaches the guest's island net1). byo unchanged. ## Changed here - `scripts/felhom-host-install.sh` → **v1.19.0**: `ensure_island_bridge()` (portless `vmbr9`, `169.254.253.1/30`, idempotent); appliance default binds `local_api` on the island (`169.254.253.1:8443`), writes `island_bridge`/`island_guest_addr`, and pins `lan_resolver.host_ip` to the LAN IP explicitly (Finding-1 — else moving the bind silently kills LAN DNS). `--no-island` opt-out; explicit `--bridge-ip` overrides. Gate `hostinstall_gates.py` ALL PASS. - `hub/internal/web/configs.go` → `hostInstallVersion` 1.16.0 → **1.19.0** (F-1 sync; clears prior drift). Hub CHANGELOG → v0.73.2. Web render test green. ## Determination (A0/A3) — recorded - **A0 = config-only for the bootstrap endpoint** (`main.go` sets it from `listen_addr`); the version bump lives in the agent's net1-attach. The operator chose **agent-bringup** (v0.96.0) over golden-bake to eliminate the golden-coupling failure mode. - **A3 = healer verify-only** — eth0-only (`parseMode` dev-scoped); red-proof test in the agent. - **net1 deviation from the spike inventory** (it placed net1 in host-install, but host-install doesn't create the guest — the agent does) resolved by attaching net1 in the agent at bring-up. ## Coupling / deploy order (important) An island host-install REQUIRES agent ≥ 0.96.0. **Vouch 0.96.0 before island installs go live**, else a fresh install writes island config an older agent ignores → guest has no island NIC → broken control plane. This is the one hard ordering constraint. ## Status of the phases - **Phase A (artifacts): DONE + committed** (agent `dfd5d73`; this repo this commit). Agent build/publish + hub deploy + golden unchanged (net1 comes from the agent, so no re-bake). - **Phase B (migration): pending** — `RUNBOOK-island-migration.md` + drill migration (B1) + fresh-install validation (A4), then demo-hp (B2) and demo-felhom (B3) behind operator go/no-go STOP points. - **Phase C (Peti cluster): parked** — its own supervised runbook + a new ROADMAP row.