Thread view: bubbles, 2-min clusters, date dividers (read-only) #8
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
posta/chat#8
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?
Parent
#2
What to build
Clicking a sidebar contact navigates to
/c/<url-encoded-peer>, which renders the message thread. Bubble layout — outbound right, inbound left. Consecutive messages from the same sender within 2 minutes cluster (single avatar + timestamp on the first; tight spacing thereafter). Date dividers between calendar days (browser-local timezone). Main pane swaps viahx-push-url; sidebar stays mounted. Server distinguishes full vs partial render via theHX-Requestheader — direct visit and refresh return the full page; in-app navigation returns only the thread fragment.Acceptance criteria
hx-get="/c/<peer>" hx-target="#main" hx-push-url="true"/c/<peer>returns the full page (layout chrome + thread)HX-Requestheader detected)<time datetime="…">+ small JS formatterid="msg-<rowId>"for future anchor scrollingwhite-space: pre-wrap?before=<rowId>cursor passed through to posta-serverinternal/postaclient implementsGetMessages(ctx, token, serverURL, peer, cursor)Blocked by