b389e73fff
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
59 lines
3.9 KiB
Markdown
59 lines
3.9 KiB
Markdown
# REPORT — v0.117.0: consuming-namespace NAS verification + deploy-view truth (RCA fixes 2+4)
|
|
|
|
**Date:** 2026-07-11 · **Version:** controller v0.117.0 (from v0.116.1) · **MinAgent:** 0.81.0
|
|
UNCHANGED (all checks controller-namespace-local; no new agent API) · **Deployed:** guest 9201
|
|
(`0.117.0` healthy) · **NOT published/vouched** — Peti stays 0.113.0. Pairs with agent v0.84.0
|
|
(RCA fix 1). Commits: `c0f3e12` + `4a9c54a` (linux-suite test pin).
|
|
**Source:** `felhom.eu/documentation/audits/AUDIT-nas-cwa-rca-2026-07-11.md`.
|
|
|
|
## What shipped
|
|
|
|
- **`internal/system/fsclass*.go`** — statfs f_type classifier for THIS process's namespace:
|
|
`network` (nfs/cifs/smb2) | `autofs` (healthy idle trigger, NEVER force-mounted) | `stub` |
|
|
`unknown` (error/3 s timeout → fail open). Seams: `statfsFn`, `netProbeFSClass`,
|
|
`Server.classifyFSPath`, `Router.classifyFSPath`.
|
|
- **Fix 2a — probe assertion:** `--netprobe` child creates the probe file first (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.
|
|
- **Fix 2b — deploy refusal:** `POST /api/stacks/{name}/deploy` → `refuseNetworkStubDeploy`: a
|
|
registered network `HDD_PATH` classifying as stub refuses 409; idle autofs / live / unknown /
|
|
local / unregistered / empty all proceed.
|
|
- **Fix 2c — stub badge:** `networkStorageWarnings` → (warnings, stubs); stub leg runs even when
|
|
the agent is unreachable; dashboard + stacks cards render "Hálózati tárhely hibás — az alkalmazás
|
|
nem a NAS-t látja"; stub WINS over unreachable; the unreachable line stays byte-identical
|
|
(template-asserted). Pure core `networkStorageWarningsIn` + `stubNetworkPaths`.
|
|
- **Fix 4 — deploy-view truth (the RCA S-C symptom):** deployed-app storage select marks `selected`
|
|
by the STORED `HDD_PATH`; absent stored path → extra disabled `<path> (nem elérhető)` option;
|
|
`IsDefault` selects only for NEW deploys.
|
|
|
|
## Tests + red-proofs
|
|
|
|
| Test | Result | Red-proof |
|
|
|---|---|---|
|
|
| magic table + seam + real-local-dir-is-stub (linux) | PASS | — |
|
|
| `TestNetProbeChild_StubRefused` / `_AutofsAfterCreateRefused` / `_RealLocalDirRefused` (linux) | PASS | assertion disabled → **the stub VERIFIED** (exit 0) → FAIL |
|
|
| `TestNetAdd_StubProbe_RollsBackNotRegistered` (rollback + not registered + Hungarian) | PASS | same mutation → job phase `done` → FAIL |
|
|
| `TestRefuseNetworkStubDeploy_Table` (7 rows) | PASS | mounted-only gate → idle-autofs + unknown rows FAIL (over-refusal) |
|
|
| `TestNetworkStorageWarningsIn_StubWins` / `_UnreachableAloneUnchanged` | PASS | — |
|
|
| `TestNetworkBadgeTemplates_DistinctStrings` (unreachable line byte-identical) | PASS | — |
|
|
| `TestDeployPage_DeployedSelectShowsStoredHDDPath` (real Manager + real template render) | PASS | IsDefault-only revert → default drive selected → FAIL (both assertions) |
|
|
| `TestDeployPage_MissingStoredPathRendersTruthOption` | PASS | — |
|
|
|
|
Full suite green on Windows AND on 180 (linux); the linux run caught the pre-existing C5 child-body
|
|
suite needing the classifier pinned to `network` (fixed in `4a9c54a` — the real statfs correctly
|
|
refuses a tempdir). Gates: `template_id_gate.py` + `emoji_gate.py` OK.
|
|
|
|
## Deploy + live validation
|
|
|
|
- Image `0.117.0` built+pushed on 180, deployed to 9201 via the bootstrap mechanism; healthy.
|
|
- **Q1c reboot validation (operator GO, with agent 0.84.0):** post-reboot, no manual action —
|
|
CWA auto-started healthy on the NAS, health `status=ok` on the first cycle, dashboard renders NO
|
|
stub badge (grep count 0 against the live page).
|
|
- **NOT live-validated (test-level only, by design):** the stub refusal branches — producing a live
|
|
stub post-fix would require breaking a healthy guest (the agent now heals it at start). Covered by
|
|
the red-proven unit/render tests above.
|
|
|
|
## Follow-ups
|
|
|
|
RCA fixes 3/5/6 queued as separate tasks. Peti publish train: 0.84.0 + 0.117.0.
|