Files
felhom.eu/REPORT.md
T

169 lines
13 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.
# felhom.eu — task reports
> **Overwrite** this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in [hub/CHANGELOG.md](hub/CHANGELOG.md); the scripts history lives in [scripts/CHANGELOG.md](scripts/CHANGELOG.md).
## Website refresh before the Facebook tester-recruitment post — 2026-07-18
**Scope:** `website/` only · **Commits:** `be2fc50`, `d2fd935` (pushed to `main`, live via git-sync)
· **Source of truth for every claim:** `documentation/architecture/00-capability-map.md` (verified
2026-07-16, plus the 2026-07-18 N100 rehearsal rows).
---
### 1. Audit table — every factual claim, verdict, map row
Map references are section letters from the capability map. "—" = no map row exists, which is
itself the finding.
#### index.html
| # | Claim (before) | Verdict | Map row / evidence |
|---|---|---|---|
| 1 | „45+ alkalmazás" | **FIX → 53** | §B *Deploy an app from the catalog* PROVEN-LIVE; real count = 53 `*.felhom.yml` in `app-catalog-felhom.eu/templates/` |
| 2 | „Felhő Felügyelő" (tech tile) | **FIX → „Vezérlőpult"** | Naming ruling; controller login page + R-11 draft both say vezérlőpult |
| 3 | „Kubernetes / Üzleti szintű rendelkezésre állás" tile | **CUT** | — (no customer-facing k8s row; also a bare availability promise) |
| 4 | og:image → `/assets/og-image.png` | **FIX (was a 404)** | File never existed; only `.svg` did. Generated 1200×630 |
| 5 | og:title / og:description (generic pitch) | **FIX** | Rewritten to one honest map-traceable sentence |
| 6 | Hero CTA „Érdekel →" | **FIX** | Retargeted to `#zart-teszt` (the post's landing intent) |
| 7 | Fényképek / dokumentumok / média a saját gépeden | **ADD** | §E Phone photo backup PROVEN-LIVE (6D); §E Documents/OCR PROVEN-LIVE (CAMPAIGN-6C 4P-1) |
| 8 | Hálózati megosztás — Windows Intéző + Mac Finder | **ADD** | §E *Files from Windows Explorer / Mac Finder (SMB server)* **PROVEN-LIVE**; Explorer leg passed 2026-07-18 |
| 9 | Kétszintű automatikus mentés (helyi + titkosított távoli) | **ADD** | §C Tier-2 PROVEN-LIVE (CAMPAIGN-6E P-TIER2); §C Offsite restic PROVEN-LIVE (6D); shares ride both tiers (R-7b, ctrl 0.145.0) |
| 10 | Helyreállítási kód, amit csak az ügyfél ismer | **ADD** | §A *Escrow ceremony … operator zero-knowledge* **PROVEN-LIVE**; wizard first live firing 2026-07-18 |
| 11 | Távoli felügyelet + automatikus frissítés | **ADD** | §G Controller self-update PROVEN-LIVE (demo); §G Publish train floor lift proven on a fresh install (5 s, unattended); §F metrics/monitoring IMPLEMENTED |
| 12 | Internetkimaradáskor a LAN-on minden működik | **ADD (plain wording)** | §E *LAN access when internet is down* **IMPLEMENTED** — allowed as a feature per the governing rule. **Caveat in §5.** |
| 13 | Visszaállítás, ha baj van | **ADD** | §C Offsite restore PROVEN-LIVE (6D); §C Guest-loss DR PBS restore PROVEN-LIVE (CAMPAIGN-2 T-P9) |
| 14 | „Zárt teszt" section + limitations + CTA | **ADD** | See §2 |
#### technologiak.html
| # | Claim (before) | Verdict | Map row |
|---|---|---|---|
| 15 | „Felhő Felügyelő" ×14 (title, meta desc, keywords, og+twitter desc, JSON-LD, TOC, h2, h3, body, stack layer, hedge ×2) | **FIX → vezérlőpult** | Naming ruling |
| 16 | „45+ app telepíthető" | **FIX → 53** | §B |
| 17 | **Whole Kubernetes section** (h2, „Mi az a Kubernetes?", „Mikor érdemes", k3s vs full-k8s cards) + TOC entry + multi-node hardware tier | **CUT** | — No customer-facing k8s/k3s row exists. k3s is *hub* (operator) infra, not the customer box. Also carried „a szolgáltatás nem állhat le" = an availability promise the task forbids |
| 18 | „Tailscale VPN biztonságos távoli elérés" | **FIX → WireGuard** | §E *WireGuard base infra always-on* IMPLEMENTED; §E remote access = Cloudflare Tunnel + Traefik PROVEN-LIVE. Tailscale is not what ships |
| 19 | „RAID adatvédelem" card | **FIX → kétszintű mentés card** | — No RAID row. Shipped model is §C tier-2 second drive + encrypted offsite. Kept the „több lemez ≠ mentés" education |
| 20 | Spec row „4-8 TB (RAID)" | **FIX → „4-8 TB"** | — |
| 21 | „Melyiket válaszd?" referencing the removed multi-node fürt | **FIX** | Consistency with #17 |
| 22 | Hardware price ranges (80k600k Ft) | **KEEP** | Hardware cost guidance, not a service price or product claim; no map conflict. Flagged in §5 |
| 23 | Docker / Proxmox / reverse proxy / Traefik / UFW | **KEEP** | §E Remote access PROVEN-LIVE; Proxmox is the platform per `proxmox-platform.md` |
#### gyik.html
| # | Claim (before) | Verdict | Map row |
|---|---|---|---|
| 24 | „Minden családtag saját fiókot kap, saját bejelentkezéssel" | **FIX (both JSON-LD + visible copies)** | §E *Multiple household users / per-person accounts* = **MISSING** (R-15). Now: apps do have per-person accounts; the **vezérlőpult has one shared household password** |
| 25 | „Nagyobb rendszereknél RAID konfiguráció **is alkalmazható**" | **KEEP** | Already conditional/on-request; not presented as a shipped product capability |
| 26 | „Jellyfin/Plex — saját Netflix" | **KEEP** | §B catalog deploy PROVEN-LIVE; browser/mobile playback is the app's own function. TV casting handled honestly in the tester block (#14) |
| 27 | Remote access, 3-2-1 backups, updates, power-on-after-outage | **KEEP** | §E, §C, §G rows all IMPLEMENTED or PROVEN-LIVE |
#### biztonsagimentes.html
| # | Claim (before) | Verdict | Map row |
|---|---|---|---|
| 28 | „…**azonnal** értesítést kapsz, és mi is" | **FIX** | §F *Health-degradation email* = **IMPLEMENTED**, and the map states this trigger "has never fired an email live in any doc". Softened, plus a line that the closed test is partly to harden this |
| 29 | Helyreállítási kód / zero-knowledge | **ADD** | §A escrow PROVEN-LIVE. States both sides: nobody else can read it, and without the code neither can we |
| 30 | „az egész rendszered … egy új gépre is visszaállítható" | **KEEP** | §C Guest-loss DR PROVEN-LIVE (CAMPAIGN-2 T-P9-DESTROY-RESTORE) |
| 31 | 3-2-1 rule, incremental, scheduled | **KEEP** | §C nightly dumps + tier-2 + offsite, all PROVEN-LIVE |
#### alkalmazasok.html / kapcsolat.html
| # | Claim (before) | Verdict | Map row |
|---|---|---|---|
| 32 | „45+" ×4 (title, meta desc, og:title, twitter:title) | **FIX → 53** | §B. Page renders 49 cards; catalog holds 53 templates |
| 33 | Contact form → `POST /api/contact` with a stale "TODO: never wired" comment | **KEEP — verified LIVE** | Probed this session: `200 {"message":"Üzeneted sikeresen elküldtük!…"}`. Backend is `manifests/contact-mailer.yaml`. No new backend built |
| 34 | Subject options | **ADD** | New „Zárt teszt — jelentkezem tesztelőnek" → mail subject `Jelentkezés — zárt teszt` |
---
### 2. The „Zárt teszt" section (the post's landing target)
Three cards + CTA:
- **Valódi használat** — the box stays with them, real data, we help with install and migration.
- **Visszajelzés** — what we want back; "I couldn't find this button" is the most valuable report.
- **Ismert korlátok** — stated plainly: **one shared household password** for the vezérlőpult
(§E multi-user MISSING, R-15); **TV-re streamelés hamarosan** (§E DLNA **MISSING**, R-6/R-8);
and "this is a test, expect to find bugs — that's the point".
**CTA wiring:** the audit found the existing contact-mailer live, so per the task the CTA reuses it
`/kapcsolat?tema=zart-teszt`, which preselects the new subject option (unknown `?tema=` values are
ignored with a console warning). **No mailto fallback needed, no new backend.**
---
### 3. Files changed
| File | Change |
|---|---|
| `website/index.html` | meta desc, og/twitter block (+width/height/alt), hero CTA, **new „Mit tud a doboz ma?" (8 cards)**, **new „Zárt teszt" section**, 45+→53, 2 tiles retitled |
| `website/technologiak.html` | 14× naming fix, 45+→53, **Kubernetes section + TOC + multi-node tier CUT**, Tailscale→WireGuard, RAID card→two-tier backup, spec row |
| `website/gyik.html` | multi-user answer rewritten in **both** the JSON-LD and the visible accordion |
| `website/biztonsagimentes.html` | new recovery-code block; notification overclaim softened |
| `website/alkalmazasok.html` | 45+→53 ×4 (head only) |
| `website/kapcsolat.html` | new subject option + label mapping + `?tema=` preselect |
| `website/assets/og-image.png` | **NEW** — branded 1200×630 card, generated from the existing logo + v2 tokens via headless Chrome (real brand font, no external assets) |
| `website/CHANGELOG.md` | entry on top |
**No CSS, nav, footer, or design changes.** All new markup reuses existing classes
(`.why-grid`, `.why-card`, `.apps-cta`, `.cta-button`) and the existing icon sprite.
---
### 4. Deploy verification (fetched from the live site)
- Commits `be2fc50` + `d2fd935` pushed to `main`; git-sync deployed in ~20 s and ~45 s.
- **og tags live on `/`** — `og:title`, `og:description` (honest one-liner), `og:image`,
`og:image:width/height/alt`, `og:locale hu_HU`, `og:site_name`, `twitter:card
summary_large_image`, `twitter:title/description/image`. All verified by `curl`.
- **`og:image` no longer 404s** — `HTTP=200 content-type=image/png bytes=167598`, PNG signature
valid, **dimensions 1200×630** confirmed from the live bytes.
- **Site-wide sweep across all 6 public pages:** `Felhő Felügyelő = 0`, `k3s|kubernetes = 0`,
`45+ = 0`, og-image `200`.
- New sections live: `id="mit-tud"`, `id="zart-teszt"`, `/kapcsolat?tema=zart-teszt`,
`<strong>53</strong>`, „Hálózati megosztás", „TV-re streamelés hamarosan".
- `/kapcsolat` serves `value="zart-teszt">Zárt teszt — jelentkezem tesztelőnek<`.
- **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 pass — measured, not eyeballed.** At a 380 px viewport:
`documentElement.scrollWidth == clientWidth == 365`**no horizontal scroll**. Cards 317 px,
CTA **275×58** (well above the 44 px tap target), hero h1 40 px, body 16 px, single column.
*Note:* headless screenshots at `--window-size=380` looked clipped, but that is a headless
rendering artifact — the DOM measurement (and the identical artifact on the pre-edit baseline)
disproves it. The only elements extending past 380 px are the off-canvas `.nav-links` menu, by
design.
> **Zero „Felhő Felügyelő" occurrences remain** — confirmed both in the working tree (all 7 HTML
> files, including the non-public draft) and on the live site (all 6 public pages).
---
### 5. Things that need a ruling (not fixed)
1. **Naming ruling was applied as the default, per the task** — the surface is „vezérlőpult",
the brand is Felhom. One line vetoes it.
2. **„Internetkimaradáskor is működik" is the softest claim on the new page.** §E rates it
**IMPLEMENTED**, and the map explicitly notes it was *"never drilled as a customer experience"*
(R-19). It is allowed as a feature by the governing rule, but it is the one card on the landing
page with no live customer-facing evidence behind it. If R-19 stays undrilled before the post
goes out, consider cutting that card — it is one `<div>`.
3. **Hardware price ranges (80k600k Ft) on `/technologiak` were left in place.** The task said not
to *add* pricing; these predate it and are hardware cost guidance, not a service price. But a
recruit arriving from "volunteer tester" messaging then hitting price tables is a tonal
mismatch — worth a ruling.
4. **Foreign WIP in the shared worktree — I did not touch it.** `website/assets/logo.svg`,
`og-image.svg`, `og-image_wide.svg` were already modified and `og-image_wide.png` untracked when
I started. Staged only my own paths (per the never-`git add -A` rule); those four remain
uncommitted. **Someone appears to be working on OG imagery in parallel — reconcile before it
collides with the `og-image.png` this task shipped.**
5. **The R-11 one-pager does not exist yet** (ROADMAP status: *idea*). The task referenced its
„Egy mondat a bizalomról" wording; since there was nothing to reuse, the trust copy was sourced
from the two places that *are* ruled: the shipped escrow wizard template (`backups_escrow.html`)
and `RUNBOOK-onboarding-draft-v3.md` §C2. If the one-pager later lands with different wording,
align the site to it.
6. **I sent one real test message through the live contact form** (`name=Teszt`, `message=probe`)
to confirm the mailer was actually wired before building the CTA on top of it. It will be in the
info@felhom.eu inbox — safe to delete.
7. **`gyik.html` stores every answer twice** (JSON-LD `FAQPage` + visible accordion) and the two had
already drifted (the payback-cost answer differs between copies). The multi-user fix was kept in
sync across both; the pre-existing drift elsewhere is unfixed and is a standing trap.