2.4 KiB
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
priceCurrencyis 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