diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e8ce6c..ab14b32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,40 @@ +## v0.251.0 — Nothing decides by reading a Hungarian word (2026-09-17, R-553 + R-563) + +**MinAgent: 0.131.0** (unchanged). **No hub release needed.** Nothing a household reads changes: every +Hungarian sentence is byte-identical, and the hub report is unchanged (pinned by a wire test). + +Five places branched on their own customer-facing copy. Localisation slice 2 translates exactly those +words, and each one would then have taken the other branch, silently. Each now reads a signal set where +the message is made — `internal/util.KindErrorf` builds the same bytes `fmt.Errorf` did while carrying a +sentinel for `errors.Is`. + +| # | decision | read before | reads now | +|---|---|---|---| +| 1 | deploy HTTP status (`api.deployStatusFor`) | „kötelező", „memória", "does not exist", "already deployed" | `stacks.ErrRequiredField` / `ErrPathMissing` / `ErrNotEnoughMemory` (400), `ErrAlreadyDeployed` (409) | +| 2 | off-site failure class (`ClassifyOffsiteFailure`) | „tárhelykeretet" | `backup.ErrOffsiteQuota` | +| 3 | where a disk warning is shown (`web/alerts.go`) | „meghajtó"/„adattároló" in the warning | `monitor.WarnKindStorageNotSeparate`, carried in `HealthReport.WarningKinds` | +| 4 | the stale „nothing selected" note (`offboxWarningDisplay`) | „nincs mentésre jelölt alkalmazás" in the PERSISTED text | `settings.OffboxTarget.LastWarningKind` = `backup.OffboxWarnNoAppsSelected` | +| 5 | the remote-backup poll (`backups_remote.html`) | the displayed word „Fut" | `data-status="running"` on the status element (R-563) | + +- **The restic / ssh signatures in the classifier stay text matches on purpose** — that output is not + ours and is never translated. Listed as external in REPORT.md. +- **Site 4 legacy:** a box upgraded to 0.251.0 still carries the old persisted text with no kind until + its next off-site run. The text test survives ONLY for `kind == ""`, with a removal row (R-570); + **slice 2 must not translate that producer before R-570 closes.** +- **Site 5 is the one rendered byte that changed:** the `data-status` attribute (plus the poll line). + 12 `backups_remote` fixtures re-captured; each differs from its predecessor by exactly those two + things, the other 94 are byte-identical. „Fut…" is now `{{T "backups_remote.fut"}}` (en „Running…"), + so the English page finally sees a running backup. +- **The wire is untouched:** `internal/report/builder.go` copies Status/Issues/Warnings only; + `TestR553_HubReportWarningsAreUnchangedOnTheWire` pins the field set and the bytes. +- New in REUSE.md §1: „Error kinds — never branch on a customer-facing sentence". + +**Red-proofs** (`felhom.eu/documentation/audits/r553-2026-09-17/redproofs.txt`): every site's pre-fix +predicate restored and watched failing — deploy statuses fall to 500/400-for-anything, the translated +quota error reads „ismeretlen okból", the translated disk warning jumps to the top banner, the stale +note returns, and both languages lose the poll. The detector (`felhom.eu/scripts/i18n_inventory.py`) +was re-run: template compares 1 → 0, and planted decoys prove it still convicts. + ## v0.250.0 — Every dashboard page in English; the language switch shown to every household (2026-09-17, R-556 release C) **MinAgent: 0.131.0** (unchanged). **No hub release needed.** **A Hungarian household sees one new thing: diff --git a/CONTEXT.md b/CONTEXT.md index 4f5a6eb..db43b73 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -9,6 +9,8 @@ Last updated: 2026-09-17 (v0.247.0 — i18n spike: the dashboard can speak English, Hungarian byte-identical) +> **2026-09-17 night — v0.251.0 (R-553 + R-563 CLOSED).** Five decisions that read their own Hungarian words now read a kind: deploy status sentinels (`internal/stacks/deploy_errors.go`), `backup.ErrOffsiteQuota`, `monitor.WarningKinds`, `settings.LastWarningKind` (legacy text fallback until R-570), and `data-status` on the remote-backup status. `util.KindErrorf` keeps message bytes identical. Slice 2 (R-557) is unblocked except the one producer named in R-570. + > **2026-09-17 night — v0.250.0 (R-556 release C, slice 1 CLOSED).** All templates converted; the language switch is on every dashboard page (decision 6 superseded); login/claim/guest/catch-all through `executeTemplateLang`; Go-side messages and three app-name titles stay Hungarian (slice 2). > **2026-09-17 evening — v0.248.0 + v0.249.0 (R-556 releases A, B).** Apps/settings and backup pages