c20814e6c2
Claude-Session: https://claude.ai/code/session_01NptTCFtu7dz2Ru89qHRagN
3.3 KiB
3.3 KiB
REPORT — agent v0.86.0: DR-tier-by-default (capability inactive + F-3 parent ownership)
Date: 2026-07-12 · Baselines: agent v0.85.0 (bcb8dad) → v0.86.0.
Source of truth: the DR-tier-by-default batch spec + felhom.eu/documentation/audits/DRILL-day0-vm-2026-07-12.md.
Scope: agent half of the batch — the capability inactive state (disabled ≠ degraded) and the
F-3 provision parent-dir ownership fix. No escrow/ceremony changes (decision 4: identity-only
escrow is PARKED by policy). Green gate: go build ./... && go vet ./... && go test ./... — all
26 packages ok.
What shipped
- Capability
inactivestate (internal/capability/probe.go,manifest.go):StatusInactive = "inactive",ReasonInactive = "disabled by configuration".Capability.GatedBy+Prober.GateActive(gate)— a HEALTHY probe of a gated capability whose gate is off is downgraded ok→inactive. Degraded (binary missing / sudo denied) is NEVER downgraded: an un-migrated pre-v1.15.0 box must not masquerade as deliberately off.- The 3
pbsdr-*entries are gated via the stable name prefix inManifest()(a future pbsdr-* op is gated automatically; nothing else ever is — pinned by test). Summarizecounts only real degraded;logCapabilitieslogs an inactive count at INFO and now runs AFTER the pbsdr wiring so the startup snapshot equals the first report's.
pbsdr.Manager.DRConfigured()(internal/pbsdr/manager.go): the gate's answer — live descriptor state (anything butdisabled), falling back to the persisted converged marker before the first desired-state fetch (an applied box never flaps inactive across a restart).- F-3 (
internal/provision/backhalf.go): a root-run provision chownsguests/+guests/<vmid>/to the state-dir's owner (chown --reference, non-recursive; bootstrap leaf stays guest-root). Non-root (daemon) runs skip it via thegeteuidseam.
Tests + red-proofs (all three mutations proven red, then restored)
| Test | Red-proof mutation | Result |
|---|---|---|
TestProbe_GateOffHealthyIsInactive (+ BinaryMissingStaysDegraded, GateOnOrNilIsOK, ExactlyPBSDRGated) |
gate branch in Probe disabled (if false) |
inactive case FAILED; degraded case stayed green ✓ |
TestDRConfigured_Lifecycle (unconfigured→applied→restart-marker→disabled) |
DRConfigured ignores the disabled state |
disabled case FAILED ✓ |
TestProvision_RootRunOwnsGuestsParents (root issues, non-root doesn't, never -R) |
F-3 chown block removed | root case FAILED ✓ |
Live state touched
- felhom-pve latent F-3 state FIXED live (pre-existing
guests{,/9201}root:root 0700 → chowned to felhom-agent, bootstrap subtree untouched — the drill's proven fix). - Peti's host: unreachable — his F-3 check + agent update stay deferred (publish-train D/E/G).
Shipping notes
configs/felhom-pbs-applywas already in this repo; host-install v1.15.0 (felhom.eu, same-day) now ships it (drill F-7) +age(F-10) +wg_tunnel.enabled: true(F-9/decision 5).- Hub-side rendering of the
inactivechip + the per-customer DR flag = hub v0.51.0 (felhom.eu). - Deploy: build+push 0.86.0 on 180, deploy to felhom-pve, publish via
scripts/publish-agent.sh, hub Day-0 manifest vouch as operator/browser follow-up.