Read one thread at a time, or as the Emacs client does #222

Merged
littlefox merged 1 commit from issue-221-thread-reading into main 2026-10-21 16:14:55 +00:00
Owner

Closes #221 (D-056)

  • Settings → Läsning → Läsordning: "En tråd i taget" or "Som i Emacs-klienten". Stored as reading in our block of the user area.
  • Unset: classic for people with an elisp block in their user area, threads for everyone else.
  • By thread: the next unread post brings its whole thread; every unread post of it, top to bottom as drawn (including replies in other channels I'm in), before the next thread. Choosing another channel puts it aside; the rest comes back whole later.

Verified:

  • New devserver test thread_reading reads one world both ways: a fresh thread (same order) and a revived one (by thread: A2, X1, A3, then C; classic: A2, C, A3, then X1 in its channel). The old order tests now ask for classic explicitly; the mute test runs by thread and still skips what it should.
  • Full e2e on desktop/Android/iPhone: settings.spec checks the default, the switch and that the classic checkboxes show only with it; aux.spec opens its text directly. Soak repeated 3x green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #221 (D-056) - Settings → Läsning → Läsordning: "En tråd i taget" or "Som i Emacs-klienten". Stored as `reading` in our block of the user area. - Unset: classic for people with an `elisp` block in their user area, threads for everyone else. - By thread: the next unread post brings its whole thread; every unread post of it, top to bottom as drawn (including replies in other channels I'm in), before the next thread. Choosing another channel puts it aside; the rest comes back whole later. Verified: - New devserver test `thread_reading` reads one world both ways: a fresh thread (same order) and a revived one (by thread: A2, X1, A3, then C; classic: A2, C, A3, then X1 in its channel). The old order tests now ask for classic explicitly; the mute test runs by thread and still skips what it should. - Full e2e on desktop/Android/iPhone: settings.spec checks the default, the switch and that the classic checkboxes show only with it; aux.spec opens its text directly. Soak repeated 3x green. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Read one thread at a time, or as the Emacs client does
All checks were successful
ci / check (push) Successful in 7m59s
ci / desktop (push) Successful in 14m6s
ci / e2e (push) Successful in 28m50s
790b9d8c45
Reading in elisp's order split threads into fragments: a new reply to an
old thread came wherever it arrived, replies in other channels came in
their channel's turn, and leaving a channel dropped the pending replies.
A new setting, Läsordning, reads a whole thread at a time instead: the
next unread post brings its thread, and every unread post of it is read
top to bottom as the thread view draws it, in whichever of my channels
it is, before the next thread. The Emacs order stays, and is the default
for anyone who has used the Emacs client (D-056).

Closes #221

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-21 18:55:55 +00:00
Sign in to join this conversation.
No description provided.