Files
felhom.eu/website/CHANGELOG.md
T
admin eb1ae37095
gates / gates (push) Successful in 23s
ISO 1.29.0 source + an English download page (R-559 slice 4, source only)
THE IMAGE IS NOT BUILT AND NOT PUBLISHED BY THIS COMMIT. Publishing to
iso.felhom.eu is public and irreversible and its runbook requires a proof
install on BOTH menu entries plus the 16-criterion gate run against the exact
uploaded bytes. That is the operator's step. The download pages therefore still
name 1.28.0 - the image that is actually published - and a new site gate
refuses the two pages naming different files or hashes.

Three texts a person meets before any dashboard become bilingual: Hungarian
block first, byte for byte as before, then English, inside the same frame. The
pairing banner, the bound banner, /etc/issue (and the postinst's byte-coupled
copy), plus an English half on the GRUB entries.

The Hungarian is a GOLDEN, not a grep: test/golden/*.hu.txt were captured from
the script at 183727db9c before one English line existed, and the harness
asserts each banner's first N lines are exactly the golden. Red-proofed by one
changed byte, by an "a" planted in the English block, and by an over-wide line.

R-586, found on the way in: running the harness UNCHANGED at the base commit
failed two R-496 checks. The script paints with `>`, which truncates a FILE but
is a no-op on a console device; ISO 1.28.0's new bound banner (c033b3b) paints
straight after the pairing one and wiped it before the check read it. c033b3b
did not touch the harness, and nobody saw it because the harness is in no gate
and no CI run. Fixed with a FIFO; production code untouched. The harness being
ungated is still open.

The release gate's G16 required every Felhom string to be Hungarian and would
have STOPPED this publication. Operator ruling 1b of 2026-09-17 supersedes that
scope, so G16 is rewritten rather than waived: Hungarian FIRST, pinned by the
golden, each secret named once per language.

letoltes.html changes by four lines only. The English link is not in the nav -
the nav is a shared block site_gates.py pins across every page, and the gate
convicted the first attempt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-18 17:40:29 +02:00

119 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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; `<html lang="en">`, 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 `<style>` block and was dropped when `bed8675` ("D3 Part 2") migrated the page
onto the shared `assets/site.css`; `dd54e4c`, the commit that created `site.css`, has no
`body::before` at all. A porting omission, and nothing took its place. No asset was lost — it was
pure CSS (two stacked `linear-gradient`s), so there was nothing missing from the worktree to notice.
Restored, not redesigned: same 50px cells, same 1px lines, same 3% opacity, same `position:fixed` /
`z-index:-1` so it does not scroll. One deliberate difference — the accent is the v2 `--blue`
`#0083D8` instead of the retired legacy `#0088cc`, which `site_gates.py` bans. Scoped to
`body.page-index`, because index is the only page that ever had it.
`site.css` cache-bust bumped `?v=1` → `?v=2` on all seven pages (nginx caches 7 days). Verified live
on desktop and in a 376px viewport: grid renders, no horizontal overflow, mobile layout unchanged.
## 2026-07-18 — Pre-Facebook content refresh: capability-map alignment + „Zárt teszt" landing
The site's audience changes from zero-stakes to real Hungarian households arriving from a Facebook
post, mostly on phones. Every claim re-checked against
`documentation/architecture/00-capability-map.md`; overclaims cut, the last week's shipped
capabilities added. No redesign — the design language, nav, footer, and CSS are untouched.
- **Naming ruling applied — „Felhő Felügyelő" is gone (0 occurrences site-wide).** The brand is
**Felhom**; the customer-facing interface is the **vezérlőpult** (matching the controller login
page). 14 occurrences replaced across `index.html` + `technologiak.html`, incl. `<title>`,
meta description, keywords, og/twitter descriptions, and the JSON-LD `description`.
- **`index.html` — new „Mit tud a doboz ma?" section** (8 cards, every one map-traceable):
photos/documents/media, **Hálózati megosztás** (Windows Intéző + Mac Finder, map §E
PROVEN-LIVE 2026-07-18), two-tier automatic backup, **the recovery code only the customer
knows** (zero-knowledge wording, map §A escrow PROVEN-LIVE), 53 apps, remote monitoring +
automatic updates, LAN-works-when-the-internet-is-down, restore-when-something-breaks.
- **`index.html` — new „Zárt teszt" section** (the Facebook post's landing target): what being a
tester means, and the **stated limitations** — one shared household password for the vezérlőpult
(map §E multi-user = MISSING), **TV-re streamelés hamarosan** (map §E DLNA = MISSING), and an
explicit "you will find bugs, that's the point". CTA wires to the **existing, live**
contact-mailer as `/kapcsolat?tema=zart-teszt`; no new backend.
- **`kapcsolat.html`** — new „Zárt teszt — jelentkezem tesztelőnek" subject option + its label
mapping (mail subject `Jelentkezés — zárt teszt`), and a `?tema=` preselect that ignores
unknown values.
- **`og:image` was a 404 site-wide** — every page pointed at `/assets/og-image.png`, which did not
exist (only `.svg` did). A branded **1200×630** card is now generated from the existing logo and
brand tokens, plus `og:image:width/height/alt`. This was load-bearing for the Facebook post:
the link previously would have rendered with no image.
- **App count corrected 45+ → 53** (real catalog count: 53 `*.felhom.yml` templates) in
`index.html`, `technologiak.html`, and the four `alkalmazasok.html` head tags.
- **Overclaims cut:**
- The whole **Kubernetes/k3s section** in `technologiak.html` (+ its TOC entry and the
multi-node hardware tier) — no customer-facing capability-map row backs it, and it carried a
bare availability promise („a szolgáltatás nem állhat le") on a page now read by recruits.
- **Tailscale VPN** → **WireGuard VPN** (Tailscale is not what ships).
- The **RAID** card → an honest two-tier backup card; the „4-8 TB (RAID)" spec row → „4-8 TB".
(RAID has no map row; the shipped model is second-drive tier-2 + encrypted offsite.)
- **`gyik.html` multi-user answer** rewritten in both copies (JSON-LD **and** the visible
accordion — they must stay in sync): apps do have per-person accounts, the **vezérlőpult has
one shared household password**. Previously it read „Minden családtag saját fiókot kap".
- **`biztonsagimentes.html`** — „azonnal értesítést kapsz" softened (map §F health-degradation
e-mail is IMPLEMENTED, never live-fired), and a new **helyreállítási kód** block stating both
sides plainly: nobody else can read the remote backup, and without the code neither can we.
- Gates: `python scripts/site_gates.py` green (BOM, emoji=0, nav/footer identical, analytics,
no CDN, no legacy tokens, no `<style>`, cache-busted assets). Mobile verified by measurement at
380 px: `scrollWidth == clientWidth == 365` (no horizontal scroll), CTA 275×58.
## 2026-07-02 — TASK-D3: design system v2 re-skin (content-preserving)
All seven pages re-skinned to the v2 language (`documentation/design/design-system.md`); URLs,
copy, meta/SEO, analytics, and the contact form's functional markup unchanged.
- **One stylesheet:** the seven near-identical embedded `<style>` blocks (≈120 KB combined)
extracted into `assets/site.css?v=1` — vendored `@font-face`, the v2 `:root` tokens, a deduped
shared base, and per-page sections scoped by `page-<name>` body classes. Zero `<style>` blocks
remain.
- **Self-hosted fonts:** Plus Jakarta Sans + JetBrains Mono (variable woff2, latin+latin-ext,
copied byte-identical from felhom-controller) served from `/assets/fonts/` — the Google Fonts
CDN (a GDPR exposure for a data-sovereignty product) is gone, preconnect hints included.
- **Icons:** all 182 emoji replaced by a 70-symbol external Lucide sprite
(`/assets/icons.svg?v=1#i-name`): feature tiles as `.ico-tile` 48px bg-2 squares, heading icons
`.ico-lg`, inline `.ico`; the alkalmazasok "Open Source" green checkmark image → sprite check
(`.ico-yes`, blue). CSS-generated ✓/✗/★ content → currentColor mask marks / plain text.
- **Nav/footer normalized** across all seven pages (index's `#szolgaltatasok` →
`/#szolgaltatasok`); byte-identical after the active-marker strip.
- **Visual v2:** navy tokens, single 2px radius, no shadows/gradients/hover-lifts, two-tone
heading kept as solid `--blue-bright`, `prefers-reduced-motion` respected.
- **Gates:** `scripts/site_gates.py` (BOM ×7, emoji, nav/footer, analytics, no-CDN, banned
tokens, style-blocks, `?v=` cache-busting) — baseline 84 problems + 182 emoji → **all green**.
- kapcsolat: form fields/JS/endpoint byte-identical; live TESZT submission accepted
(contact-mailer `[OK] Email sent`, resend id logged).