v0.258.0: the last four Hungarian things an English household met
gates / gates (push) Successful in 24s

R-589 the update badge, R-590 the data-folder backup sentence, R-573 the two channel
banners, R-572 two dead helpers. All four were built in Go, which is why neither the
template parity fixtures nor TestI18nEnglishPages could see them; slice 5's LIVE proof
is what found them.

R-590 is the one that matters most: it is a promise about the customer's files. It
said, in Hungarian and under an already-English folder label, that a drop-zone is
temporary and unbacked. The test now asserts the CONSEQUENCE in both languages — and
that the two languages do not produce the same string, which would mean the English
fell back.

R-572 is not what its row said. The row claimed a template renders "vasárnap" on an
English page; measured, NO template and no Go file called pruneLabel or
nextPruneLabel. They were dead func-map entries returning Hungarian, so they are
deleted rather than translated — translating dead code would add machinery with no
reader and a test pinning a fiction. Deletion is fail-loud and that was proven: a
template naming the removed function panics loadTemplates at startup.

Five red-proofs. One of them says something about the gate rather than the code: the
Go-parity gate does not measure localeFuncs keys against the base capture, so the
citation to TestLocaleFuncsHungarianBundleMatchesFuncMap is what carries them — the
test was extended to make that citation true.

MinAgent: 0.131.0 (unchanged). Hungarian byte-identical.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-20 18:10:53 +02:00
parent ecefdf2dc5
commit 7c4a33b6d1
12 changed files with 425 additions and 74 deletions
+49
View File
@@ -1,3 +1,52 @@
## v0.258.0 — the last four Hungarian things an English household met (2026-09-20, R-589/R-590/R-572/R-573)
**MinAgent: 0.131.0** (unchanged). The Hungarian pages are byte-identical — the parity fixtures and
the Go-parity gate both hold.
Slice 5's live proof found the residue this release clears: on an English app page the only
Felhom-authored Hungarian left was a badge and a sentence about backups. Both are built in **Go**,
which is why neither the template parity fixtures nor `TestI18nEnglishPages` could see them.
- **R-589 — the update badge.** `updateBadge` and `lifecycleBadge` gain bundle-backed forms in
`localeFuncs`, reusing `compareInstalledToTemplate` and `EffectiveLifecycle` so **the decision
cannot drift between the languages — only the words do**; the badge's `Class` is asserted equal
across languages for the same stack. The Hungarian forms in `templateFuncMap` are untouched, which
is the parity guarantee, and `TestLocaleFuncsHungarianBundleMatchesFuncMap` now pins that `hu.json`
says exactly what they say — because `i18n_go_keys.json` cites that test for these keys.
`lifecycleBadge` was not in the row; it is the same builder one function away, and leaving a known
identical defect there would have been a choice.
- **R-590 — the data-folder sentence, which is a PROMISE ABOUT THE CUSTOMER'S FILES.** It said, in
Hungarian and under an already-English folder label, that a drop-zone is temporary and unbacked. An
English household who cannot read it may leave originals in a folder the backup filter discards at
every tier. `consequenceFor` takes its lookup as a parameter, and the test asserts **the consequence
in both languages**: the excluded folder says temporary AND unbacked, a kept folder promises a
backup, an unclassified one promises nothing, and the two languages do not produce the same string
(which would mean the English fell back). The „%.1f GB szabad" free-space line went with it.
- **R-573 — the two channel banners.** The checker already CLASSIFIES the fault, so the banner is
keyed by that classification rather than by the sentence it happened to compose. The composed
sentence stays as the **fail-open fallback**: an unmapped reason renders it verbatim rather than a
blank banner or a raw key. These are the two most operationally important banners there are — the
2026-07-25 outage (R-77) ran 17.5 hours with this banner as the only signal.
- **R-572 — NOT what the row said, and the deletion is the finding.** The row said a template calling
`pruneLabel`/`nextPruneLabel` renders „vasárnap" on an English page. Measured: **no template and no
Go file called either.** They were dead func-map entries returning Hungarian. Translating dead code
would have added machinery with no reader and a test pinning a fiction, so they are **deleted**.
Deletion is the fail-loud direction, and that was proven rather than asserted: a template naming the
removed function makes `loadTemplates` panic at startup with `function "pruneLabel" not defined`.
`fmtDuration`, named in the same row, produces no Hungarian at all ("< 1s", "5s", "2m 3s") and is
left alone.
**Red-proofs, each seen to fail and then revert:** the `updateBadge` override removed from
`localeFuncs` (English read „Naprakész"); `MessageKey` dropped from the banner (English read the
Hungarian sentence); the folder sentence hard-coded back to Hungarian (the English arm convicted on
three assertions); one Hungarian byte changed in a badge key (the funcmap-equality test named both
sides); and a template naming a deleted helper (startup panic).
**The fourth red-proof says something about the gate, not just the code:** the Go-parity gate did
NOT convict that changed byte, because `localeFuncs` keys sit under `_preexisting` and are
deliberately not measured against the base capture. The citation to the test is what carries them —
so the test has to be real, and it is.
## v0.257.0 — the app catalog can speak English (2026-09-20, R-560 slice 5 Part A)
**MinAgent: 0.131.0** (unchanged).