## 2026-10-08 (evening) — every app logo white; five logo sets renamed to the catalog's names - **Seven coloured logos made white like the other 49** (operator request): Mealie (one fill → white), Homebox (white line drawing), Dawarich, Komga, Radicale, Recipe Importer (an in-file `feColorMatrix` filter: coloured and dark parts white, white parts see-through; Dawarich keeps only its route, Recipe Importer keeps the white cloud), SparkyFitness (PNG, same rule). Checked rendered in headless Chrome against the white logos. These files are also the dashboard's logos (the controller and hub builds copy `*-logo.*` from here). - **Renamed to the catalog slug** (the dashboard asks for `-logo.svg` / `-screenshot-N.webp`, so these five showed the grey placeholder and no pictures there): `crafty` → `crafty-controller`, `grampsweb` → `gramps-web`, `homeassistant` → `home-assistant`, `plantit` → `plant-it`, `uptimekuma` → `uptime-kuma` (24 files, `git mv`); 40 references each in `alkalmazasok.html` and `en/apps.html` (paths and `data-gallery` set names). ## 2026-10-08 (late afternoon) — one picture viewer for the whole site - **`assets/gallery.js`** — the viewer that lived twice inline on the two apps pages is one shared file now (`defer`, `?v=2` — v2 keeps focus inside the viewer when the last „next" turns off), its markup built by the script. The dashboard pictures (home and technology, both languages) open in it too, as one set: Launcher → Apps → an app → Backups. - **A set is declared, not guessed:** every picture is a real ``; an app card's further pictures are hidden links in the card. The old probing for `-screenshot-N.webp` files is gone (no request for a picture that is not in the page). JavaScript off: the link opens the picture, as before. - **New: a click or tap on the big picture closes the viewer** (the close button, Esc and a click beside it still do); a swipe changes the picture and does not close. Labels follow ``; focus goes to the viewer and back to the clicked picture; the page does not scroll behind it. - `site.css`: the `.lightbox-…` rules are no longer scoped to the apps page; `?v=4` → `?v=5` on all sixteen pages. - Gate 20 (`scripts/CHANGELOG.md`). ## 2026-10-08 (afternoon) — the dashboard, shown - **A new section after „Mit tud a doboz ma?" / „What the box does today"**: „Így néz ki a vezérlőpult" / „What the Dashboard looks like" — four real screenshots (Launcher, Apps, an app's page, Backup → Apps), each with a one-line caption; the technology page's dashboard card gets the Apps and Backup pictures. Hungarian pages show the Hungarian dashboard, English pages the English one. - Taken on demo-hp's household guest (controller 0.303.0, no warnings, last night's backups OK); 1440 × 900 WebP, 31–83 KB each; `loading="lazy"`, `width`/`height` set, each links to its full-size picture (no script). - `site.css`: `.dash-grid` / `.dash-shot` (two per row, one below 700 px); `?v=3` → `?v=4` on all sixteen pages. - Gate 19: a page may only show dashboard pictures in its own language (decoy seen failing first). - Evidence, captions-to-capability rows and the privacy scan: `documentation/audits/website-dashboard-2026-10-08/`. ## 2026-10-08 — the FAQ's GDPR answer tells the truth about where copies and traffic go (R-900; operator approved the text in chat) - `gyik.html` and `en/faq.html`, the GDPR answer, both the visible text and its structured-data copy: the line „az adataid a saját infrastruktúrádon vannak — nem harmadik félnél" / „not with a third party" is replaced. It now says the data lives on the household's own box; backup copies are encrypted on the box before they leave and stored at Hetzner in the EU (Germany), where the provider cannot read them; remote access goes through Cloudflare, which could technically see that traffic; small businesses are pointed to the privacy notice (not published yet, so no link). The „not lawyers" line stays. Searched the rest of the site (ASCII fragments, positive control „Hetzner" = 2 per page): no other page makes the claim. ## 2026-10-08 (later) — the language switch becomes a globe, like the dashboard's - The text link in every page's nav („English" / „Magyar") is replaced by a **globe** (`i-globe` from the sprite): a `
` whose list names each language in its own language — Magyar, English, in that order on every page. The page's own language is marked (bold, a blue rule, `aria-current="true"`); the other item goes to the twin page. `aria-label`/`title` „Nyelv" / „Language". Works with JavaScript off; no script added (the controller adds none). - Phone: inside the opened menu the globe is the last item and its list opens in place. - `site.css`: the globe's rules (desktop and the ≤900 px menu); `?v=2` → `?v=3` on all sixteen pages. There was no `.lang-switch` rule to retire — the text switch was unstyled. - `404.html` and the hidden prices page carry the globe too (their foreign item points at `/en/`): the shared nav must compare equal across the Hungarian set, so they keep what every page carries. - Gates: the globe replaces `SWITCH_RE` in gates 3 and 13 (`scripts/CHANGELOG.md`). ## 2026-10-08 — the website catches up with the product: true numbers, the missing apps, an English twin of every page The last content refresh was 2026-07-18. Every claim on the eight public Hungarian pages was checked again against `documentation/architecture/00-capability-map.md` (and `07`, `09`, `10`, the catalog, the licence read) — the table is `documentation/audits/website-refresh-2026-10-08/claims.md`. No redesign; the July tone and layout stay. - **One app count, measured: 56.** The catalog has 58 templates; `plant-it` (abandoned) and `wger` (hidden) are not offered to a household (`visibleCatalogStacks`). „53" and „több mint 45" are gone from every page, title, meta tag and JSON-LD (`numberOfItems` read 45). - **„100% nyílt forráskódú" was false.** The licence read (`audits/licences-2026-10-02/TABLE.md`): Plex and Emby are proprietary; n8n, Outline, Tandoor and SparkyFitness carry restricted licences; Recipe Importer is Felhom's own. Now „szinte mind"; each exception carries its own badge (*Zárt forráskód* / *Korlátozott licenc* / *Felhom saját*); the stat reads 49 open source. - **The apps page shows what a household can install.** Plant-it and wger cards cut; ten cards added (Dawarich, Docmost, Grimmory, Homebox, Karakeep, Mealie, MeTube, Radicale, Recipe Importer, SparkyFitness), Hungarian from the catalog's own text. FileBrowser stays, badged *Beépített* (it is on every box, not in the catalog). Calibre-web → Calibre-Web Automated (the image the catalog ships). Twelve logos pointed at a missing `.svg` and fell back to `.png` through an `onerror` — they point at the `.png` now. - **Claims cut or softened** (no capability row): firewall/Fail2ban/geo-blocking/WireGuard-for-households, RAID, „pillanatkép minden változtatás előtt" (the update path takes a backup and undoes itself — that is now said), „egy új gépre visszaállítható", the „önálló modell", „bármilyen nyílt forráskódú alkalmazás telepíthető", household VPN, „soha nem vész el" ×4, the off-site „havi pár száz forint" (the operator's own price is per 100 GB), „TV-re streamelés hamarosan" (now „még nincs"). - **Added, each on a PROVEN-LIVE row:** backups on three levels (on the box, a second drive, encrypted off-site); careful app updates (tested versions only, a backup first, the box undoes a failed update); the dashboard in Hungarian or English; OS security updates (the kernel lane is not claimed). - **`technologiak.html` showed a file-dump footer** („Summary: 13 files included, 218 skipped") under `` — removed; a gate now refuses text after ``. - **`404.html`** — nginx's `error_page 404` pointed at a page that did not exist. Hungarian first, one English line, a link home; `noindex`. - **The English twin of every public page** (operator ruling 2026-10-08; choice B — public at once): `/en/`, `/en/apps`, `/en/technology`, `/en/backups`, `/en/faq`, `/en/contact`, and `/en/download` moved onto the new English nav and footer. `hreflang` hu/en/x-default both ways, `canonical` to itself, `lang="en"`, English JSON-LD (the FAQ's JSON-LD is now rebuilt from its visible answers on both pages — the Hungarian one had drifted from them), an English `og-image-en.png` (the card carries Hungarian text). The English footer says Felhom serves households in Hungary. The contact form posts to the same `/api/contact` with English subject labels marked „(EN)"; `?tema=` takes the same values. - **The language switch** — one nav item on every page, „English" / „Magyar", pointing at the twin; it replaces the header link R-559 put on the two download pages. No redirect, no cookie. - **`sitemap.xml`** lists both languages with `xhtml:link` alternates. - Gates: `scripts/site_gates.py` gates 3 and 13–18, eleven new decoys (see `scripts/CHANGELOG.md`). **Published:** push to `main`, git-sync. No `site.css` or `icons.svg` change, so no cache-bust bump. ## 2026-09-18 — an English download page (R-559) - **`website/en/download.html`** — the English twin of `letoltes.html`. Same installer, same checksum, same structure; ``, its own English nav and footer, `hreflang` alternates both ways (`x-default` points at the Hungarian), and an entry in `sitemap.xml`. - **`letoltes.html` changed by FOUR lines and nothing else**: three `hreflang` alternates and one `English` link in the page header. The link is deliberately **not** in the nav — the nav is a shared block that `site_gates.py` pins across every page, and the gate convicted the first attempt, which is how the link found its right home. - **The rest of the marketing site stays Hungarian** (operator ruling 1b, 2026-09-17). - **New gate 12: the two download pages must name the SAME installer file and the SAME checksum.** Publishing an ISO now means editing a filename, a size and a 64-character hash on two pages; update one and forget the other and an English reader checks a new image against an old hash, fails, and is told by the page itself not to use the file. Red-proofed both ways. - `en/download.html` is registered in `PAGES` and in the new `EN_PAGES` set, which exempts it from the Hungarian nav/footer comparison and from nothing else. **Published:** the site's normal path — push to `main`, git-sync picks it up in ~1–2 min. No `site.css` change, so no cache-bust bump was needed. # website/ changelog (newest on top) ## 2026-09-15 — New page: /letoltes (the installer download) The volunteer guide sends people to `felhom.eu/letoltes`; the page did not exist. It now names installer **1.27.1**, its size and SHA-256, how to check the sum on Linux/Mac and Windows, and — first — the disk warning: the installer erases the disk you choose, never picks one, unplug the backup drive, call the operator if unsure. `noindex` (it is for people holding the guide). Same skeleton as the other pages, no nav entry; added to `sitemap.xml` and to `scripts/site_gates.py` PAGES; site gate OK. Published together with the ISO (round trip verified first), so the link never pointed at a missing file. ## 2026-07-19 — Restored: the index grid background The subtle grid behind the hero was **not** removed on purpose. It lived as a fixed `body::before` in `index.html`'s inline `