4.9 KiB
REPORT — v0.127.1–.3: escrow wizard polish (CTA visibility, Hungarian preflight, typed-back highlight, manual hide toggle, live-code copy)
Date: 2026-07-13 · Version: controller v0.127.3 (from v0.127.0, baseline a5041da confirmed) · Presentation-only; MinAgent unchanged (0.88.0 for the wizard); agent/felhom.eu untouched. Commits 156e7d5 (v0.127.1) + 788f8e6 (v0.127.2) + 8eed73b (v0.127.3) on main. Source: four findings from Viktor's supervised wizard passes (drill + demo), plus his live follow-up on the v0.127.1 blur.
v0.127.2 (same evening): the auto-blur-on-focus was REVERSED on Viktor's live finding — the
code blurred exactly when the customer clicked into a verification input to type from the screen.
The code now stays visible; the "Elrejtés"/"Megjelenítés" toggle appears with the reveal and is
manual-only (kept for screen-share situations). Render test asserts no onfocus auto-blur remains.
v0.127.3 (same evening): the reveal warning now states EXPLICITLY that the displayed code is already the LIVE one (the supersede happens at upload, inside the ceremony job, before display): "Ez mostantól az élő helyreállítási kód — a korábbi kód érvényét vesztette. Mentse el most: a kód többé nem jeleníthető meg." Pre-generation cancel already existed (the "Mégsem" beside "Kód létrehozása"); the render test now pins it. The typed-back step KEPT (proof-of-capture friction + transcription-error catch — with the manual-only blur it verifies engagement, not paper accuracy; Viktor briefed, his call if he ever wants it dropped).
Files changed
controller/internal/web/templates/backups_remote.html— Part 1: the escrowed-state "Új helyreállítási kód készítése" CTA is a realbtn btn-sm btn-outlinesecondary button (outline, deliberately NOT primary — escrowed is healthy/available-not-urgent; the stale variant keeps its primary CTA). Hint line kept above it;{{if .EscrowAgentOK}}gate kept.controller/internal/web/templates/backups_escrow.html—- Part 2:
pfDetail()+PF_FAIL_DETAILSmap the agent's operator-English preflightdetailstrings to Hungarian per the spec table (OK rows: value-bearing details only — storage id, age path, "előkészítve"; boolean-OK rows: no detail; not-OK rows: Hungarian text + the raw agent detail in a mutedvar(--text-3)diagnostic span; unknown ids fall back to the raw detail — a failure is never blanked;staged_secretkeeps its informational dot). - Part 3: span-per-word code rendering (
createElement+textContent+createTextNodeONLY — R still never flows through innerHTML; comment documents why the spans keep the same no-parse-context guarantee); the two typed-back words highlightedvar(--warn)/600;verifyIdxnow chosen BEFORE rendering;finishWizard'stextContent=''verified to clear the child spans. - Part 4 (optional — implemented, trivially strikeable): first focus on either verification
input blurs the code (
filter: blur(6px), inline-style toggle — no style.css edit, no cache-bust needed) + abtn-ghost"Megjelenítés"/"Elrejtés" local toggle, so the typed-back exercises the WRITTEN copy. R stays in the JS closure throughout.
- Part 2:
controller/internal/web/escrow_wizard_test.go— render assertions: the btn-outline CTA markup on the escrowed card; the Hungarian not-staged + sudo-missing strings; the blur toggle label; and the three raw English literals ("DR tier applied", "hub upload target configured", "sudo grant listed") asserted ABSENT from the page source.CHANGELOG.md— v0.127.1 entry.
Tests + gates
go build ./... && go vet ./... && go test ./... — green (502 test funcs, no count change:
existing render test extended). All four UI gates green (template_id, emoji, native-confirm,
offbox-rename). §10 red-proofs: N/A — presentation-only, no correctness/security fix
(stated per the task). JS runtime behavior (span construction, blur toggle) is covered by code
review + the render-source assertions; the visual leg (steps 5–6 highlight + blur) awaits
Viktor's eyeball pass on his next login — no ceremony was run anywhere (§12: the demo and
drill boxes hold fresh real recovery codes; a run would supersede them).
Deployed
| Target | Verification |
|---|---|
| demo 9201 | gitea.dooplex.hu/admin/felhom-controller:0.127.3 Up (healthy) (0.127.1/.2 each verified healthy before it; controller_started events pushed) |
| drill guest (qm 300) | gitea.dooplex.hu/admin/felhom-controller:0.127.3 Up (healthy) |
Observations
- The wizard page embeds its Hungarian detail map in page JS — if the agent ever adds a seventh preflight item id, the fallback renders its raw detail (by design); add the Hungarian pair in the same commit that adds the id.
- The stale-card CTA remains
btn-primary(urgent) — only the healthy escrowed state was demoted to outline; the pending card's primary CTA is also unchanged.