A view per channel: Trådar, Chatt, Klassiskt (#242 step 1e) #302

Merged
littlefox merged 4 commits from issue-286-channel-views into main 2026-10-23 01:15:45 +00:00
Owner

Closes #286

#242 step 1e: a view per channel, "Trådar | Chatt | Klassiskt" at its top. Replaces the temporary global channel-view setting from 1a.

  • Trådar: the thread list; threads open as chats.
  • Chatt: the whole channel as one chat — a message per post, one person's run under one name, "↳ svar till X" only when a post answers something other than the one above it, "N svar" only for replies other than the next post. Threads open as chats.
  • Klassiskt: post by post, threads as trees (as before).
  • Which view: the one chosen for the channel (channel-views in our user-area block, so it follows the person); else the person's default (new: Settings → "Visa kanaler", channel-view-default); else Klassiskt for Emacs client users; else the channel's shape (Kom::one_conversation: its latest 32 texts linked reply→parent when same subject; one group ≥ 3/4 → Chatt, else Trådar).
  • The reader draws a post as chat or tree by the view of the channel it's read in.
  • Fixed on the way: the channel posts pane loaded older pages before the first had been scrolled to its end; in Chatt that cascaded back to the channel's first post.
  • Tests: the seed gives the people of the specs written before #286 Klassiskt as default, so those keep testing the classic views.

Flag for the user: the per-person default in the settings is an addition to the design, so someone who wants the classic view everywhere doesn't have to switch channel by channel.

Verified: new e2e/tests/channel-views.spec.ts (defaults by shape: Chatt for Jättetråd, Trådar for Trådlista; switching to Klassiskt; remembered in another browser context; a person's default) and footnotes/giant/forks/thread-chat/thread-list specs moved to the per-channel views, in desktop/android/iphone; full e2e suite 373 passed (one flaky, fixed after); devserver integration tests 18 passed; unit tests (per-channel view in the user area); lint with CI's three clippy commands; screenshots looked at.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #286 #242 step 1e: a view per channel, "Trådar | Chatt | Klassiskt" at its top. Replaces the temporary global `channel-view` setting from 1a. - **Trådar:** the thread list; threads open as chats. - **Chatt:** the whole channel as one chat — a message per post, one person's run under one name, "↳ svar till X" only when a post answers something other than the one above it, "N svar" only for replies other than the next post. Threads open as chats. - **Klassiskt:** post by post, threads as trees (as before). - **Which view:** the one chosen for the channel (`channel-views` in our user-area block, so it follows the person); else the person's default (new: Settings → "Visa kanaler", `channel-view-default`); else Klassiskt for Emacs client users; else the channel's shape (`Kom::one_conversation`: its latest 32 texts linked reply→parent when same subject; one group ≥ 3/4 → Chatt, else Trådar). - **The reader** draws a post as chat or tree by the view of the channel it's read in. - **Fixed on the way:** the channel posts pane loaded older pages before the first had been scrolled to its end; in Chatt that cascaded back to the channel's first post. - **Tests:** the seed gives the people of the specs written before #286 Klassiskt as default, so those keep testing the classic views. Flag for the user: the per-person default in the settings is an addition to the design, so someone who wants the classic view everywhere doesn't have to switch channel by channel. Verified: new `e2e/tests/channel-views.spec.ts` (defaults by shape: Chatt for Jättetråd, Trådar for Trådlista; switching to Klassiskt; remembered in another browser context; a person's default) and footnotes/giant/forks/thread-chat/thread-list specs moved to the per-channel views, in desktop/android/iphone; full e2e suite 373 passed (one flaky, fixed after); devserver integration tests 18 passed; unit tests (per-channel view in the user area); 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
The thread list and the chat were one global setting while 0.7 was
built. Now each channel has its own view, switched at its top and
remembered in the user area: Trådar (the thread list, threads as
chats), Chatt (the whole channel as one chat) or Klassiskt (post by
post, threads as trees). Without a choice it goes by the person's
default in the settings, then Klassiskt for Emacs client users, then
the channel's shape: one long conversation is a chat, many topics are
threads.

The seed gives the people of the older specs Klassiskt as their
default, so those keep testing the classic views.

Refs #286

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Refs #286

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Channel posts: older pages only after the first is at its end
All checks were successful
ci / check (push) Successful in 7m41s
ci / desktop (push) Successful in 15m58s
ci / e2e (push) Successful in 33m12s
8a988d5771
Before the first page was scrolled to its newest post, a page of posts
not loaded yet fits on screen in Chatt, its top counted as near, and
the pages before it loaded one after the other back to the channel's
first post, leaving the reader there. Roadmap: #242 step 1e done.

Refs #286

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.