# felhom.eu — task reports > **Overwrite** this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in [hub/CHANGELOG.md](hub/CHANGELOG.md); the scripts history lives in [scripts/CHANGELOG.md](scripts/CHANGELOG.md). ## RUNBOOK GL-1 — publish agent 0.74.0 + bake/publish golden 0.103.0 (2026-07-07) Full execution record with per-gate evidence: `documentation/pilot/RUNBOOK-GL1-publish-2026-07-07.md`. Docs-only commit; no code changed, no production host mutated (felhom-pve read-only; all root work inside the disposable drill VM). ### The four operator values (hub Day-0 manifest — Configs → Day-0 artifacts) ``` AGENT_VERSION=0.74.0 AGENT_SHA256=1ec3f58842edce1e9e32d022eaef15b7ff599c658c7a36bfe7833c708076af05 GOLDEN_VERSION=0.103.0 GOLDEN_SHA256=8481e8a14e2aa0abe3831cc40e5aea4c32f2017e7561c15dca8a674df6a6026e ``` ### Gate outcomes (all PASS) - **0a–0d**: baselines exact (`ced60ddf` / `59eb3bea` / `02d63ed0`; agent 0.63.0 + golden 0.98.3 the last published, targets 404); drill VM + `virgin` snapshot intact; controller image 0.103.0 resolvable; headroom ample. - **1a/1b**: felhom-pve's RUNNING binary (`readlink /proc/…/exe`, no pending A/B marker) is 0.74.0; those exact bytes (hash-stable across both copy hops) published via `publish-agent.sh` from `main`@`ced60ddf` — PUT 201, round-trip GET sha match. - **2a/2b**: clean-room bake on the virgin-restored drill VM (build-golden.sh v2.0.0): overlay2 + both split-volumes as separate mounts, rootfs+mp0+mp1 ALL included in the vzdump (no exclusions, no FATAL), archive 583MB, publish HTTP 201; transcript token-leak grep = 0. Deviations: debian-13 template pveam-downloaded inside (virgin never has it, checksum verified); bake launched via `systemd-run` (bare nohup didn't survive ssh session close). - **3a/3b**: both artifacts fetched **ANONYMOUSLY** and hashed to exactly the published sha (golden 611 696 321 bytes, streamed+hashed+deleted); off-LAN HEAD 200 from the CC machine too. ### Gate 3c finding (feeds G3) — read-credential sufficiency The specified reviewer read-only token (`8417…4140`) was not locatable by CC anywhere in reach — the gates ran with **no credential at all and passed**: the generic packages are anonymously world-readable. Therefore rotating the customer `git.token` to read-only **cannot break** the artifact fetch path (G3 unblocked from this side). Nuance: `resolve_git_creds` in host-install **dies on an empty token** even though Gitea would serve the fetch anonymously — the requirement is script-side; customer configs still need a (read-scoped) token until a small installer follow-up makes it optional. This also reframes GL-2's finding that demo-felhom's git credentials are EMPTY: the fetch would work, the installer's precondition is what fails. ### Drill-VM end state Guest 9100 destroyed (`--purge`), in-VM cred file shredded, VM powered off, qcow2 **restored to `virgin`** (verified) — environment exactly as found. Evidence kept: `~/drill/bake-0.103.0.log` on the build server. ### Follow-ups 1. **OPERATOR — hub Day-0 manifest bump** to the four values above (until then fresh installs land agent 0.63.0 + golden 0.98.3). 2. **Operator-key pin** (out of GL-1 scope): day-0 ships no operator pubkey → self-update dormant on fresh boxes; pin the real key + a small host-install follow-up (candidate: fold into GL-4). 3. **G3 rotation** unblocked per Gate 3c; also fixes demo-felhom's empty git credentials. 4. **GL-6** consumes the bumped manifest end-to-end (deliberately not run here).