docs: v0.114.0 CHANGELOG (MinAgent header convention) + README NAS gate + CONTEXT + REUSE + coupled-feature rule in CLAUDE.md
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,39 @@
|
||||
## Changelog
|
||||
|
||||
### 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
|
||||
9-minute controller-before-agent skew on Peti's box — RUNBOOK-publish-0.81-0.113-2026-07-11): the
|
||||
controller now detects whether its agent supports a coupled feature and refuses that feature up
|
||||
front, instead of failing mid-pipeline with a misleading rollback. No agent or hub changes; works
|
||||
against agents 0.79–0.81 as they exist. (Retroactive note: v0.113.0's effective MinAgent was
|
||||
0.81.0 for the NAS add — this release is the machinery that makes such coupling self-protecting.
|
||||
Header convention from here on: coupled releases declare `MinAgent: X.Y.Z` on this line.)
|
||||
|
||||
- **agentapi typed status (1.1):** non-2xx GETs surface as typed `*StatusError{Path,Code}` (same
|
||||
message text as the old formatted error) — the probe keys on `Code==404` via `errors.As`, never
|
||||
string matching.
|
||||
- **`internal/agentapi/features.go`:** `Feature`/`SupportState` + `featureProbes` table (one row:
|
||||
`netstorage_verify` → `GET /netstorage/verify-status`, the route that shipped WITH the coupled
|
||||
add semantics in agent v0.81.0) + `SupportCache` (TTL 5 min, Yes/No cached, Unknown NEVER cached
|
||||
or refused) + `Client.Supports`. 2xx ⇒ Yes; 404 ⇒ No; transport/timeout/401/5xx ⇒ Unknown — an
|
||||
agent problem is never claimed as "too old".
|
||||
- **Add gate:** `handleNetStorageAdd` refuses on `SupportNo` BEFORE the single-flight claim —
|
||||
HTTP 412, machine code `agent_outdated`, message "Az ügynök frissítése szükséges ehhez a
|
||||
funkcióhoz — a frissítés megérkezése után próbáld újra." `SupportUnknown` passes through to the
|
||||
existing agent-error paths. `remove`/`list`/health are NOT gated — old shares stay manageable.
|
||||
- **Settings page:** `NetAddSupport` (yes/no/unknown, short 2 s probe budget + cache) — `no` swaps
|
||||
the add form for the honest banner; the share list + remove render in every state.
|
||||
- **Tests:** T1 gate refusal (job never starts, slot never claimed, zero agent calls), T2 unchanged
|
||||
happy path + warm-cache NEGATIVE assertion (probe count stays 1 across two adds), T3
|
||||
indeterminate-never-refuses, T4 classification incl. the string-match trap case, T5 banner
|
||||
render, T6 TTL re-fire, wire-level 404-typing through the pinned client. Red-proofs RP1–RP5 run +
|
||||
reverted (recorded in REPORT.md).
|
||||
- Also: fixed a scheduling flake in `TestBackupTier2Restore_DoubleClickRefused` (pre-existing).
|
||||
- **Docs:** publish-train rules codified at `felhom.eu/documentation/runbooks/publish-train-rules.md`
|
||||
(manifest-before-floor; floor field LAST — the DB row overrides env and acts immediately;
|
||||
MinAgent fleet gate; this gate as backstop).
|
||||
|
||||
### v0.113.0 — NAS verify-before-commit + page redesign + protocol-honest guidance (2026-07-11)
|
||||
|
||||
Kills the "bogus share sits at Készenlét forever" bug: `POST /api/storage/netstorage/add` now
|
||||
|
||||
Reference in New Issue
Block a user