report: M3 live - the changelog, the session report and the operator's screen
gates / gates (push) Failing after 3m58s

Records what shipped, the two operator decisions as answered, what the website and
the controller now share and how a change flows between them, and the five faults
that measurement caught before the switch rather than after.

head-before.json / head-after.json are kept as the evidence that the switch changed
no SEO-bearing tag: the only difference across 19 pages is the dash substitution
inside the two FAQ pages' JSON-LD.
This commit is contained in:
2026-10-11 16:00:57 +02:00
parent 6059505216
commit bd708b3593
6 changed files with 3187 additions and 3 deletions
+54 -1
View File
@@ -1,4 +1,57 @@
## 2026-10-11 (este) — „Ki áll mögötte" a kapcsolati oldalakra költözött
## 2026-10-11 (M3) — the whole site moves into the controller's shell
The operator's own direction, after three mockups were rejected: the **controller's frame** (left
sidebar, phone top bar, off-canvas drawer) around **the website's own content**. Switched in one
commit — never half old, half new. 20 pages: 12 Hungarian, 8 English.
- **`website/assets/shell.css`** — **117 rules copied VERBATIM** from
`felhom-controller/controller/internal/web/templates/style.css` @ `dcd89364a4`, plus **exactly one
adapted rule** that says so (`body.shell { display:flex; min-height:100vh }`, which lives in the
controller's base rather than in a component, scoped so a page without the shell is untouched).
The generator **names every rule it copies and refuses to write the file if one has disappeared
upstream** — which already caught two things: a selector that no longer exists, and
`prefers-reduced-motion` being split across **five** separate blocks, four of which a naive copy
would have lost. That is M1's failure, prevented.
- **`shell.css` loads after `site.css` deliberately.** Thirteen selectors exist in both with
different meanings. „Later wins" is **per property, not per rule**, so six declarations still
leaked through and are reset in `site.css`: `.nav-links` `display:flex`+`gap` (the sidebar rendered
as a horizontal row across the page), `.lang-globe-menu` `top`+`right`, `.page-header`
`padding`+`text-align`. Found by diffing declaration sets, not by looking — only one was visible.
- **The footer is kept**, carried verbatim into the bottom of the content column. Stripping the old
chrome had removed it from all 19 pages, taking with it the only route to the **Adatkezelési
tájékoztató and the Feltételek**, the operator's name and `info@felhom.eu`. Caught before the
switch.
- **The English home page is now a true twin** of the Hungarian one (operator's decision): every
string lifted verbatim from the live English page, except twelve faithful translations of sentences
the `/preview/` round introduced. 35.8 KB → 25.4 KB.
- **Em dashes: 326 replaced** with the Hungarian gondolatjel across 17 pages. The FAQ pages' JSON-LD
is swept with the same substitution so it still equals the visible answers (gate 17 green).
**The legal texts are byte-identical** — proven by a word-level diff with no substitution allowed.
- **`site.css`** gains the M3 page rules, the six leak resets, AA fixes for the copied
`.btn-primary` and `.nav-group-label`, and `overflow-wrap` for long checksums and URLs — the last
one repairing a **pre-existing** sideways scroll on `/letoltes` and `/adatkezeles` (609 px and
478 px at a 390 px viewport, measured on the live pages).
- **`website/preview/` deleted entirely** (the A, M1, M2 and M3 studies) with its `robots.txt` line.
`site.css?v=22` / `shell.css?v=22` everywhere.
- **`scripts/site_gates.py`**: gate 3 extended rather than duplicated — a `SHELL` set whose pages must
carry an **identical sidebar and footer**. `is_en()` makes the language gates path-aware.
`norm_block()` also normalises `is-open`/`aria-expanded`. Every change red-proofed, the loosening
one **both ways**: a one-character menu difference convicts, a state-only difference does not.
**What the head-tag diff caught, and why it was worth doing.** Head tags were captured on all 19
pages before the switch and compared after. The home page was about to ship carrying
**`noindex, nofollow`** from the preview, and had lost `meta keywords`, `meta author`, all seven
Open Graph tags, all four Twitter tags and the `LocalBusiness` JSON-LD — because its head was
hand-built while every other page carried its live one over. Nothing on the rendered page would have
shown it. After the fix the **only** head-tag difference anywhere is the dash substitution inside the
two FAQ pages' JSON-LD, verified by applying the same substitution to the „before" copy and getting
an exact match.
**Live read-back, all 20 pages:** 200, sidebar present, footer present, legal link present,
`?v=22` on both stylesheets. Home page: 12 requests, 282 KB, zero third-party hosts, `index, follow`,
canonical and JSON-LD intact, **0 em dashes**, 10 967 px → 4 340 px tall.
## 2026-10-11 (este) — „Ki áll mögötte" a kapcsolati oldalakra költözött
Operator's call after seeing the preview. **This one IS live**, on `/kapcsolat` and `/en/contact`;
the home page itself is still the old design.