Review: Bug: wrong logo assets — JPEG instead of transparent PNGs from playground (re-review)

review-446-2026-03-26-v2 Review

review ready

Verdict: READY

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 (original), expanded to 9 in comment
  • [x] Fix — inline diff for both original files
  • [x] Acceptance Criteria — 4 criteria (original), updated to 4 in expansion comment
  • [x] Related — project page + source PR
All required bug template sections present. Scope expansion comment adds the missing file targets and updated acceptance criteria identified in the v1 review.

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

Logo replacements (9 files) — all verified:
  • [x] src/routes/(public)/+layout.svelte line 43 — verified: branding/logo.jpeg in nav logo img src
  • [x] src/routes/(public)/+page.svelte line 9 — verified: branding/logo.jpeg in hero logo img src (only file using hero-logo class)
  • [x] src/routes/(app)/+layout.svelte line 82 — verified: branding/logo.jpeg in nav logo img src
  • [x] src/routes/(app)/signin/+page.svelte line 28 — verified: branding/logo.jpeg
  • [x] src/routes/(app)/register/+page.svelte line 220 — verified: branding/logo.jpeg
  • [x] src/routes/(app)/forgot-password/+page.svelte line 41 — verified: branding/logo.jpeg
  • [x] src/routes/(app)/reset-password/+page.svelte line 82 — verified: branding/logo.jpeg
  • [x] src/routes/(app)/checkout/+page.svelte line 143 — verified: branding/logo.jpeg
  • [x] src/routes/(app)/jersey/+page.svelte line 273 — verified: branding/logo.jpeg
Exactly 9 occurrences of logo.jpeg across 9 files — matches the expansion comment perfectly.
MinIO target assets — all verified (HTTP 200):
  • [x] branding/logo-transparent.png — HTTP 200 (nav logo replacement for 8 files)
  • [x] branding/logo-hero-transparent.png — HTTP 200 (hero logo replacement for 1 file)
Coach photo optimizations (staff/+page.svelte) — all verified:
  • [x] coaches/james-taylor.jpg line 45 — verified in source; james-taylor-800w.jpg HTTP 200 in MinIO
  • [x] coaches/ken-seka.png line 73 — verified in source; ken-seka-800w.jpg HTTP 200 in MinIO
  • [x] coaches/kj-ng.png line 59 — verified in source; kj-ng-800w.jpg HTTP 200 in MinIO
  • [x] coaches/abbie-sa.jpeg line 99 — verified in source; abbie-sa-800w.jpg HTTP 200 in MinIO
  • [x] coaches/marcus.jpg line 30 — verified in source; correctly excluded from optimization (already 44KB)

Repo Placement

OK. Issue filed on forgejo_admin/westside-app, all fix targets are westside-app source files. Single-repo fix, no cross-repo concerns. Staff page is in the same repo.

Dependencies

  • No blocking items in in_progress, qa, or needs_approval.
  • Board item #416 (Svelte promotion prep, arch:landing-site) is in next_up — touches same architecture component but is not a blocker. Both tickets can be worked independently.
  • No dependencies documented in scope (none needed).

Acceptance Criteria

Updated criteria from expansion comment are testable:
  • "All 9 files use logo-transparent.png (nav) or logo-hero-transparent.png (hero)" — verifiable via grep for logo.jpeg (should return 0 results after fix)
  • "Staff page uses -800w.jpg optimized coach photos" — verifiable via grep for original coach photo URLs
  • "Total staff page payload drops from ~6MB to ~500KB" — approximate, but directionally correct given the file sizes in the expansion table
  • "Visual parity with playground" — requires screenshot comparison, not automatable but concrete
All criteria are actionable. An implementing agent can verify criteria 1-2 via grep and criteria 3-4 via visual inspection.

Blast Radius

The v1 review's blast radius concern (9 files, not 2) is now fully addressed by the scope expansion. No remaining logo.jpeg references outside the 9 targeted files. Coach photo optimization is contained to a single file (staff/+page.svelte) with no downstream consumers.
No other MinIO asset references in the codebase use the unoptimized pattern — this is specific to the branding and coach directories.

Recommendation

No action needed. The scope expansion comment addresses all three issues raised in the v1 review:
  • File targets expanded — all 9 logo.jpeg files now in scope
  • Acceptance criteria updated — includes "all 9 files" criterion
  • Coach photo optimization added — bonus scope, well-defined with verified MinIO assets
This ticket is ready for next_up.