v0.117.0: consuming-namespace NAS verification + deploy-view truth (RCA fixes 2+4)
statfs fsclass helper (network/autofs/stub/unknown, fail-open); probe not_network_fs assertion (stub can never verify — red-proven); deploy-time stub refusal (idle autofs proceeds — red-proven); distinct stub badge, stub wins over unreachable (unreachable line byte-identical); deployed select shows stored HDD_PATH (red-proven vs IsDefault-only). MinAgent unchanged 0.81.0. Gates green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
@@ -1,5 +1,35 @@
|
||||
## Changelog
|
||||
|
||||
### v0.117.0 — consuming-namespace NAS verification + deploy-view truth (RCA fixes 2+4) (2026-07-11) — MinAgent: 0.81.0
|
||||
|
||||
Controller half of the RCA fix pair (agent v0.84.0 ReassertNetworkMounts). Source:
|
||||
`felhom.eu/documentation/audits/AUDIT-nas-cwa-rca-2026-07-11.md`. MinAgent UNCHANGED (0.81.0) —
|
||||
every new check is controller-namespace-local; no new agent API is consumed.
|
||||
|
||||
- **`internal/system/fsclass*.go`** — statfs f_type classifier for THIS process's namespace:
|
||||
`network` (NFS 0x6969 / CIFS 0xFF534D42 / SMB2 0xFE534D42) | `autofs` (0x0187 — the HEALTHY idle
|
||||
trigger; NEVER force-mounted) | `stub` (anything local — the RCA's silent guest-reboot state) |
|
||||
`unknown` (statfs error/3 s timeout — fail open). Seams: `statfsFn` + per-caller injectables.
|
||||
- **Probe fstype assertion (fix 2a):** the `--netprobe` child creates the probe file FIRST (the
|
||||
create legitimately triggers the automount), THEN requires a MOUNTED network fs — exit 5 →
|
||||
category `not_network_fs` (new §3.2 Hungarian message), full rollback, nothing registered. A
|
||||
writable local stub can never verify again. Red-proof: assertion disabled → the stub VERIFIED
|
||||
(exit 0 / job phase `done`) → FAIL.
|
||||
- **Deploy-time refusal (fix 2b):** `POST /api/stacks/{name}/deploy` refuses (409, Hungarian) when
|
||||
`HDD_PATH` is a registered network path classifying as a stub (`Router.refuseNetworkStubDeploy`,
|
||||
`classifyFSPath` seam). Idle autofs / live / unknown / local / unregistered / empty all proceed.
|
||||
Red-proof: a mounted-only gate wrongly refuses the healthy idle trigger → FAIL.
|
||||
- **Stub badge (fix 2c):** `networkStorageWarnings` returns (warnings, stubs); the controller-side
|
||||
classification runs even when the agent is unreachable. Dashboard + stacks cards render the new
|
||||
distinct badge "Hálózati tárhely hibás — az alkalmazás nem a NAS-t látja"; stub WINS over the
|
||||
recoverable unreachable badge (never both); the unreachable line stays byte-identical
|
||||
(template-asserted). Pure mapping core `networkStorageWarningsIn` (appsUsingPathIn pattern).
|
||||
- **Deploy-view truth (fix 4, the RCA S-C symptom):** the deployed-app storage select marks
|
||||
`selected` by the STORED `HDD_PATH` (`CurrentHDDPath`); a stored path absent from the schedulable
|
||||
list renders an extra disabled `<path> (nem elérhető)` option; `IsDefault` selects only for NEW
|
||||
deploys. Red-proof: IsDefault-only revert → the default drive shows selected → FAIL.
|
||||
- Gates: template_id_gate + emoji_gate OK; full `go build/vet/test ./...` green.
|
||||
|
||||
### v0.116.1 — debug surface ungated from logging.level (2026-07-11) — MinAgent: 0.81.0
|
||||
|
||||
Live validation of v0.116.0 caught the last blind spot: `/debug` + `/api/debug/*` (and the nav
|
||||
|
||||
Reference in New Issue
Block a user