Show author avatars with nldd-avatar #167
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
NLDD 0.8.69 ships nldd-avatar: image with automatic fallback to initials (derived from name) or a person icon, sizes on the nldd-icon scale, and nldd-byline renders it natively. Waggle shows author names in cards and threads but no avatar. Evaluate adding avatars (Mattermost profile image via the file proxy, initials as fallback) in CardRow, thread view and the reply composer.
Rescoping rather than closing. Two of the three surfaces this asked for exist today (delivered by #130):
The third is not there: the reply composer shows no avatar for the person writing. MessageEditor/ReplyComposer only pass an account through so the mention autocomplete can load candidate avatars (ReplyComposer.vue:38).
So what is left is one question, not a sweep: does a composer get an avatar of the current user next to the input? That is a design call - it costs vertical space in the busiest surface and adds no information the user lacks. Leaving this open with that as the remaining scope.
Closing as already done - most of it landed two days after this was filed.
nldd-avatarrenders the real Mattermost profile image with initials asfallback in
CardRow(both variants),ThreadView,CardDetailsModal,ReactorPopoverandMentionProfilePopover. Commits0c0bb5eand575cfa7(2026-07-26) moved five separately hand-built image -> initials -> icon chains
onto the component, so the fallback lives in one place instead of five.
The proxy this asks us to evaluate exists too:
GET /api/mm/avatar/{user_id}(
backend/waggle/api/mm_avatar.py:167), separate from the file proxy andcache-busted with the
last_picture_updateversion that sync stores per author(
sync_service.py:139,mm_thread.py:205).Three things named here were not done. None of them needs this issue open:
avatar, and the thread payload already returns what it would need. That is a
design question rather than a migration - worth its own issue if we want it.
nldd-bylineis unused.CardRowandThreadViewhand-roll the author +timestamp row next to
nldd-avatar. A refactor with no user-visible change.mentionSuggest.tsstill hand-builds<img>+ initials (it rendersoutside Vue, into the Tiptap suggestion popup), so it missed the sweep.
One loose end while we are here:
initials()exists twice, incardViewUtils.ts:32andThreadView.vue:73, with different edge cases (?fallback vs none).