docs: CHANGELOG v0.96.0 + REPORT (TASK-D0) + CONTEXT + README design-system section
This commit is contained in:
@@ -1,5 +1,49 @@
|
||||
## Changelog
|
||||
|
||||
### v0.96.0 — TASK-D0: design system v2 re-skin (appearance only) (2026-07-02)
|
||||
|
||||
Full customer-UI re-skin to the approved Felhom design system v2 — navy token palette, exception-based
|
||||
status color, vendored fonts/icons, flat metadata. **Appearance only:** no route/handler/IA changes;
|
||||
every page keeps its URL, sections, forms and behavior. Canonical reference:
|
||||
`felhom.eu/documentation/design/design-system.md`. Four commits (b073cc4, 5dc277f, f100cef, 7df061c)
|
||||
+ a bug-fix (4906524).
|
||||
|
||||
- **Vendored assets (`internal/web/static/fonts/`, `templates/icons.html`, `embed.go`, `server.go`):**
|
||||
Plus Jakarta Sans + JetBrains Mono as variable woff2 (latin + latin-ext — ő/ű), embedded and served
|
||||
from `/static/fonts/` (font/woff2, immutable cache); Google Fonts `@import` removed (CDN silently
|
||||
broke offline nodes). Vendored 30-icon Lucide sprite included at top of `<body>`; all emoji replaced
|
||||
by sprite icons or plain text (templates AND JS-built strings).
|
||||
- **Setup CSS fix (`internal/setup/handlers.go`):** `handleCSS` served a dataDir-derived filesystem
|
||||
path that never exists in the container — production setup mode silently fell back to `minimalCSS`.
|
||||
Now serves the embedded `web.StyleCSS()` (new accessor); minimalCSS only if the embedded read errors
|
||||
(logged). `minimalCSS` retokened to v2.
|
||||
- **`templates/style.css` (rewritten in place):** v2 `:root` tokens; single 2px radius; every
|
||||
`box-shadow` + the bg grid overlay deleted; new components — `.meter` (3px hairline track, blue
|
||||
nominal fill, neutral 70/85 ticks, warn/crit `.meter-flag` „Fogyóban a hely" / „Kritikusan kevés
|
||||
hely"), `.tag` (square state chip + dot, pulse on progress, reduced-motion respected), `.metarow`,
|
||||
`.panel`/`.list`/`.section-h`, boxless `.stats`, buttons (danger = crit outline until confirm),
|
||||
`:focus-visible` outlines.
|
||||
- **funcmap (`internal/web/funcmap.go`):** `stateColor` → `run/progress/warn/neutral/off`
|
||||
(**stopped/exited is neutral, NOT red** — operator-approved exception-color change; restarting =
|
||||
warn); `usageColor`/`tempColor` → `nominal/warn/crit` (thresholds unchanged); `stateLabel`
|
||||
Hungarian copy untouched (byte-identity guarded by test). New `timeAgoStr` (see fix below).
|
||||
- **All 19 web templates + setup templates:** bars → meters (template + JS-generated markup),
|
||||
badges/pills → tags, informational pills → metarows with icons, legacy `var(--*)` names in inline
|
||||
styles/JS renamed to v2 tokens, monitoring Chart.js palette (cpu `#2EA8F5`, memory `#8E7CE8`, temp
|
||||
`#E0A93E`, load `#5EC4B6`; v2 tooltip/grid/tick literals), deploy 3-step progress → sprite icons,
|
||||
catchall page (standalone) fully retokened with inline SVGs, login two-tone H1.
|
||||
- **fix(backups) 4906524:** `OffboxTarget.LastRun` is an RFC3339 *string*; backups.html passed it to
|
||||
`timeAgo` (expects `time.Time`) → GET /backups 500'd on any node where an off-box backup had ever
|
||||
run. Pre-existing since v0.93.0, exposed by the D0 click-through; fixed with `timeAgoStr`.
|
||||
- **Tests (+7):** §8 truth tables for stateColor/usageColor/tempColor + stateLabel guard (red-proven
|
||||
vs the old funcmap), font route + `StyleCSS()` accessor, setup embedded-CSS (Scenario E, red-proven
|
||||
vs the old handler). Grep gate: 34 banned patterns (old hexes, 999px, box-shadow, CDN import,
|
||||
legacy class names, emoji) at **zero** in `internal/{web,setup}` (baseline: 143 hits).
|
||||
- Live-validated on guest 9201 via claude-in-chrome: full click-through, no Google Fonts requests,
|
||||
`document.fonts.check` true, ő/ű render in PJS latin-ext, dashboard Scenario-A assertions
|
||||
(0 green fills, 0 shadows, 0 radii >2px) DOM-verified. NOT live-validated: setup wizard rendering
|
||||
(unit-tested only), warn/crit meter states on real hardware (demo node healthy; unit-tested).
|
||||
|
||||
### v0.95.0 — enrollment wizards use the raw-device scan `/disks/candidates` (Impl-2b) (2026-07-01)
|
||||
|
||||
Final drive-enrollment piece: both enrollment wizards now source candidates from the agent's Impl-2a
|
||||
|
||||
Reference in New Issue
Block a user