feat(home): per-type message-preview icons on the dashboard (LC-704) #670
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/LC-704-preview-type-icons"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Give each bodyless message preview on the Home "Catch up" dashboard a per-type label instead of the single generic "📎 Attachment" fallback that LC-703 shipped. An image, a video, a voice message, and a plain file now read distinctly on both the "Unread channels" (catch-up) and "Threads" cards:
Why
After LC-703, a message with no text body (attachment-only) always rendered "📎 Attachment", so the dashboard could not tell a shared screenshot from a voice memo or a PDF. The per-type label restores at-a-glance recognition of what is waiting in each channel/thread.
How
templates/partials/attachment.html) and keys off the message's first attachment, so the dashboard label matches what the message leads with in the room. Reusesmodels::Attachment::is_image/is_video/is_audio; no new mime logic.db::uploads::attachments_for_messages(the timeline's bulk loader) rather than widening the inbox / thread-digest queries. Only bodyless rows trigger a lookup, so an all-text dashboard costs no extra query.home-dash-preview-image/-video/-voice/-filein both en and es (parity test passes).Scope note
LC-704 originally bundled a workspace-wide one-click "Catch me up" AI summary. That is a new cross-room feature (new route, cross-room aggregation under a token budget, drawer UI, caching), not a preview tweak, so it was split into LC-705.
Testing
just test: 196 binaries ok, 0 failed, 1658 tests passed (incl. 2 new unit tests for the attachment classifier and the i18n en/es parity test).cargo clippyclean under bothstandaloneandsaasfeature sets.cargo fmt --checkclean.🤖 Generated with Claude Code
https://claude.ai/code/session_016ufqbuN7mjyt4ms5NEygMy