13af252907
R-38 flips to SHIPPED with the live-canary evidence. Two new items registered from tonight's work: R-45 (unified async-job feedback — five one-off progress surfaces now exist and agree on nothing; the two lessons any framework must encode are "probe the terminal state, never infer it" and "a source reporting nothing is normal, not broken") and R-46 (verification copies are now visible but still cannot be browsed and never expire — the invisible-result gap and the disk-lifecycle gap, designed together because they are the same object). Pre-invite checklist gains the golden note: build-golden v2.1.0 makes goldens >= 0.147.x carry all four infra images; no rebuild for this alone. REPORT-<topic>.md per the parallel-session rule — another session is writing in this clone tonight, so the shared REPORT.md is left alone. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE
90 lines
6.8 KiB
Markdown
90 lines
6.8 KiB
Markdown
# website/ changelog (newest on top)
|
||
|
||
## 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).
|