v0.167.0: outlined logo + favicon (Part 4 follow-up to v0.166.0)
Viktor pushed the text-outlined logo.svg to felhom.eu main (be9edb4) — wordmark is now 17 real path glyphs. Swapped FelhomLogoSVG to it; stripped Inkscape's leftover empty <text/> shells + font-* style leftovers on the paths via lxml DOM pass (glyphs untouched, no text-to-path by CC), dropped editor namedview. Cleaned FelhomFaviconSVG vestigial <text>. Both constants now free of <text>/font-family; viewBoxes unchanged; palette + gradients preserved. TestLogoSVG_NoLiveText committed green.
This commit is contained in:
@@ -1,5 +1,29 @@
|
||||
## Changelog
|
||||
|
||||
### v0.167.0 — Outlined logo + favicon (Part 4, the v0.166.0 gated follow-up) (2026-07-24)
|
||||
|
||||
No agent coupling; MinAgent unchanged. Embedded-asset constants + one test only — no backend, no
|
||||
routes, no template/CSS behavior change.
|
||||
|
||||
Completes Part 4 that v0.166.0 deferred at the §3a gate. Viktor pushed the text-outlined
|
||||
`website/assets/logo.svg` to felhom.eu `main` (`be9edb4`): the wordmark is now **17 real `<path>`
|
||||
glyphs** (Inkscape Object→Path) instead of live `<text>` with `font-family:'Vremena Grotesk'`/`'M+ 2c'`.
|
||||
Under `<img>` secure static mode only locally-installed fonts resolve, so the old constants rendered
|
||||
the wordmark in a fallback font on every device without those fonts — now fixed.
|
||||
|
||||
- **`FelhomLogoSVG`** body replaced with the outlined master. Inkscape left behind **2 empty `<text/>`
|
||||
shells + font-* style leftovers on the paths** (inert, but they carried the font names); these were
|
||||
stripped via a DOM pass (lxml) — **glyphs untouched, no text-to-path conversion done by CC**. Also
|
||||
dropped the editor-only `<sodipodi:namedview>`. `viewBox` **unchanged** (`0 0 645.30703 408.36403`);
|
||||
full palette preserved (white glyphs `#ffffff`, blue `.eu` `#008ddf`, navy `#051343`, all 14
|
||||
gradients, the cloud/house/server/lock artwork).
|
||||
- **`FelhomFaviconSVG`** vestigial empty `<text>` nodes + their `font-family` removed (cloud icon only;
|
||||
`viewBox` unchanged `0 0 437.307 296.36403`, 11 paths).
|
||||
- Both constants now contain **zero `<text` and zero `font-family`**. Served at their existing paths by
|
||||
the unchanged handlers (the hub-synced-file-first fallback logic is untouched).
|
||||
- Test: `TestLogoSVG_NoLiveText` (both constants free of `<text`/`font-family`) — was written as the
|
||||
gated red-proof in v0.166.0 (FAILED against the old constants), now committed green.
|
||||
|
||||
### v0.166.0 — Mobile nav drawer + sidebar cleanup + versioned logo/favicon URLs (2026-07-24)
|
||||
|
||||
No agent coupling; MinAgent unchanged. Templates (layout/login/icons) + CSS + one login-handler data
|
||||
|
||||
+15
-1
@@ -7,7 +7,21 @@
|
||||
>
|
||||
> Ask Claude Code: "Please update CONTEXT.md with what we did today"
|
||||
|
||||
Last updated: 2026-07-24 (v0.166.0 — mobile nav drawer + sidebar cleanup + versioned logo/favicon URLs)
|
||||
Last updated: 2026-07-24 (v0.167.0 — outlined logo + favicon, the v0.166.0 Part-4 follow-up)
|
||||
|
||||
> **2026-07-24 — v0.167.0 (outlined logo + favicon — Part 4 unblocked).** Viktor pushed the
|
||||
> text-outlined `logo.svg` to felhom.eu `main` (`be9edb4`); the wordmark is now 17 real `<path>`
|
||||
> glyphs. `FelhomLogoSVG` swapped to it; Inkscape's leftover **empty `<text/>` shells + font-* leftovers
|
||||
> on the paths** were stripped via an lxml DOM pass (glyphs untouched — CC did NOT do text-to-path),
|
||||
> editor `<sodipodi:namedview>` dropped. `FelhomFaviconSVG` vestigial `<text>` removed. Both constants:
|
||||
> **0 `<text`, 0 `font-family`**; viewBoxes unchanged; palette + 14 gradients preserved. **Gotcha logged:
|
||||
> Inkscape "Object→Path" leaves empty `<text/>` shells AND copies `style="…font-family:…"` onto the
|
||||
> resulting `<path>`s — a search for `svg:text` misses them (elements are `<text>`, no prefix); grep
|
||||
> `<text` and `font-family`.** Also: `serveLogoHandler`/`serveFaviconHandler` serve a **hub-synced file
|
||||
> first** (`assetsSyncer.Resolve`) and fall back to the constant only if none is on disk — on 9201 the
|
||||
> constant is what's live (verified). Still open (separate follow-up): website + hub serve their own
|
||||
> non-outlined logo copies; login.html stylesheet link still unversioned.
|
||||
|
||||
|
||||
> **2026-07-24 — v0.166.0 (mobile nav = off-canvas drawer; sidebar cleanup; ?v= on logo/favicon).**
|
||||
> Mobile nav was broken: the ≤768px block predated the v0.146.0 accordion and flattened `.nav-links`
|
||||
|
||||
@@ -163,9 +163,25 @@ func TestLogin_CustomerNameKept(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// Group E — versioned asset URLs (Scenario E). The logo-constant no-live-text test ships WITH
|
||||
// Part 4 (the outlined-asset swap), which is gated on Viktor pushing the outlined master; it is
|
||||
// intentionally not part of this suite while the constants still carry live <text>.
|
||||
// Group E — logo constants carry NO live text (Scenario E). Under `<img>` secure static mode only
|
||||
// locally-installed fonts resolve, so a `font-family` in the SVG renders a fallback font everywhere;
|
||||
// the wordmark must be outlined paths. Shipped in v0.167.0 once the outlined master landed on
|
||||
// felhom.eu main and the vestigial empty text nodes were stripped.
|
||||
//
|
||||
// Red-proof (recorded 2026-07-24): run against the pre-v0.167.0 constants → FAILS, both constants
|
||||
// contained `<text` + `font-family`.
|
||||
func TestLogoSVG_NoLiveText(t *testing.T) {
|
||||
for name, s := range map[string]string{"FelhomLogoSVG": FelhomLogoSVG, "FelhomFaviconSVG": FelhomFaviconSVG} {
|
||||
if strings.Contains(s, "<text") {
|
||||
t.Errorf("%s contains a <text element — the wordmark must be outlined paths, not live text", name)
|
||||
}
|
||||
if strings.Contains(s, "font-family") {
|
||||
t.Errorf("%s contains font-family — it renders in a fallback font under <img> secure static mode", name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Group E — versioned asset URLs (Scenario E).
|
||||
//
|
||||
// Red-proof: run against the pre-edit layout.html → both assertions FAIL (the /static/ URLs lack
|
||||
// the ?v= cache-bust). Cloudflare edge-caches /static/* for 4h, so an unversioned logo/favicon keeps
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user