Files
GearBox/.planning/phases/35-bug-fixes/35-DISCUSSION-LOG.md

2.4 KiB

Phase 35: Bug Fixes - Discussion Log

Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

Date: 2026-04-19 Phase: 35-bug-fixes Areas discussed: FIX-03 scope, FIX-01 fallback


FIX-03 scope: slow image loading

Option Description Selected
Lazy loading + skeleton states only Add HTML loading='lazy' and gray animated placeholders while images load. Addresses visible UX symptom without touching presigned URL generation.
Lazy loading + presigned URL caching Also cache generated presigned URLs server-side for their TTL duration. More impactful but touches the storage layer.
Full investigation and fix all causes Audit all three causes (lazy loading, presigned URL generation overhead, image sizing), fix everything found.

User's choice: Lazy loading + skeleton states only Notes: Presigned URL caching explicitly deferred to a future phase. Skeletons should appear on all card types that display images (ItemCard, CandidateCard, catalog/discovery cards) — not just ItemCard.


FIX-01 fallback: catalog vs manual flow

Option Description Selected
Inline fallback inside CatalogSearchOverlay CatalogSearchOverlay already has "Can't find it? Add manually" link. Just wire the button to the overlay, no extra UI needed.
Secondary button on thread page Keep an explicit "Add manually" secondary button on the thread page toolbar.
Remove the manual-add modal from thread page entirely Delete the inline AddCandidateModal component and its state. Manual add is already reachable via FAB → overlay → "add manually".

User's choice: Remove the manual-add modal from thread page entirely Notes: The AddCandidateModal inline component and addCandidateOpen state should be fully deleted from the thread detail route. Clean code removal.


Claude's Discretion

  • Which specific card component file implements catalog/discovery card loading skeletons
  • Whether priceCurrency is already in the items list API response

Deferred Ideas

  • Presigned URL server-side caching (TTL-based) — out of scope for Phase 35
  • Image resizing/thumbnails on upload — deferred
  • Cache-Control headers on S3 objects — deferred