diff --git a/CONTEXT.md b/CONTEXT.md index 81de5859..996a434d 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -14,6 +14,29 @@ > 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. +## 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 +household sees — the controller, its e-mails, the guide, the app catalog; not the hub's operator pages; +(2) the operator sets a customer's language at creation (default hu), the household switches on the +dashboard, the box reports it and the hub's e-mails follow; (3) a missing English line shows the +Hungarian one and is counted — never a key or a blank; (4) the first-boot wizard is out of scope and +obsolete — deletion is R-554. + +**Decided by CC in the spike — operator may reverse:** (5) the mechanism is a flat bundle per +language EXPANDED into the template before `html/template` parses it (a runtime `T` func changes +Hungarian bytes through the escaper); (6) the language switch is hidden on Hungarian pages until the +remaining templates are converted (R-556). + +**Mechanism, shipped controller v0.247.0:** `internal/i18n/locales/{hu,en}.json`; one template set per +language; `settings.json` `language`; `POST /settings/language`; `?lang=`; report field `language` +(allowlisted in `wire_contract_gate.py` until slice 3 reads it). **The release gate for every slice is +`TestI18nParity`**: Hungarian renders vs fixtures captured from UNCONVERTED templates — never +regenerate them to make a conversion pass. Live on demo-hp: Hungarian pages identical to 0.246.0 apart +from version and CSRF token. **Open for the operator:** 1b (console banner + download page in scope?), +7 (do interface nouns translate?). Plan and costs: 10 §10; rows R-553..R-562, **R-553 first** (four +places decide behaviour by Hungarian wording). + ## Decisions 2026-09-17 — the chaos-night fixes (operator rulings) **Ruling A (R-549): the quiet-box alarm waits three report cycles.** `alerting.stale_threshold` 30 m → diff --git a/REPORT-i18n-starter-2026-09-17.md b/REPORT-i18n-starter-2026-09-17.md new file mode 100644 index 00000000..ac82cdbe --- /dev/null +++ b/REPORT-i18n-starter-2026-09-17.md @@ -0,0 +1,48 @@ +# REPORT — localisation starter (English first): inventory, spike, design, plan — 2026-09-17 + +**Task:** STARTER — the product in more than one language. **Baselines (re-verified at start, all +matched the prompt):** felhom-controller `89dd3e94b1de` v0.246.0 · felhom-agent `d9864a94bf62` v0.132.0 · +felhom.eu `851198af7ff0` hub v0.117.0 · app-catalog-felhom.eu `94bc5febaca2`. Highest row R-552. +**Architecture read:** `02-controller-module-map.md`, `05-hub-architecture.md`, `09-update-architecture.md` §3. + +## Claims in the prompt that live source disproved — first + +Six, beyond the four the prompt already named — `documentation/audits/I18N-INVENTORY-2026-09-17.md` §0. +The one that matters: **the time and size helpers DO exist** (`fmtTime`, `timeAgo`, `fmtBytes` and nine +more copy-producing ones; four size helpers, not one). The count claims (template lines 1 613, Go +1 234 / 99 files, `fmtMB` 10×, 13 `.Format(`) were each measured lower; the afternoon template figure +was not reproduced by any of four method variants — the difference is stated, not explained away. + +## Deliverables + +| deliverable | where | +|---|---| +| inventory + script + hash | `documentation/audits/I18N-INVENTORY-2026-09-17.md`, `scripts/i18n_inventory.py` (sha256 `be69b48d…40f0c`), raw `audits/i18n-2026-09-17/inventory.{md,json}` | +| the mechanism on three pages, Hungarian unchanged | controller v0.247.0 — `felhom-controller/REPORT.md` | +| parity fixtures + test | `felhom-controller/controller/internal/web/testdata/i18n_parity/` (14 states), `i18n_parity_test.go` | +| English pages (no screenshots: no browser on DooPlex — the rendered HTML is the evidence) + ASCII-control lines | `audits/i18n-2026-09-17/live/` | +| hub report line carrying `language` | `audits/i18n-2026-09-17/live/hub-report-language.txt` (`en` 12:54:43Z, `hu` 12:55:22Z) | +| `10-localisation.md` | `documentation/architecture/10-localisation.md` | +| sliced plan with costs | 10 §10 (slices 1–6, 56–74 CC-hours total) | +| decisions in the §3 shape | 10 §11 — four operator rulings recorded, two CC decisions, two open (1b, 7) | +| rows | R-553..R-562 opened; R-516 extended; register **248 → 258** open (closed-register gate) | + +## Findings worth knowing + +- **Moving copy out of templates staled one gate and blinded three** — fixed in v0.247.0 by reading + templates expanded; decoys prove it. +- **The wire-contract gate reads comments** (R-555): `language` passed without an allowlist entry. +- **Four behaviour-by-wording sites** (R-553) must be fixed before any Go string is translated. +- **The first-boot wizard is reachable** whenever bootstrap ingestion leaves `customer.id` empty — + inventory §2.7 lists every such path. Deletion is R-554. + +## Gates + +`python3 scripts/repo_gates.py` — run by the pre-push hook on both felhom.eu pushes, all OK. +`unproven.py --summary`: NOT WALKED 35 of 55 — unchanged by this session. + +## Teardown + +Machine: demo-hp guest 9201 left on Hungarian with controller 0.247.0; temp files and secrets +shredded. Host: nothing left on demo-hp. Hub: nothing written (DB copy read and shredded). The fleet +floor was not raised; no golden. Nothing provisioned. diff --git a/STATUS.md b/STATUS.md index 037ca86e..80099aa6 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,5 +1,57 @@ # STATUS — what works, what's broken, what's next +**Updated 2026-09-17 (afternoon) — the dashboard can speak English on three pages, and the Hungarian pages did not change by a single byte.** + +> **Ready for a volunteer: yes, unchanged.** A household sees nothing new. English is switched on per +> box and covers the launcher, the backup overview and an app's page. No recruiting sentence yet: +> English is a proof of the method, not a feature. + +**Decisions I took** (you may reverse either): +1. **How the text is stored.** One word list per language, filled into the page before the page is + built. The other way changes Hungarian characters on the page, so it breaks the „Hungarian must not + change" rule. +2. **The language switch is hidden on Hungarian pages for now.** Only three pages are English, so + showing it to every household would put a half-English dashboard one click away. It appears once the + rest of the pages are done. + +**What I exercised, on the demo box.** +- I saved the three pages in Hungarian before the update and again after it. They are the same, + except the version number and a security token. +- I switched the box to English with the real switch. The pages came up in English. The hub received + „en" in the box's report. I switched it back; the pages are Hungarian again and the hub received „hu". +- What stays Hungarian on the English pages: some messages built by the program, and the app + descriptions from the catalog. Both are later steps of the plan. + +**What broke, and whether it is fixed.** +- Moving the text out of the pages made **one copy check fail and three others blind** to it (for + example the check that stops a promise we cannot keep). Fixed in the same release; each check was + shown to catch a planted mistake in the moved text. +- My text-moving tool **missed eight Hungarian words that have no accents**. I found them by reading + the result, and fixed the tool. +- The hub's field check passed the new field for a wrong reason (the word appears in a comment). Filed, + not fixed. +- The count of all Hungarian text: about **1 900 strings in the pages, 1 100 in the program, 65 in the + hub e-mails, 830 in the app catalog, and a 1 600-word guide**. The prompt's two rough counts were + not reproduced; the difference is named in the inventory. + +**Rows.** Ten opened, none closed. The register went from **248** open rows to **258** (the register +gate's count). Six of the ten are the plan's steps; one is four places where the program decides +something by reading Hungarian words — those must be fixed before any program text is translated. + +**Needs you.** +1. **Are the console screen and the download page in scope?** Your answer named the dashboard, the + e-mails, the guide and the catalog, and not these two. If you do nothing, they wait at the end of + the plan; nothing else is blocked. +2. **Do screen names translate?** I translated them („Indítópult" became „Launcher"). The other choice + keeps the Hungarian names so support and household use the same word. If you do nothing, the + translation stays. +3. **For information:** the demo HP box runs the new controller, put there by hand. The other boxes + stay on the previous version until you raise the floor. Nothing changes for them if you do not. + +--- + +## Previous note + **Updated 2026-09-17 (midday) — the four things chaos night found are fixed, and three of them were proven on the demo box.** > **Ready for a volunteer: yes.** Nothing here was blocking; all four made the box more honest or less diff --git a/documentation/architecture/00-capability-map.md b/documentation/architecture/00-capability-map.md index 022d889b..29fccc6f 100644 --- a/documentation/architecture/00-capability-map.md +++ b/documentation/architecture/00-capability-map.md @@ -181,6 +181,7 @@ likewise silent. Evidence: `audits/DRILL-r361-2026-08-22/evidence/06-part3-decis | **Indítópult (app launcher) — one-tap grid of the household's openable apps** | controller v0.163.0 | **IMPLEMENTED** | New FIRST sidebar page `/launcher`: colored tiles (deterministic slug color or `.felhom.yml` `brand_color`) + white glyph/monogram, one per openable app (tile ⟺ „Megnyitás" — subdomain presence is the single criterion; controller excluded). Operational → `` to the public URL; stopped → greyed + state badge, no link. `/` stays the Vezérlőpult. Endpoint-level + render-test verified; `felhom-controller/REPORT.md` (2026-07-24) | Live operator click-through of a real tile → app pending (browser automation not available on DooPlex). Follow-up: curate `brand_color` for top catalog apps (R-72). Sharing the launcher outside the household is now the capability-URL guest link — see the row below | | **Indítópult megosztás (vendég link)** — capability URL `/s/` serves a standalone read-only guest launcher (no account, no admin session); optional per-share password; QR | controller v0.165.0 | **IMPLEMENTED** | 160-bit `crypto/rand` token, constant-time match (empty stored = disabled = byte-identical to the mux default 404); guest headers `noindex`/`no-referrer`/`no-store`; optional SEPARATE bcrypt share password + its own per-IP attempt map; signed cookie `HMAC(token`\|`passwordHash)` keyed with `session_secret` (rotate-token OR change-password invalidates all cookies); token redacted in logs (`/s/`). Groups A–G (14 tests) + 3 red-proofs; **§13 endpoint-level live validation on 9201 all-pass** (`felhom-controller/REPORT.md` 2026-07-24). **Design ruling: member accounts SUPERSEDED by this capability-URL model; per-member tile visibility parked under the SSO arc (R-15).** | Full operator browser click-through + a validation doc pending → then PROVEN-LIVE. Accepted residuals: link-preview crawlers fetch once (noindex prevents indexing); reverse-proxy/CF access logs hold the path (ops-tier); the modal link carries the request Host (LAN-IP admin ⇒ LAN-IP link) | | Forgot dashboard password → instant reset code | controller v0.123, hub | **PROVEN-LIVE** | `DRILL-day0-take2-2026-07-12` F-15 (live re-run of the exact failure path: hash applied 1s after request, code accepted first try) | | +| **The dashboard in English** — the household picks its language; Hungarian unchanged | controller v0.247.0 (spike) | **PARTIAL — PROVEN-LIVE for three pages** (launcher, backups overview, app page + the shared layout) | `audits/i18n-2026-09-17/live/` — on demo-hp the Hungarian pages were identical to 0.246.0 apart from version and CSRF token; `POST /settings/language` switched them to English and back; the hub stored the reported `language` (`en`, then `hu`). Unit: `TestI18nParity` (14 states vs fixtures from unconverted templates, red-proofed). Design `architecture/10-localisation.md` | 31 other templates (R-556), Go-side messages (R-557, after R-553), hub e-mails (R-558), console/download page (R-559, scope unconfirmed), catalog copy (R-560), guide + English stranger drill (R-561). The switch is hidden from Hungarian pages until R-556 | | Multiple household users / per-person accounts | — | **MISSING** | — | Single dashboard password; acceptable for alpha → R-15 | | WireGuard base infra always-on; OOB operator access (felhom-sshd, /32 peer) | agent v0.72, hub v0.35 | **IMPLEMENTED** | `SPIKE-oob-wg-operator-peer-2026-07-05`, `SPIKE-felhom-sshd-2026-07-05` | Mutual-repair desired-state arc not built → R-13. **CHECKED 2026-08-08 (R-260) and this row was NOT claiming something untrue** — it claims the capability is implemented, never that it is monitored, so no correction was owed. What WAS untrue is narrower and sat one layer down: **the hub's own OOB health check could not see whether the operator's key was installed.** `HostOOBRow` mirrored five of the agent's eight OOB fields, so `operator_key_configured` — emitted every heartbeat since agent v0.72.0, i.e. from this row's own vintage — was discarded by `encoding/json` on arrival, and `oobDegraded` returned `ok` for a box with felhom-sshd active, reachable, a valid config, a configured peer and **no operator key at all**. `operator_peer_configured`, which it did read, only says the peer IP is in desired-state — that OOB is MEANT to work, not that entry is possible. Fixed hub v0.99.0; the missing key now degrades and the alert NAMES it; a stanza too old to carry the field is reported distinctly and is never a silent ok. Pinned end-to-end from raw report JSON by `TestHostOOB_MissingOperatorKey_EndToEnd` and `TestHostOOB_NoKeyField_IsNotSilentlyOK_EndToEnd` | | The operator can see WHERE a managed host is — its LAN address and its WireGuard address, on the host page | agent **v0.119.0**, hub **v0.85.0** | **PROVEN-LIVE** (2026-07-31) | `audits/host-addresses-visible-2026-07-31.md` | Before this the LAN IP was **not reportable at all** — `HostMetrics` carried no address of any kind — and the WG IP existed only in `/offsite`'s peer table keyed by pubkey (peer→host, never host→peer). New wire field `addresses[]`, one row per (interface, address); `IsGlobalUnicast()` is the whole filter, chosen by MEASURING both demo boxes, and it needs no veth/fwbr denylist because that plumbing carries no IP. Rendered live on both 0.119.0 hosts matching their `ip addr` ground truth exactly. **Two honesty properties carry the risk and are both red-proofed:** WireGuard shows the hub ALLOCATION and whether the box CONFIRMS holding it (allocation alone cannot tell a live tunnel from a peer never applied), and an agent below 0.119.0 renders **UNKNOWN, never "no addresses"** — proven live on `drill-r50-0a4f9a` (0.113.0). **Not covered:** a two-LAN-bridge box and a real WG drift, neither of which exists to observe | diff --git a/documentation/architecture/10-localisation.md b/documentation/architecture/10-localisation.md new file mode 100644 index 00000000..dfddad3f --- /dev/null +++ b/documentation/architecture/10-localisation.md @@ -0,0 +1,279 @@ +# 10 — The product in more than one language + +> **LIVING DOCUMENT. Every localisation slice updates this file in the same session.** +> Opened 2026-09-17 by the localisation starter, AFTER its spike ran (controller v0.247.0). Before it, +> no architecture document mentioned localisation at all (a grep of `architecture/*.md` for +> `i18n|locali|language` found one incidental line in 07). +> +> Marks, as in 07 and 02: **[DESIGN]** — a decision taken, not derived from code. **[FACT]** — observed, +> with a citation. Unmarked means not yet classified. + +**This file carries the REASONING. The register (`backlog/OPEN-ITEMS.md`, R-553..R-562) carries the +work. The numbers are in `audits/I18N-INVENTORY-2026-09-17.md`. The source is the truth.** + +--- + +## 1. The rule that makes this safe + +**[DESIGN] The Hungarian product must render byte-for-byte the same before and after every slice — +measured page by page, never by reading.** A household that never switches must not be able to tell a +localisation release happened. English goes on top of an unchanged Hungarian product. + +**[FACT]** It is enforceable, and enforced for the three converted pages: `TestI18nParity` +(`felhom-controller/controller/internal/web/i18n_parity_test.go`) renders 14 fixture states of the +launcher, `/backups` and `/apps/` in Hungarian and compares them with HTML captured from a clean +worktree of `origin/main` 89dd3e94b1de **before** any template carried a marker. One changed byte in +`hu.json` fails it naming the page and the line (red-proof, +`felhom-controller/REPORT.md`). **Fixtures are captured from unconverted templates and never +regenerated to make a conversion pass** — that is the release gate for every slice. + +The one normalisation: relative ages („3 napja") become „# napja", because they come from the wall +clock. + +**[FACT] And live, on demo-hp guest 9201 (2026-09-17, endpoint-level):** the launcher, `/backups` and +`/apps/privatebin` fetched in Hungarian on 0.246.0 and again on 0.247.0 are **identical apart from the +version string and the CSRF token**, with equal raw byte counts (44 462 / 46 250 / 42 081), and again +after a round trip through English (`audits/i18n-2026-09-17/live/`). + +--- + +## 2. The mechanism, as measured + +### 2.1 What was chosen, and why + +**[DESIGN] A flat message bundle per language, expanded into the template BEFORE `html/template` +parses it.** Decided by CC in the spike (the starter delegated the choice, §4 1.1 of the task). + +| option | cost | verdict | +|---|---|---| +| (a) `golang.org/x/text/message` catalogs + a `T` func | a new external dependency; its value is gender/plural/ordinal selection | **not needed**: the inventory found no gender agreement and only count plurals; Hungarian does not inflect after a numeral | +| (b1) flat bundle, **runtime** `T` template func | every string passes through the contextual escaper: `+`, `'`, `"` change bytes; inside ` + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + +
+ +
+ +

Titkosított szöveg megosztás - a szerver nem látja a tartalmat

+ +
+ ~30M RAM + security + + Pi kompatibilis + +
+ +
+
+ + +
+ + + +
+ + + + +
+

Áthelyezés másik tárhelyre

+

Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át. Az alkalmazás az áthelyezés alatt rövid időre leáll, az adatok pedig csak az ellenőrzés és a sikeres újraindítás után törlődnek a régi helyről.

+
+ + +
+ +
+ + + + +
+ +
+

Mire használható?

+
    +
  • Érzékeny szövegek biztonságos megosztása
  • E2E titkosítás - a szerver nem fér hozzá a tartalomhoz
  • Beállítható lejárati idő (5 perc - 1 év, vagy soha)
  • Olvasás után automatikus törlés opció
  • Jelszóvédelem a még nagyobb biztonságért
  • +
+
+ + + +
+

Első lépések

+
    +
  1. Nyisd meg a paste.DOMAIN címet a böngészőben
  2. Írd be a szöveget és kattints a Küldés gombra
  3. Oszd meg a generált linket - a titkosítási kulcs az URL-ben van
  4. +
+
+ + + + + + + + + +
+

Dokumentáció

+

Hivatalos dokumentáció ↗

+
+ +
+ + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/after-0.247.0-hu-settled/backups.html b/documentation/audits/i18n-2026-09-17/live/after-0.247.0-hu-settled/backups.html new file mode 100644 index 00000000..5be6e91a --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/after-0.247.0-hu-settled/backups.html @@ -0,0 +1,759 @@ + + + + + + + + Biztonsági mentés — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + +
A rendszermentés jelenleg ugyanazon a lemezen van, mint a rendszer — így hibás fájlok ellen véd, lemezhiba ellen nem. Csatlakoztass egy második meghajtót a teljes védelemhez.
+ +
+

Ezt a meghajtót kijelölheted a rendszermentés helyéül — így egy lemezhiba után is vissza tudod állítani a rendszert.

+

NVME 1TB

+ +
+
+ + + + + + +
+

Tárhely áttekintés

+
+
+ +
+
+ Rendszer (/) + 16.6 GB / 68.7 GB (24%) +
+
+
+
+
+ + +
+
+ NVME 1TB + 15.1 GB / 938 GB (2%) +
+
+
+
+
+ + + +
+
+
+ DB mentések + 16 fájl +
+
+
+
+ + + +
+

Rendszermentés (teljes mentés)

+

A teljes szerver — alkalmazások, beállítások és adatbázisok együtt — időszakos mentése, amelyből az egész készülék visszaállítható. Ezt a host-ügynök készíti és kezeli.

+ +
+
+
✓
+
Utolsó teljes mentés +
2026-09-17 06:36 (8 órája) +
+
+
+
–
+
Helyi tároló (local)
+
+
+
Naprakész
+
Következő mentés +
8 órája — a mentési ablakon belül +
+
+
+
–
+
Visszaállítás ellenőrizve +
Még nem futott +
+
+
+ + + + + + + + + + + + + +
Helyi tároló (local) + + +
✓ Utolsó sikeres mentés: 2026-09-17 06:36 (8 órája) + Naprakész
+ + + +
Biztonsági szerver – külön hardver (PBS) + + +
✓ Utolsó sikeres mentés: 2026-09-15 06:11 (2 napja) + Naprakész
+ + + +
+ + + +
+ + A mentés alatt az alkalmazások leállnak — általában néhány perc, nagyobb adatnál több. +
+
+ + +
+ + + +
+

Mentési időablak

+

A mentések egymás után futnak: adatbázis-mentés, helyi másolat, távoli mentés, majd a teljes rendszermentés.

+
+ +
+ + +
+ +
+ +
+ + +
+ + +
+
✓
+
Adatmentés aktív
+
+ + + + +
+
✓
+
Távoli rendszermentés
külön hardveren (PBS)
+
+ + +
+ +
+ 16 +
+
Adatbázis mentve
+ +
+
+ + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/after-0.247.0-hu-settled/launcher.html b/documentation/audits/i18n-2026-09-17/live/after-0.247.0-hu-settled/launcher.html new file mode 100644 index 00000000..5e05816d --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/after-0.247.0-hu-settled/launcher.html @@ -0,0 +1,706 @@ + + + + + + + + Indítópult — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + +
+ + + + + + A + + + + AdventureLog + + + + + + + + + B + + + + BentoPDF + + + + + + + + + B + + + + BookStack + + + + + + + + + C + + + + Calibre-Web Automated + + + + + + + + + D + + + + Docmost + + + + + + + + + F + + + + Filebrowser + + + + + + + + + K + + + + Kimai + + + + + + + + + O + + + + OpenGist + + + + + + + + + P + + + + Paperless-ngx + + + + + + + + + P + + + + PrivateBin + + + + + + + + + R + + + + RomM + + + + +
+ + + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/back-hu/apps_privatebin.html b/documentation/audits/i18n-2026-09-17/live/back-hu/apps_privatebin.html new file mode 100644 index 00000000..8bb28e4b --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/back-hu/apps_privatebin.html @@ -0,0 +1,636 @@ + + + + + + + + PrivateBin — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + +
+ +
+ +

Titkosított szöveg megosztás - a szerver nem látja a tartalmat

+ +
+ ~30M RAM + security + + Pi kompatibilis + +
+ +
+
+ + +
+ + + +
+ + + + +
+

Áthelyezés másik tárhelyre

+

Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át. Az alkalmazás az áthelyezés alatt rövid időre leáll, az adatok pedig csak az ellenőrzés és a sikeres újraindítás után törlődnek a régi helyről.

+
+ + +
+ +
+ + + + +
+ +
+

Mire használható?

+
    +
  • Érzékeny szövegek biztonságos megosztása
  • E2E titkosítás - a szerver nem fér hozzá a tartalomhoz
  • Beállítható lejárati idő (5 perc - 1 év, vagy soha)
  • Olvasás után automatikus törlés opció
  • Jelszóvédelem a még nagyobb biztonságért
  • +
+
+ + + +
+

Első lépések

+
    +
  1. Nyisd meg a paste.DOMAIN címet a böngészőben
  2. Írd be a szöveget és kattints a Küldés gombra
  3. Oszd meg a generált linket - a titkosítási kulcs az URL-ben van
  4. +
+
+ + + + + + + + + +
+

Dokumentáció

+

Hivatalos dokumentáció ↗

+
+ +
+ + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/back-hu/backups.html b/documentation/audits/i18n-2026-09-17/live/back-hu/backups.html new file mode 100644 index 00000000..5be6e91a --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/back-hu/backups.html @@ -0,0 +1,759 @@ + + + + + + + + Biztonsági mentés — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + +
A rendszermentés jelenleg ugyanazon a lemezen van, mint a rendszer — így hibás fájlok ellen véd, lemezhiba ellen nem. Csatlakoztass egy második meghajtót a teljes védelemhez.
+ +
+

Ezt a meghajtót kijelölheted a rendszermentés helyéül — így egy lemezhiba után is vissza tudod állítani a rendszert.

+

NVME 1TB

+ +
+
+ + + + + + +
+

Tárhely áttekintés

+
+
+ +
+
+ Rendszer (/) + 16.6 GB / 68.7 GB (24%) +
+
+
+
+
+ + +
+
+ NVME 1TB + 15.1 GB / 938 GB (2%) +
+
+
+
+
+ + + +
+
+
+ DB mentések + 16 fájl +
+
+
+
+ + + +
+

Rendszermentés (teljes mentés)

+

A teljes szerver — alkalmazások, beállítások és adatbázisok együtt — időszakos mentése, amelyből az egész készülék visszaállítható. Ezt a host-ügynök készíti és kezeli.

+ +
+
+
✓
+
Utolsó teljes mentés +
2026-09-17 06:36 (8 órája) +
+
+
+
–
+
Helyi tároló (local)
+
+
+
Naprakész
+
Következő mentés +
8 órája — a mentési ablakon belül +
+
+
+
–
+
Visszaállítás ellenőrizve +
Még nem futott +
+
+
+ + + + + + + + + + + + + +
Helyi tároló (local) + + +
✓ Utolsó sikeres mentés: 2026-09-17 06:36 (8 órája) + Naprakész
+ + + +
Biztonsági szerver – külön hardver (PBS) + + +
✓ Utolsó sikeres mentés: 2026-09-15 06:11 (2 napja) + Naprakész
+ + + +
+ + + +
+ + A mentés alatt az alkalmazások leállnak — általában néhány perc, nagyobb adatnál több. +
+
+ + +
+ + + +
+

Mentési időablak

+

A mentések egymás után futnak: adatbázis-mentés, helyi másolat, távoli mentés, majd a teljes rendszermentés.

+
+ +
+ + +
+ +
+ +
+ + +
+ + +
+
✓
+
Adatmentés aktív
+
+ + + + +
+
✓
+
Távoli rendszermentés
külön hardveren (PBS)
+
+ + +
+ +
+ 16 +
+
Adatbázis mentve
+ +
+
+ + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/back-hu/launcher.html b/documentation/audits/i18n-2026-09-17/live/back-hu/launcher.html new file mode 100644 index 00000000..5e05816d --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/back-hu/launcher.html @@ -0,0 +1,706 @@ + + + + + + + + Indítópult — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + +
+ + + + + + A + + + + AdventureLog + + + + + + + + + B + + + + BentoPDF + + + + + + + + + B + + + + BookStack + + + + + + + + + C + + + + Calibre-Web Automated + + + + + + + + + D + + + + Docmost + + + + + + + + + F + + + + Filebrowser + + + + + + + + + K + + + + Kimai + + + + + + + + + O + + + + OpenGist + + + + + + + + + P + + + + Paperless-ngx + + + + + + + + + P + + + + PrivateBin + + + + + + + + + R + + + + RomM + + + + +
+ + + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/before-0.246.0/apps_privatebin.html b/documentation/audits/i18n-2026-09-17/live/before-0.246.0/apps_privatebin.html new file mode 100644 index 00000000..dbcea3c0 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/before-0.246.0/apps_privatebin.html @@ -0,0 +1,636 @@ + + + + + + + + PrivateBin — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + +
+ +
+ +

Titkosított szöveg megosztás - a szerver nem látja a tartalmat

+ +
+ ~30M RAM + security + + Pi kompatibilis + +
+ +
+
+ + +
+ + + +
+ + + + +
+

Áthelyezés másik tárhelyre

+

Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át. Az alkalmazás az áthelyezés alatt rövid időre leáll, az adatok pedig csak az ellenőrzés és a sikeres újraindítás után törlődnek a régi helyről.

+
+ + +
+ +
+ + + + +
+ +
+

Mire használható?

+
    +
  • Érzékeny szövegek biztonságos megosztása
  • E2E titkosítás - a szerver nem fér hozzá a tartalomhoz
  • Beállítható lejárati idő (5 perc - 1 év, vagy soha)
  • Olvasás után automatikus törlés opció
  • Jelszóvédelem a még nagyobb biztonságért
  • +
+
+ + + +
+

Első lépések

+
    +
  1. Nyisd meg a paste.DOMAIN címet a böngészőben
  2. Írd be a szöveget és kattints a Küldés gombra
  3. Oszd meg a generált linket - a titkosítási kulcs az URL-ben van
  4. +
+
+ + + + + + + + + +
+

Dokumentáció

+

Hivatalos dokumentáció ↗

+
+ +
+ + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/before-0.246.0/backups.html b/documentation/audits/i18n-2026-09-17/live/before-0.246.0/backups.html new file mode 100644 index 00000000..25172a25 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/before-0.246.0/backups.html @@ -0,0 +1,759 @@ + + + + + + + + Biztonsági mentés — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + +
A rendszermentés jelenleg ugyanazon a lemezen van, mint a rendszer — így hibás fájlok ellen véd, lemezhiba ellen nem. Csatlakoztass egy második meghajtót a teljes védelemhez.
+ +
+

Ezt a meghajtót kijelölheted a rendszermentés helyéül — így egy lemezhiba után is vissza tudod állítani a rendszert.

+

NVME 1TB

+ +
+
+ + + + + + +
+

Tárhely áttekintés

+
+
+ +
+
+ Rendszer (/) + 16.6 GB / 68.7 GB (24%) +
+
+
+
+
+ + +
+
+ NVME 1TB + 15.1 GB / 938 GB (2%) +
+
+
+
+
+ + + +
+
+
+ DB mentések + 16 fájl +
+
+
+
+ + + +
+

Rendszermentés (teljes mentés)

+

A teljes szerver — alkalmazások, beállítások és adatbázisok együtt — időszakos mentése, amelyből az egész készülék visszaállítható. Ezt a host-ügynök készíti és kezeli.

+ +
+
+
✓
+
Utolsó teljes mentés +
2026-09-17 06:36 (8 órája) +
+
+
+
–
+
Helyi tároló (local)
+
+
+
Naprakész
+
Következő mentés +
8 órája — a mentési ablakon belül +
+
+
+
–
+
Visszaállítás ellenőrizve +
Még nem futott +
+
+
+ + + + + + + + + + + + + +
Helyi tároló (local) + + +
✓ Utolsó sikeres mentés: 2026-09-17 06:36 (8 órája) + Naprakész
+ + + +
Biztonsági szerver – külön hardver (PBS) + + +
✓ Utolsó sikeres mentés: 2026-09-15 06:11 (2 napja) + Naprakész
+ + + +
+ + + +
+ + A mentés alatt az alkalmazások leállnak — általában néhány perc, nagyobb adatnál több. +
+
+ + +
+ + + +
+

Mentési időablak

+

A mentések egymás után futnak: adatbázis-mentés, helyi másolat, távoli mentés, majd a teljes rendszermentés.

+
+ +
+ + +
+ +
+ +
+ + +
+ + +
+
✓
+
Adatmentés aktív
+
+ + + + +
+
✓
+
Távoli rendszermentés
külön hardveren (PBS)
+
+ + +
+ +
+ 16 +
+
Adatbázis mentve
+ +
+
+ + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/before-0.246.0/launcher.html b/documentation/audits/i18n-2026-09-17/live/before-0.246.0/launcher.html new file mode 100644 index 00000000..876c4cc3 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/before-0.246.0/launcher.html @@ -0,0 +1,706 @@ + + + + + + + + Indítópult — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + +
+ + + + + + A + + + + AdventureLog + + + + + + + + + B + + + + BentoPDF + + + + + + + + + B + + + + BookStack + + + + + + + + + C + + + + Calibre-Web Automated + + + + + + + + + D + + + + Docmost + + + + + + + + + F + + + + Filebrowser + + + + + + + + + K + + + + Kimai + + + + + + + + + O + + + + OpenGist + + + + + + + + + P + + + + Paperless-ngx + + + + + + + + + P + + + + PrivateBin + + + + + + + + + R + + + + RomM + + + + +
+ + + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/hub-report-language.txt b/documentation/audits/i18n-2026-09-17/live/hub-report-language.txt new file mode 100644 index 00000000..6aadca7d --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/hub-report-language.txt @@ -0,0 +1,10 @@ +columns: ['id', 'customer_id', 'received_at', 'report_json', 'health_status', 'cpu_percent', 'memory_percent', 'container_total', 'container_running', 'backup_last_snapshot', 'controller_version', 'controller_url'] +demo-hp 2026-09-17 12:54:43 controller 0.247.0 report timestamp 2026-09-17T12:54:42.272345455Z language='en' +demo-hp 2026-09-17 12:52:44 controller 0.247.0 report timestamp 2026-09-17T12:52:43.850613952Z language='hu' +demo-hp 2026-09-17 12:52:34 controller 0.246.0 report timestamp 2026-09-17T12:52:33.180041872Z NO language field +demo-felhom 2026-09-17 12:53:31 controller 0.246.0 report timestamp 2026-09-17T12:53:30.84214286Z NO language field +demo-felhom 2026-09-17 12:38:31 controller 0.246.0 report timestamp 2026-09-17T12:38:30.840427357Z NO language field +demo-felhom 2026-09-17 12:23:31 controller 0.246.0 report timestamp 2026-09-17T12:23:30.839751239Z NO language field +--- after switching back (12:55:19Z) +demo-hp 2026-09-17 12:55:22 controller 0.247.0 language='hu' +demo-hp 2026-09-17 12:54:43 controller 0.247.0 language='en' diff --git a/documentation/audits/i18n-2026-09-17/live/query-lang-en/apps_privatebin.html b/documentation/audits/i18n-2026-09-17/live/query-lang-en/apps_privatebin.html new file mode 100644 index 00000000..36245766 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/query-lang-en/apps_privatebin.html @@ -0,0 +1,636 @@ + + + + + + + + PrivateBin — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + +
+ +
+ +

Titkosított szöveg megosztás - a szerver nem látja a tartalmat

+ +
+ ~30M RAM + security + + Runs on Pi + +
+ +
+
+ + +
+ + + +
+ + + + +
+

Move to another storage

+

You can move this app’s data to another connected storage. The app stops briefly during the move, and the data is deleted from the old place only after the check and a successful restart.

+
+ + +
+ +
+ + + + +
+ +
+

What is it for?

+
    +
  • Érzékeny szövegek biztonságos megosztása
  • E2E titkosítás - a szerver nem fér hozzá a tartalomhoz
  • Beállítható lejárati idő (5 perc - 1 év, vagy soha)
  • Olvasás után automatikus törlés opció
  • Jelszóvédelem a még nagyobb biztonságért
  • +
+
+ + + +
+

First steps

+
    +
  1. Nyisd meg a paste.DOMAIN címet a böngészőben
  2. Írd be a szöveget és kattints a Küldés gombra
  3. Oszd meg a generált linket - a titkosítási kulcs az URL-ben van
  4. +
+
+ + + + + + + + + +
+

Documentation

+

Official documentation ↗

+
+ +
+ + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/query-lang-en/backups.html b/documentation/audits/i18n-2026-09-17/live/query-lang-en/backups.html new file mode 100644 index 00000000..b74659bc --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/query-lang-en/backups.html @@ -0,0 +1,759 @@ + + + + + + + + Backup — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + +
A rendszermentés jelenleg ugyanazon a lemezen van, mint a rendszer — így hibás fájlok ellen véd, lemezhiba ellen nem. Csatlakoztass egy második meghajtót a teljes védelemhez.
+ +
+

Ezt a meghajtót kijelölheted a rendszermentés helyéül — így egy lemezhiba után is vissza tudod állítani a rendszert.

+

NVME 1TB

+ +
+
+ + + + + + +
+

Storage overview

+
+
+ +
+
+ System (/) + 16.6 GB / 68.7 GB (24%) +
+
+
+
+
+ + +
+
+ NVME 1TB + 15.1 GB / 938 GB (2%) +
+
+
+
+
+ + + +
+
+
+ Database backups + 16 files +
+
+
+
+ + + +
+

System backup (full backup)

+

A regular backup of the whole server — apps, settings and databases together — that can bring back the entire device. The host agent makes and manages it.

+ +
+
+
✓
+
Last full backup +
2026-09-17 06:36 (8 hours ago) +
+
+
+
–
+
Helyi tároló (local)
+
+
+
Up to date
+
Next backup +
8 hours ago — within the backup window +
+
+
+
–
+
Restore checked +
Not run yet +
+
+
+ + + + + + + + + + + + + +
Helyi tároló (local) + + +
✓ Last successful backup: 2026-09-17 06:36 (8 hours ago) + Up to date
+ + + +
Biztonsági szerver – külön hardver (PBS) + + +
✓ Last successful backup: 2026-09-15 06:11 (2 days ago) + Up to date
+ + + +
+ + + +
+ + Your apps stop during the backup — usually for a few minutes, longer with more data. +
+
+ + +
+ + + +
+

Backup window

+

The backups run one after the other: database backup, local copy, remote backup, then the full system backup.

+
+ +
+ + +
+ +
+ +
+ + +
+ + +
+
✓
+
Data backup active
+
+ + + + +
+
✓
+
Remote system backup
on separate hardware (PBS)
+
+ + +
+ +
+ 16 +
+
Databases backed up
+ +
+
+ + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/query-lang-en/launcher.html b/documentation/audits/i18n-2026-09-17/live/query-lang-en/launcher.html new file mode 100644 index 00000000..3c52183b --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/query-lang-en/launcher.html @@ -0,0 +1,706 @@ + + + + + + + + Launcher — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + +
+ + + + + + A + + + + AdventureLog + + + + + + + + + B + + + + BentoPDF + + + + + + + + + B + + + + BookStack + + + + + + + + + C + + + + Calibre-Web Automated + + + + + + + + + D + + + + Docmost + + + + + + + + + F + + + + Filebrowser + + + + + + + + + K + + + + Kimai + + + + + + + + + O + + + + OpenGist + + + + + + + + + P + + + + Paperless-ngx + + + + + + + + + P + + + + PrivateBin + + + + + + + + + R + + + + RomM + + + + +
+ + + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/saved-en/apps_privatebin.html b/documentation/audits/i18n-2026-09-17/live/saved-en/apps_privatebin.html new file mode 100644 index 00000000..36245766 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/saved-en/apps_privatebin.html @@ -0,0 +1,636 @@ + + + + + + + + PrivateBin — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + +
+ +
+ +

Titkosított szöveg megosztás - a szerver nem látja a tartalmat

+ +
+ ~30M RAM + security + + Runs on Pi + +
+ +
+
+ + +
+ + + +
+ + + + +
+

Move to another storage

+

You can move this app’s data to another connected storage. The app stops briefly during the move, and the data is deleted from the old place only after the check and a successful restart.

+
+ + +
+ +
+ + + + +
+ +
+

What is it for?

+
    +
  • Érzékeny szövegek biztonságos megosztása
  • E2E titkosítás - a szerver nem fér hozzá a tartalomhoz
  • Beállítható lejárati idő (5 perc - 1 év, vagy soha)
  • Olvasás után automatikus törlés opció
  • Jelszóvédelem a még nagyobb biztonságért
  • +
+
+ + + +
+

First steps

+
    +
  1. Nyisd meg a paste.DOMAIN címet a böngészőben
  2. Írd be a szöveget és kattints a Küldés gombra
  3. Oszd meg a generált linket - a titkosítási kulcs az URL-ben van
  4. +
+
+ + + + + + + + + +
+

Documentation

+

Official documentation ↗

+
+ +
+ + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/saved-en/backups.html b/documentation/audits/i18n-2026-09-17/live/saved-en/backups.html new file mode 100644 index 00000000..b74659bc --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/saved-en/backups.html @@ -0,0 +1,759 @@ + + + + + + + + Backup — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + +
A rendszermentés jelenleg ugyanazon a lemezen van, mint a rendszer — így hibás fájlok ellen véd, lemezhiba ellen nem. Csatlakoztass egy második meghajtót a teljes védelemhez.
+ +
+

Ezt a meghajtót kijelölheted a rendszermentés helyéül — így egy lemezhiba után is vissza tudod állítani a rendszert.

+

NVME 1TB

+ +
+
+ + + + + + +
+

Storage overview

+
+
+ +
+
+ System (/) + 16.6 GB / 68.7 GB (24%) +
+
+
+
+
+ + +
+
+ NVME 1TB + 15.1 GB / 938 GB (2%) +
+
+
+
+
+ + + +
+
+
+ Database backups + 16 files +
+
+
+
+ + + +
+

System backup (full backup)

+

A regular backup of the whole server — apps, settings and databases together — that can bring back the entire device. The host agent makes and manages it.

+ +
+
+
✓
+
Last full backup +
2026-09-17 06:36 (8 hours ago) +
+
+
+
–
+
Helyi tároló (local)
+
+
+
Up to date
+
Next backup +
8 hours ago — within the backup window +
+
+
+
–
+
Restore checked +
Not run yet +
+
+
+ + + + + + + + + + + + + +
Helyi tároló (local) + + +
✓ Last successful backup: 2026-09-17 06:36 (8 hours ago) + Up to date
+ + + +
Biztonsági szerver – külön hardver (PBS) + + +
✓ Last successful backup: 2026-09-15 06:11 (2 days ago) + Up to date
+ + + +
+ + + +
+ + Your apps stop during the backup — usually for a few minutes, longer with more data. +
+
+ + +
+ + + +
+

Backup window

+

The backups run one after the other: database backup, local copy, remote backup, then the full system backup.

+
+ +
+ + +
+ +
+ +
+ + +
+ + +
+
✓
+
Data backup active
+
+ + + + +
+
✓
+
Remote system backup
on separate hardware (PBS)
+
+ + +
+ +
+ 16 +
+
Databases backed up
+ +
+
+ + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/live/saved-en/launcher.html b/documentation/audits/i18n-2026-09-17/live/saved-en/launcher.html new file mode 100644 index 00000000..3c52183b --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/live/saved-en/launcher.html @@ -0,0 +1,706 @@ + + + + + + + + Launcher — Felhom.eu + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + +
+ + + + + + A + + + + AdventureLog + + + + + + + + + B + + + + BentoPDF + + + + + + + + + B + + + + BookStack + + + + + + + + + C + + + + Calibre-Web Automated + + + + + + + + + D + + + + Docmost + + + + + + + + + F + + + + Filebrowser + + + + + + + + + K + + + + Kimai + + + + + + + + + O + + + + OpenGist + + + + + + + + + P + + + + Paperless-ngx + + + + + + + + + P + + + + PrivateBin + + + + + + + + + R + + + + RomM + + + + +
+ + + + + + + +
+ + + + diff --git a/documentation/audits/i18n-2026-09-17/redproofs/gate-decoys.txt b/documentation/audits/i18n-2026-09-17/redproofs/gate-decoys.txt new file mode 100644 index 00000000..a202a961 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/redproofs/gate-decoys.txt @@ -0,0 +1,21 @@ +decoys — felhom-controller + ok emoji sees templates at any depth + ok native-confirm sees templates at any depth + ok app-row-dedup sees templates at any depth + ok template-id sees templates at any depth + ok secret-markup sees templates at any depth + ok retrieval-promise sees templates at any depth + ok mojibake (CONTROL) sees templates at any depth + ok debug-routes/comment decoy rejected + ok app-row-dedup/comment decoy rejected + ok i18n/undefined-key decoy rejected + ok i18n/pleading decoy rejected + ok i18n/gap-grew decoy rejected + ok i18n/new-formal-form decoy rejected + ok emoji/bundle decoy rejected + ok native-confirm/bundle decoy rejected + ok retrieval-promise/bundle decoy rejected + ok secret-markup/bundle decoy rejected + ok golden-notice empty dir not counted as a bake + +all 18 controller decoys behaved — labels do not satisfy these gates diff --git a/documentation/audits/i18n-2026-09-17/redproofs/redproof-english.txt b/documentation/audits/i18n-2026-09-17/redproofs/redproof-english.txt new file mode 100644 index 00000000..5488bd81 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/redproofs/redproof-english.txt @@ -0,0 +1,6 @@ +=== RUN TestI18nEnglishPages + i18n_parity_test.go:367: backups_full: Hungarian template copy on the English page, line 111: "
  • Indítópult
  • " + i18n_parity_test.go:367: backups_empty: Hungarian template copy on the English page, line 111: "
  • Indítópult
  • " + i18n_parity_test.go:367: backups_degraded: Hungarian template copy on the English page, line 111: "
  • Indítópult
  • " + i18n_parity_test.go:367: backups_nobackup_yet: Hungarian template copy on the English page, line 111: "
  • Indítópult
  • " + i18n_parity_test.go:367: app_info_deployed: Hungarian template copy on the English page, line 111: "
  • Indítópult
  • " diff --git a/documentation/audits/i18n-2026-09-17/redproofs/redproof-parity.txt b/documentation/audits/i18n-2026-09-17/redproofs/redproof-parity.txt new file mode 100644 index 00000000..bc0e1381 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/redproofs/redproof-parity.txt @@ -0,0 +1,11 @@ +=== RUN TestI18nParity + i18n_parity_test.go:279: launcher_full: Hungarian page CHANGED at line 261 + fixture: " " + now: " " + i18n_parity_test.go:279: launcher_nopassword: Hungarian page CHANGED at line 241 + fixture: " " + now: " " +--- FAIL: TestI18nParity (0.07s) +FAIL +FAIL gitea.dooplex.hu/admin/felhom-controller/internal/web 0.078s +FAIL diff --git a/documentation/audits/i18n-2026-09-17/redproofs/redproofs.txt b/documentation/audits/i18n-2026-09-17/redproofs/redproofs.txt new file mode 100644 index 00000000..f87ee212 --- /dev/null +++ b/documentation/audits/i18n-2026-09-17/redproofs/redproofs.txt @@ -0,0 +1,36 @@ +### 1. remove addLanguageData from executeTemplate +1 +=== RUN TestLanguageSwitch_EndToEnd + i18n_wiring_test.go:205: ?lang=en must render English and show the switch + i18n_wiring_test.go:221: saved English: launcher lacks "Launcher — Felhom.eu" + i18n_wiring_test.go:221: saved English: launcher lacks "action=\"/settings/language\"" +--- FAIL: TestLanguageSwitch_EndToEnd (0.12s) +FAIL +### 2. quote in a JS-context English value +1 +=== RUN TestI18nJSContextValuesAreSafe + i18n_wiring_test.go:103: templates/launcher.html