Files
felhom.eu/documentation/backlog
admin efe9dfd15d
gates / gates (push) Successful in 12s
R-267 CLOSED (26.2s -> 0.24s warm); R-268 filed: I printed a live token into a transcript
R-267 closed by hub v0.101.0. Measured after the 60s memo: cold 13.4s, warm 0.24-0.33s. The operator
sees a quarter-second except at most once a minute.

R-268 filed against myself. Setting up R-221's live drill, a one-liner meant to list bootstrap.json's
KEYS printed the local_api object whole, including its token, for guest 9201. Reported rather than
quietly rotated, because a secret reaching a transcript is a finding whatever its blast radius.

Exposure assessed rather than assumed, and it is small: the token opens only the agent's per-guest
local API on the island bridge between that host and that one guest, self-scoped to guest 9201, not
routable from the LAN or internet, on a Tier-0 disposable box with no customer data. Using it already
requires code execution there, at which point an attacker has more than the token.

Rotation exists (TokenStore.Mint, last-write-wins per VMID) but must also rewrite the guest's
bootstrap.json or the controller loses agent access — an operator-timed act, not a background one.
The general fix is upstream: reading secret-bearing JSON should go through a helper that prints keys
and never values, the discipline the golden bake already uses for the Gitea token.

R-221 also recorded as PROVEN ON HARDWARE in STATUS.
2026-08-08 20:13:22 +02:00
..

documentation/backlog/

OPEN-ITEMS.md is the register of open work and the file to read first — it holds only what is open, one row per item, every row with a state and an owner. ROADMAP.md is the full history and reasoning behind the R-n IDs, including shipped and killed items; an ID is minted there, and a new instance of an existing item attaches to that ID rather than getting its own.

The rest of this folder: verified-LIVE findings with implementable fix plans that are not yet implemented. Preserved here (instead of on git branches) per the trunk-based, no-branches rule — the fix itself is implemented later directly on main, during a normal/supervised session.

  • FIX-M18-NOTES.md — dump re-validation runs every 5 min (perf). FIXED in controller v0.62.0 @ f8afe5c (2026-06-14). (was on the deleted felhom-controller branch fix/m18-dump-validation-cache.)

  • FIX-M19-NOTES.mdderiveStackName misattribution edge (low-incidence correctness). FIXED in controller v0.62.0 @ 6bab68b (2026-06-14). (was on the deleted branch fix/m19-stackname-crossref.)

  • FOLLOWUP-golden-default-controller-tag.md — the golden bakes a stale controller (:0.43.0 when queued; had rotted again to :0.85.1 by resolution). FIXED in felhom-agent @ ceca355 (2026-07-03): build-golden.sh v2.0.0 makes the controller tag a MANDATORY argument (a required arg cannot rot) and golden 0.98.3 was baked + clean-room-validated (bake → first-boot-current → self-manage → app deploy, on the drill VM — no supervised touch of live guests needed) + published + vouched. Evidence: ../audits/DRILL-golden-098-2026-07-03.md.

Related: the live-drive fixspec (../audits/live-drive-fixspec-2026-06-14.md) carries the deferred supervised items F9 (HDD provisioning/guest-attach), F20-BUG2 (durable_id scheme), F20-BUG3 (async mkfs) — to be implemented in the agent/golden supervised session.