A thread read as a chat (#242 step 1b) #298

Merged
littlefox merged 3 commits from issue-283-thread-chat into main 2026-10-22 21:49:53 +00:00
Owner

Closes #283

With "show a channel as threads" on, an opened thread reads as a chat (#242 step 1b):

  • the root post on top in full, replies below as compact messages;
  • consecutive messages by one author within 10 minutes are grouped (name shown once); a subject shows only where it changes;
  • reply chains stay in one column; indentation only under a post with two or more replies (up to 3 levels);
  • day separators, "Ny" on unread, footnotes tagged;
  • a reply field at the bottom (Ctrl/Cmd+Enter sends) answering the last message;
  • reading order, read-when-seen and "Visa fler" as in the thread view.

Verified: new e2e/tests/thread-chat.spec.ts on a seeded "Chattråd" channel (order, grouping, forks, subject, unread, opening a message, replying) in desktop/android/iphone profiles; unit tests for the layout; lint with CI's three clippy commands; screenshots looked at.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #283 With "show a channel as threads" on, an opened thread reads as a chat (#242 step 1b): - the root post on top in full, replies below as compact messages; - consecutive messages by one author within 10 minutes are grouped (name shown once); a subject shows only where it changes; - reply chains stay in one column; indentation only under a post with two or more replies (up to 3 levels); - day separators, "Ny" on unread, footnotes tagged; - a reply field at the bottom (Ctrl/Cmd+Enter sends) answering the last message; - reading order, read-when-seen and "Visa fler" as in the thread view. Verified: new `e2e/tests/thread-chat.spec.ts` on a seeded "Chattråd" channel (order, grouping, forks, subject, unread, opening a message, replying) in desktop/android/iphone profiles; unit tests for the layout; lint with CI's three clippy commands; screenshots looked at. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
With the thread list, the reader's thread is a chat: the first post on
top, replies as compact messages in reading order, one name per run of
one person's messages, a subject only where it changes, chains flat and
indentation only below a fork. A reply field at the bottom answers the
last message without the composer.

Same data, reading order and thread-item markup as the card tree, so read
when seen, Visa fler and the post being read work as before. The thread
list's items are thread-row now, so the reader's selectors can't match
them. Seeded: Chattråd, read by Charlie.

Refs #283 #242

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Roadmap: #242 step 1b done
All checks were successful
ci / check (push) Successful in 8m51s
ci / desktop (push) Successful in 14m51s
ci / e2e (push) Successful in 30m7s
23f209986b
Refs #283

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
littlefox referenced this pull request from a commit 2026-10-24 13:23:56 +00:00
Sign in to join this conversation.
No description provided.