Files
felhom-agent/REPORT.md
T

106 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REPORT — v0.94.0: serialize per-disk SMART into /disks (2026-07-24)
Part of the **disk-health** cross-repo train (agent v0.94.0 + controller v0.169.0/.1 + hub v0.73.1).
Appended above the previous report (kept below).
**Baseline:** felhom-agent `c230258` (v0.93.0) → committed `21fee69` (v0.94.0). Re-verified clean at start.
**Change (additive, backward-compatible; MinAgent floor unchanged):** `localapi.DiskInfo` gains
`Smart *hub.SmartSummary \`json:"smart,omitempty"\``, copied from the target's already-computed
Observe-time enrichment **only when `t.Smart.Health != ""`** — a zero-value summary (SMART never read)
stays omitted so the controller sees "absent" and renders "Nincs adat". No new smartctl load, endpoint,
or sudoers change. Files: `internal/localapi/disks.go`, `internal/localapi/disks_smart_test.go` (new),
`CHANGELOG.md`, `CONTEXT.md`.
**Tests:** `TestDisks_SmartSerialized` (fixture target's SATA counters + temperature present; an
absent-SMART target omits the field). Red-proof: drop the `di.Smart = &sm` copy → "smart not serialized"
FAIL (confirmed). Full agent suite: 29 packages pass, 0 fail; build + vet clean.
**Deploy + live validation (demo host `demo-felhom`):** the vacation note was stale — the agent is
**up and reachable** (binds `192.168.0.162:8443`). Built `felhom-agent-0.94.0` (ldflags), scp'd,
backed up `.bak-0.93.0`, `install`-ed, restarted → **active**, `--version` 0.94.0, capabilities 68/68
degraded=0, local-api listening. **§13(1) live:** the authed `/disks` payload now carries the `smart`
object — dir-backed targets show `smart.health` (UNKNOWN on this virtualized demo hardware), the USB
(union-path) target omits it. The field is live end-to-end; the controller consumes it (see the
controller REPORT). Binary published: image tag on the registry via the publish flow is a follow-up if
a fleet-wide agent republish is wanted — the code + live-deployed binary on demo-felhom prove the field.
---
# REPORT — v0.93.0 publish train executed: built, published, vouched, deployed fleet-wide (2026-07-22)
**The previous report's "NOT built or deployed" line dies here.** v0.93.0 (hyphen-free escrow
wordlist, `a452dc33`, red-proofed 2026-07-21) is now the fleet agent. No code changed this train —
this was the build/publish/deploy leg. Full operational record:
`felhom.eu/documentation/pilot/RUNBOOK-publish-agent-0.93-2026-07-22.md`.
## Confirmed baselines (re-verified at live source before acting)
- `main` = `eba040d0` = origin/main, clean tree; v0.93.0 delta vs 0.92.1 = escrow code + tests +
docs only, **no `configs/` change** → binary-only deploy (sudoers/wrapper untouched).
- Both boxes 0.92.1 + active (hub `hosts` table AND direct `--version`); Day-0 manifest agent
0.92.1/`7424bc1c…`; floor 0.156.0; hub 0.70.0; package `felhom-agent/0.93.0` = 404 pre-publish.
## Artifact
```
AGENT_VERSION=0.93.0
AGENT_SHA256=a68b2ff73200622ea9e23aed71a0a8ff885808626cab9e9d554a5a5df5ced28f (13 817 690 bytes)
```
Built on DooPlex from `eba040d0` (`CGO_ENABLED=0`, ldflags version); published via
`scripts/publish-agent.sh` (pre-delete 404 → PUT 201 → round-trip sha match); **sha-chain identical
at three independent points** incl. an anonymous GET of the package URL.
## Tests
Green gate on the exact built HEAD: `go build ./... && go vet ./... && go test ./...` — green.
**The formerly-flaky escrow package: `-count=10` fresh → 10/10 pass (135.2 s).** The ~1/5 flake WAS
the hyphenated-word defect (see the 2026-07-21 report), so a clean 10× run is direct evidence the
fix is in the built artifact.
## Manifest vouch (rule 1 — before any box moved)
Viktor saved Day-0 artifacts (password-gated UI, the train's one STOP); CC verified in the live hub
DB before deploying: agent **0.93.0 / a68b2ff7…**. Golden, floor and wrapper sha **byte-identical
before/after** (0.153.0 / 0.156.0 / `104db0a4…`). **Deviation, ruled:** MinAgent moved
0.92.1→0.93.0 at the save (spec said do-not-touch); flagged before deploy, ruled leave-as-is —
transient held-floor window only, both boxes already ran controller ≥ floor.
## Deploys — felhom-pve first, then demo-hp
Channel per the 0.90 train: scp one hop → on-box sha256 verify (= `a68b2ff7…` both) →
`.bak-0.92.1` → `install -m0755` → restart. demo-hp reached over the hub-vaulted G1 break-glass
(no key baked; secret handled file→file via `SSH_ASKPASS`, shredded after, never printed).
Per-box clean-restart verification — **5/5 green on both** (journal times host-local CEST):
| Check | felhom-pve (restart 06:56:49Z) | demo-hp (restart 06:57:48Z) |
|---|---|---|
| active / no restart loop | ✅ active, NRestarts=0, clean startup `version=0.93.0` | ✅ same |
| capabilities | ✅ 68/68 ok, degraded=0, inactive=0 | ✅ 68/68 ok, degraded=0, inactive=0 |
| ReassertGuestBinds | ✅ only enrolled `uuid:47a3361a…` (`/mnt/hdd_1`→9201) | ✅ only enrolled `uuid:91d2dc2d…` (`/mnt/nvme-1tb`→9201) |
| guestnet sweep | ✅ watchdog up; sweeps quiet, 0 ERROR/WARN since restart | ✅ same |
| hub `agent_version` | ✅ 0.93.0 (report at startup, 06:56:52Z) | ✅ 0.93.0 (06:57:52Z) |
Escape hatch not needed; `.bak-0.92.1` retained on both boxes. `peti-felhom` deliberately not
deployed to (down; gets 0.93.0 via Friday's reinstall + the vouched manifest — by design).
## Explicit statements (per the train spec)
- Controller floor and MinAgent handling: floor **byte-identical** before/after (0.156.0); golden
entry byte-identical; MinAgent's 0.93.0 value is the one ruled deviation above.
- No escrow ceremony was run as "verification" — the proof is the generation-path tests + version
reporting, per the spec.
- This train discharges `RUNBOOK-onboarding-draft-v4.md` §A item 5 (agent ≥ 0.93.0 box-side before
the first real tester's escrow ceremony) — annotated there.
## Observations (recorded, not acted on)
- The spec's "ROADMAP wordlist row" does not exist in `felhom.eu/documentation/backlog/ROADMAP.md`;
the gate discharge was annotated at its real home (onboarding runbook §A5) instead.
- demo-hp's 1TB NVMe is now **enrolled** (reasserted into 9201) — TASK-H's "unenrolled/NTFS, do not
touch" note is outdated.
- demo-hp remains key-less; break-glass deploy worked cleanly. Tailnet key-expiry toggle still open.
- CONTEXT.md's stale "agent DOWN at remote site / deployed 0.90.0" bullet superseded this train.