Review: Bug: wrong logo assets — JPEG instead of transparent PNGs from playground
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type — Bug
- [x] Lineage — Regression from PR #99
- [x] Repo — forgejo_admin/westside-app
- [x] What Broke — clear description of JPEG vs PNG mismatch
- [x] Repro Steps — 3 steps with playground comparison
- [x] Expected Behavior — table with current vs expected vs MinIO equivalent
- [x] Environment — cluster, namespace, commit SHA
- [x] File Targets — 2 files with line numbers
- [x] Fix — inline diff for both files
- [x] Acceptance Criteria — 4 criteria
- [x] Related — project page + source PR
All required bug template sections present. File Targets and Fix sections are bonus (not required by template-issue-bug) and well-structured.
Traceability
- [x] story:WS-S26 label — Westside Season 26
- [x] arch:landing-site label — landing site component
- [x] Forgejo issue — forgejo_admin/westside-app#107, open
All three legs of the traceability triangle are present and valid.
File Targets
- [x]
src/routes/(public)/+layout.svelteline 43 — verified: containsbranding/logo.jpegin nav logo img src at exactly line 43 - [x]
src/routes/(public)/+page.svelteline 9 — verified: containsbranding/logo.jpegin hero logo img src at exactly line 9 - [x] MinIO target
branding/logo-transparent.png— verified: HTTP 200 - [x] MinIO target
branding/logo-hero-transparent.png— verified: HTTP 200
Both source files and both target assets are verified. Line numbers are accurate.
Repo Placement
OK. Issue filed on forgejo_admin/westside-app, fix targets westside-app source files. Single-repo fix, no cross-repo concerns.
Dependencies
- No blocking items found in
in_progress,qa, orneeds_approval. - Board item #416 (Svelte promotion prep, arch:landing-site) is in
next_up— touches same architecture component but is not a blocker. - No dependencies documented in the scope (none needed for a standalone bug fix).
Acceptance Criteria
Criteria 1-4 are testable: nav logo asset URL can be verified, hero logo asset URL can be verified, visual comparison with playground is concrete, JPEG artifacts on dark background is observable. An agent can verify criteria 1 and 2 via grep; criteria 3 and 4 require visual screenshot comparison.
Missing criterion: No mention of the 7 additional
(app)/ route files that also use logo.jpeg. If the fix only addresses the 2 public routes, the app routes will still serve the compressed JPEG.Blast Radius
ISSUE FOUND:
branding/logo.jpeg appears in 9 files across the codebase, not just the 2 targeted by this ticket:src/routes/(public)/+layout.svelte:43— targeted by ticketsrc/routes/(public)/+page.svelte:9— targeted by ticketsrc/routes/(app)/+layout.svelte:82— NOT in ticket scopesrc/routes/(app)/signin/+page.svelte:28— NOT in ticket scopesrc/routes/(app)/register/+page.svelte:220— NOT in ticket scopesrc/routes/(app)/forgot-password/+page.svelte:41— NOT in ticket scopesrc/routes/(app)/reset-password/+page.svelte:82— NOT in ticket scopesrc/routes/(app)/checkout/+page.svelte:143— NOT in ticket scopesrc/routes/(app)/jersey/+page.svelte:273— NOT in ticket scope
All 7 additional files use
logo.jpeg as a nav-sized logo (not hero), so logo-transparent.png would be the correct replacement for all of them. If only the 2 public routes are fixed, authenticated users will still see the compressed JPEG on every app page.Recommendation
Before this ticket is READY, the following must be addressed:
- Expand file targets to include all 9 files that reference
branding/logo.jpeg, or explicitly document that the 7(app)/route files are intentionally out of scope (with a follow-up ticket for them). - Add acceptance criterion: "No remaining references to
branding/logo.jpegin the codebase" (if scope is expanded) or "Follow-up ticket created for(app)/route logos" (if scope is kept narrow). - Update the Fix section to include the additional file diffs if scope is expanded.