Profiles and avatars #151

Closed
opened 2026-10-19 10:09:12 +00:00 by littlefox · 2 comments
Owner

From the 0.4 roadmap ("Find your people"). Goal: people can see who someone is, and show who they are.

  • Profile page for a person: name, presentation text, recent posts (map-created-texts), memberships (get-membership, where visible), and when they were last on.
  • Avatars everywhere a name is shown (post headers, chats, Who's here): the X-Face aux item (9) where present, decoded to a small image; otherwise coloured initials, with the colour derived from the person number so it's stable.
  • Edit your own presentation in place. It's an ordinary text, written as a new presentation and set with set-presentation, so elisp sees it as usual.
  • Names are links to the profile, so a tap on a name in a post opens it.

Compat: X-Face is 48×48 1-bit compressed; decoding needs care (fuzz it like the other parsers). We only read X-Face; setting your own avatar is not in scope (elisp has no way to show anything else).

e2e: a seeded person with a presentation and an X-Face, one without; editing your own presentation.

From the 0.4 roadmap ("Find your people"). Goal: people can see who someone is, and show who they are. - **Profile page** for a person: name, presentation text, recent posts (`map-created-texts`), memberships (`get-membership`, where visible), and when they were last on. - **Avatars** everywhere a name is shown (post headers, chats, Who's here): the X-Face aux item (9) where present, decoded to a small image; otherwise coloured initials, with the colour derived from the person number so it's stable. - **Edit your own presentation** in place. It's an ordinary text, written as a new presentation and set with `set-presentation`, so elisp sees it as usual. - Names are links to the profile, so a tap on a name in a post opens it. Compat: X-Face is 48×48 1-bit compressed; decoding needs care (fuzz it like the other parsers). We only read X-Face; setting your own avatar is not in scope (elisp has no way to show anything else). e2e: a seeded person with a presentation and an X-Face, one without; editing your own presentation.
Author
Owner

Plan, with D-048 and D-049:

  • Avatars: the first image in a person's presentation text, scaled for display. Otherwise coloured initials, with the colour taken from the person number so it's stable. Looked up once per person per session.
  • Profile page (from a tap on a name, or a person link): avatar, name, presence (#156), the presentation shown in full, recent posts (map-created-texts-reverse), last login (get-person-stat), and memberships where the server shows them. Buttons for a chat message and a personal letter.
  • My own profile:
    • 'Redigera presentation' and 'Byt bild' / 'Ta bort bilden'. They write a new presentation the way elisp's 'Ändra presentation' does: same recipients, a comment to the old one, then set-presentation.
    • The picture is scaled like other posted images.
    • Old presentations stay.
  • Sign-up (#152): a 'Skriv en presentation' step is offered after creating an account.
Plan, with D-048 and D-049: - **Avatars:** the first image in a person's presentation text, scaled for display. Otherwise coloured initials, with the colour taken from the person number so it's stable. Looked up once per person per session. - **Profile page** (from a tap on a name, or a person link): avatar, name, presence (#156), the presentation shown in full, recent posts (map-created-texts-reverse), last login (get-person-stat), and memberships where the server shows them. Buttons for a chat message and a personal letter. - **My own profile:** - 'Redigera presentation' and 'Byt bild' / 'Ta bort bilden'. They write a new presentation the way elisp's 'Ändra presentation' does: same recipients, a comment to the old one, then set-presentation. - The picture is scaled like other posted images. - Old presentations stay. - **Sign-up (#152):** a 'Skriv en presentation' step is offered after creating an account.
Author
Owner

Merged in #168 (D-048, D-049).

  • Profile page: opened from a post's author, a name in the who-is-on list or a person link. It shows the avatar, presence or last login, the presentation, recent posts, and Skriv brev.
  • Avatars: the first picture in the presentation, otherwise initials. They appear on post headers and in the who list.
  • My profile: edit the presentation and picture. Saving writes a new presentation as elisp does: same recipients, a comment to the old one, then set-presentation.
  • New accounts start on their profile with the editor open.

Verified: profile.spec on desktop, Android and iPhone; the full suite locally; CI green.

Merged in #168 (D-048, D-049). - **Profile page:** opened from a post's author, a name in the who-is-on list or a person link. It shows the avatar, presence or last login, the presentation, recent posts, and Skriv brev. - **Avatars:** the first picture in the presentation, otherwise initials. They appear on post headers and in the who list. - **My profile:** edit the presentation and picture. Saving writes a new presentation as elisp does: same recipients, a comment to the old one, then set-presentation. - **New accounts** start on their profile with the editor open. Verified: profile.spec on desktop, Android and iPhone; the full suite locally; CI green.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
littlefox/neokom#151
No description provided.