v0.115.0: version-aware Supports (agent header channel) + DSM-validated NFS guidance — MinAgent: 0.81.0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
2026-07-11 15:03:41 +02:00
parent ac6adaaa44
commit b6842a4bc3
8 changed files with 394 additions and 72 deletions
+29
View File
@@ -1,5 +1,34 @@
## Changelog
### v0.115.0 — version-aware Supports (agent version channel) + DSM-validated guidance (2026-07-11) — MinAgent: 0.81.0
Capability detection upgrades from route-probing to explicit version comparison, riding agent
v0.82.0's `X-Felhom-Agent-Version` response header. **The probe FALLS BACK cleanly — agent 0.82 is
NOT required** (MinAgent stays 0.81.0: the coupled NAS semantics; Peti's 0.81.0 box exercises the
fallback in production).
- **agentapi**: every response path passively captures the header (`noteAgentVersion` on all four
`Do` sites — even on 404s/errors); STRICT bare-semver validation at capture (the publish-agent.sh
shape; garbage never overwrites); `Client.AgentVersion()` exposes the last-seen value.
- **features.go**: per-feature `featureMinAgent` table (`netstorage_verify: 0.81.0`) + optional
`AgentVersionReporter` on the prober. `Supports` order: version known → semver compare →
Yes/No with ZERO probe traffic; version unknown/garbage/table-gap → the v0.114.0 probe path
byte-identical (SupportCache stays probe-only). Gate/banner/UI unchanged — same three verdicts,
better source.
- **THE one comparator**: `selfupdate.ParseVersion/Version.Compare` moved verbatim to
`internal/util/version.go` (selfupdate keeps type aliases — call sites + tests byte-unchanged);
agentapi shares it (no import cycle, no second comparator).
- **DSM-validated NAS guidance** (SPIKE-nas-dsm-2026-07-11, real DSM 7.2 via virtual-dsm): the NFS
guidance gains the verified Synology steps — File Services → NFS → enable + **Maximum NFS
protocol: NFSv4.1** (the v3 default refuses our mount), NFS Permissions rule with Squash
„Map all users to admin”, the `/volume1/<mappa>` path hint; the "útmutató készül" caveat narrows
to **QNAP only** (Synology now validated end-to-end incl. SMB hardlink).
- Tests + red-proofs: version-known compares without probing (mutant: short-circuit dropped →
probes=1); garbage/absent header → exactly-one-probe fallback + cached (mutant: trusting an
unparseable header as "too old" → fails); non-reporter probers byte-unchanged; comparator table
incl. pre-release rejection + numeric-vs-lexicographic; wire-level: header wins over a routeless
agent through the real pinned client, garbage header ignored at capture.
### v0.114.0 — agent-capability gate for coupled features (2026-07-11) — MinAgent: —
Box-level backstop for the publish-train ordering discipline (incident: the 0.81/0.113 train's