Block a user
Rough edges: mobile 100dvh, session-expiry in chat, sticky error toasts, journal date filter
Seed-packet capture: vision model, extraction, catalog match, create (backend)
Make the canvas keyboard-reachable + trap focus in dialogs
The canvas is unreachable by keyboard: arrow-key nudging exists but nothing can select without a pointer
Rough edges: mobile 100dvh, session-expiry in chat, sticky error toasts, journal date filter
Image normalization: decode HEIC/webp/png/jpeg → JPEG
Image normalization on upload: decode HEIC/webp and re-encode to JPEG, without breaking CGO_ENABLED=0
Make the canvas keyboard-reachable + trap focus in dialogs
Image normalization: decode HEIC/webp/png/jpeg → JPEG