Skip to content

fix(web): restore favicon, header logo, and PWA manifest dropped by the cutover#820

Merged
MrCoder merged 3 commits into
masterfrom
fix/favicon-and-logo
Jun 18, 2026
Merged

fix(web): restore favicon, header logo, and PWA manifest dropped by the cutover#820
MrCoder merged 3 commits into
masterfrom
fix/favicon-and-logo

Conversation

@MrCoder

@MrCoder MrCoder commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #819. The M05 cutover (hosting.publicweb/dist) dropped the app's icon/brand assets that the legacy app/ build shipped. This restores them — all verified 200 on the static build:

  • Favicon — the rewrite had no <link rel="icon"> at all, so browsers requested /favicon.ico (404) and showed an empty tab icon. Adds the canonical favicon-128x128.png + icon links (cherry-pick 2295c1c).
  • Header logo — hub + editor headers showed a placeholder two-participant glyph instead of the official ZenUML logo. Adds a shared BrandLogo component and wires it into AppMenu + HomeView (cherry-pick 1b02156, HomeView import re-resolved onto master).
  • PWA manifest + icons — the legacy app served only the extension MV3 manifest (no start_url/display/theme_color → never truly installable). This adds a real web app manifest (manifest.webmanifest) + 192/512/maskable PNG icons and an SVG icon, all rendered from the BrandLogo artwork, plus theme-color.

How

  • Favicon/logo: cherry-picked from rewrite/web-foundation (the two commits never reached master).
  • Icons: rendered from BrandLogo's inline SVG via rsvg-convert (vector → crisp 192/512). SVG sources checked in (web/public/zenuml-logo*.svg).
  • Manifest authored for the rewrite (name, short_name, start_url /, display standalone, theme #2e94d4).

Test plan

  • pnpm -C web build → favicon, manifest.webmanifest, icon-192/512, icon-maskable-512, zenuml-logo.svg all emitted to dist; index.html carries the icon + manifest links.
  • npx playwright test production-build --project=chromium5/5 green (new test asserts the favicon link, the manifest is valid JSON, has 192+512 PNGs, and every declared icon resolves 200).
  • pnpm -C web typecheck → clean.
  • Legacy root build unaffected (no src/ changes).

Out of scope (not requested)

  • Service worker / offline install prompt (manifest alone gives "Add to Home Screen" metadata, not the rich install prompt).
  • /ZenUML_Sequence_Diagram_addon_help.html (still 404; no external link found).

Files

  • web/index.html, web/public/manifest.webmanifest, web/public/{favicon-128x128,icon-192,icon-512,icon-maskable-512}.png, web/public/zenuml-logo{,-maskable}.svg
  • web/src/ui/BrandLogo.tsx, web/src/ui/index.ts, web/src/components/header/AppMenu.tsx, web/src/components/home/HomeView.tsx
  • e2e/tests/production-build.spec.js

MrCoder added 3 commits June 18, 2026 10:29
…— replace placeholder glyph with BrandLogo (cherry-pick 1b02156; HomeView import re-resolved onto master)
…m BrandLogo — cutover dropped the legacy icons (empty tab icon, no manifest); 192/512/maskable PNGs + SVG, theme-color; prod-build spec guards manifest+icons 200
@MrCoder MrCoder merged commit b490a8d into master Jun 18, 2026
6 checks passed
@MrCoder MrCoder deleted the fix/favicon-and-logo branch June 18, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant