docs: localisation slice 2 release B (controller v0.253.0) — R-557 progress, R-575, R-576
gates / gates (push) Successful in 25s

All 179 Hungarian error messages carry a key; zero remain. 10-localisation.md gains §10.2: the
four properties util.MsgError had to have at once and the failure each one prevents, and the
plural rule as a BUNDLE rule rather than a per-call-site flag, with the answerable sentence and
what the other option would have cost.

Two instrument defects recorded rather than tidied away, because both shapes recur:

R-576 — the parity gate has a measured blind spot. The bulk converter dropped the continuation
of multi-line concatenations, damaging 7 producers, and the gate stayed GREEN: every surviving
fragment WAS a byte-equal base-commit literal, so its question ("is this text real?") was
answered yes while the CALL had lost half its sentence. Two behaviour tests caught it. The
general form: a structural gate over the TEXT cannot see a defect in the CALL.

And the script counting what was left was case-sensitive, so it said "0 remain" while five did —
R-565's shape inside the measurement. Every "no Hungarian left" claim in this slice is now made
case-insensitively and with both controls.

R-575 — the soft memory-overcommit warning has no error to carry a key and no language where it
is built, so it renders Hungarian on an English page. Named in the code, not hidden.

Live evidence includes a mistake I made and corrected: a probe of the deploy refusal INSTALLED
vaultwarden on demo-hp (the endpoint accepts before it validates), the same mistake the previous
session recorded. Removed through the product's own path with its data; verified gone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-18 11:51:06 +02:00
parent 92ee0f9881
commit 08e9ddbd5c
9 changed files with 261 additions and 32 deletions
+33 -30
View File
@@ -1,46 +1,49 @@
# STATUS — what works, what's broken, what's next
**Updated 2026-09-18 — the sentences the program writes now follow the language.**
**Updated 2026-09-18 (evening) — the sentences the program writes now follow the language, error messages included.**
> **Ready for a volunteer: yes, unchanged.** A Hungarian household sees exactly what it saw
> yesterday. I did not read the pages to decide that — I compared them, letter by letter.
**Decisions I took.** None. One choice you were asked for stayed on its own stated default: notes
saved to disk at night (last error, last warning) will be written in the box's language at the time
they are written. A household that switches language sees last night's note in the old language until
the next run. That is option 1 in the plan, and the plan says it is what happens if nobody decides.
**Decisions I took.** None you have to reverse. One choice you were asked for stayed on its own
stated default: notes saved to disk overnight will be written in the box's language at the time they
are written, so a household that switches sees last night's note in the old language until the next
run. That is what the plan says happens if nobody decides.
**What I exercised, on the demo HP box.** The pages were already English. The SENTENCES the program
writes into them were not — "Saved.", "The remote target is not set.", the country names, the yellow
banners at the top. I moved 226 of them, and they now follow the language. Two I want to name:
**What I did.** Two releases. The first moved the sentences the program writes into the pages — the
little green line after you press a button, the yellow banners, the country names, the answers the
page fetches in the background. The second did the **error messages**: about 180 sentences that are
written deep inside the program and printed by whatever catches them. All of them now travel with a
short code, so the page that shows them writes them in your language. **None are left in Hungarian
only.**
- **The little green "done" line after you press a button.** It travels inside the web address, so
it is written by one page and read by the next. It used to be written in whoever's language came
first. It now travels as a short code and the page you land on writes the sentence. A link you
already have open from before still shows its old sentence, word for word — I checked that live.
- **The country list.** All 237 names, and the list re-sorts itself, so the English list really is in
English alphabetical order and not Hungarian order with English words in it.
**My mistake, and what I did about it.** My first test of an error message asked the box to install an
app with nothing filled in, expecting a refusal — and it installed the app instead, because that
particular one needs nothing filled in. **This is the same mistake the session before mine made and
wrote down, and I repeated it.** I stopped the app and removed it the way a customer would, with its
data, and checked: no container, no folder, no leftover storage. The 23 apps that should be running
are all running. The real lesson is sharper than "pick a different app": that button accepts first and
checks afterwards, so it cannot be used to test a refusal at all. The tests were rewritten to use
requests that are refused before anything is created.
**How I know Hungarian did not change.** A new check freezes every Hungarian sentence in the program
as it stood before I started — 7 467 of them — and refuses any sentence that is not exactly that,
down to a comma. It caught a real mistake in itself on the first run and I fixed the check. Then on
the box: ten Hungarian pages before and after. Six identical. The other four differ only in things
that move on their own — a clock ticking over, an app that was unhealthy for a minute, and the
"update available" line, which is true on the old version and not on the new one.
**How I know Hungarian did not change.** A check freezes every Hungarian sentence as it stood before I
started — 7 467 of them — and refuses any that is not exactly that, down to a comma. Then on the box:
ten Hungarian pages before and after, six identical, the other four differing only in a clock ticking
over, an app unhealthy for a minute, and the "update available" line.
**What I deliberately did NOT translate.** Anything the central service reads and turns into an
e-mail to the household. I checked, and found the plan was wrong about this: the service does not
always write its own e-mail — for several kinds of message it sends the box's own sentence straight
on. Translating those here would have changed an e-mail nobody asked to change. They are now frozen
by a test, and they get their turn in the next step.
**Two things went wrong in my own tools, and I am naming them rather than tidying them away.** My
bulk converter quietly dropped the second half of sentences that were written across two lines — seven
of them — and **the freeze-check did not notice**, because each surviving half really was a real old
sentence. What caught it was two tests that read the sentence a customer would see. And my counting
script ignored capital letters, so it told me "none left" while five were. Both are written down with
a number.
**What is not done yet.** About 900 sentences remain. 176 of them are error messages, which is the
next release; the rest are notes saved to disk, which is the one after. Four smaller gaps I found
while working are written down with a number each.
**What is left.** The notes saved to disk overnight — one more release. Plus a handful of small gaps,
each with a number.
**Rows.** One closed, three opened. The register went from **264** to **266** open rows.
**Rows.** One closed, five opened across the day. The register went from **264** to **269** open rows.
**Needs you.** Nothing. The new version runs on the demo HP box only; the fleet floor is unchanged at
**Needs you.** Nothing. Both new versions run on the demo HP box only; the fleet floor is unchanged at
0.250.0. If you do nothing: the other boxes keep the version they have, and nothing breaks.
---