Localisation slice 5: the catalog's copy model is MEASURED, not proposed (R-560)
gates / gates (push) Successful in 25s

10-localisation.md §7 goes from [DESIGN, proposed] to [FACT], with the numbers it was
specced against corrected — and one correction chose an instrument rather than a
footnote. The catalog has 1 032 copy strings, not 835. 832 carry a Hungarian letter,
which was right. But the ASCII-ONLY Hungarian is ~120 strings, not three: „Aldomain"
appears 53 times and „A szerver domain neve" 53 times, and the three the plan named
(„Igen"/„Nem"/„Nincs") do not occur in this catalog at all. An accent-only gate passes
every one of them inside an English block — R-565's blind spot arriving again in a
different repo.

New §10.6 records what was proven live rather than reasoned about: the English pages
show English; the seven Hungarian pages are byte-identical before and after the push
apart from the per-session CSRF token; and a 0.255.0 box with the block synced onto it
renders identically and logs no warning, in a 93-line window that contains the sync's
own lines, so the absence is evidence and not a dead log.

Rows R-589 (the update badge is Hungarian on an English page), R-590 (the data-folder
card's backup promise, likewise, and it is a promise about the customer's files),
R-591 (Stack.Copy() deep-copies five Meta fields and not the new I18n map — safe
today, which is precisely why it is a row), R-592 (three defects inside the new
catalog gate, closed the same session, each found by its own decoy). R-560 updated:
Parts A and B done, Part C waiting on the operator's read of the pilot.

STATUS asks for that read, and for the floor to 0.257.0.

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 14:44:20 +02:00
parent 31eeb36e88
commit f538a03bd5
44 changed files with 45985 additions and 67 deletions
+26
View File
@@ -14,6 +14,32 @@
> language, one screen, no identifiers in the prose. Same subjects, different readers; merging them
> would make one of the two audiences stop reading. `STATUS.md` is also a **view of `OPEN-ITEMS.md`**
> and holds nothing of its own; this file does hold its own content, namely the standing rulings below.
## 2026-09-20 — localisation slice 5: the app catalog's copy model is MEASURED, not proposed (R-560)
`architecture/10-localisation.md` §7 was a proposal; it is now a fact, with the numbers it was
specced against corrected. **Controller v0.257.0** reads an `i18n: {en: …}` sibling block inside
`.felhom.yml`; **the catalog** carries the Hungarian freeze, the `copy-i18n` gate and a three-app
pilot (privatebin, paperless-ngx, romm — 89 of 1 032 strings).
**The two numbers that were wrong, and one of them chose an instrument.** The catalog has **1 032**
copy strings, not 835 (the inventory omitted 13 `placeholder` values and every ASCII-only label);
**832** of them carry a Hungarian letter, which was right. But the ASCII-ONLY Hungarian is **~120
strings, not three** — „Aldomain" 53×, „A szerver domain neve" 53×, „Jelentkezz be: …" 5×, „Magyar",
„Angol", „Titkos kulcs" — and „Igen"/„Nem"/„Nincs" do not occur in this catalog at all. **An
accent-only scan passes every one of them inside an English block**, which is R-565's blind spot
arriving again in a different repo. The catalog gate folds and matches WORD-BOUNDED stems, with a
positive and two negative controls printed every run.
**Part C (the other 50 apps) is deliberately not started.** The §16 default was to stop after the
pilot for the operator's read of the three apps' English; it is quoted in
`app-catalog-felhom.eu/REPORT.md`.
**Still the operator's:** raise the fleet floor to **0.257.0**. Until then only demo-hp can read an
English app block at all.
**Gaps filed:** R-589, R-590, R-591, R-592. Evidence:
`documentation/audits/i18n-slice5-2026-09-20/`.
## Decisions 2026-09-17 (afternoon) — the product in more than one language (localisation starter)
**Operator rulings on the starter** (`architecture/10-localisation.md` §11): (1) scope = what the