One press shows a post: entering a channel reads its first one #108

Merged
littlefox merged 1 commit from issue-96-next-channel into main 2026-10-18 11:42:01 +00:00
Owner

Closes #96

  • Faster: entering a channel no longer recounts its unread posts twice before anything shows. It uses the cached count and recounts in the background afterwards. On a big Lysator channel that saves dozens of sequential round trips.
  • One press, something to read (D-037): entering a channel by the button, space, swipe, a click in Olästa or "Gå till kanal" shows its first unread post (or FAQ) at once. The channel line, e.g. "Allmänt — 14 olästa inlägg.", stays above it.
  • Feedback: the default-action button shows a spinner when a step takes more than 300 ms.
  • tools/e2e.sh: it now stops with a clear message when port 4895 is taken (the Docker container did that, and every test then timed out).
  • compose.yaml: gains NEOKOM_ADDRESS, to publish on one address only (documented in DOCKER.md).
  • Docs: D-037 is recorded, and the ROADMAP 0.3 table lists #99–#107.

Spec changes:

  • Specs that pressed space right after entering a channel passed only because the press was dropped while the app was busy. They now expect the first post on entering.
  • The text-link spec no longer depends on which post happens to be first.

Verified:

  • tools/e2e.sh: 169/169 across desktop, Android and iPhone.
  • Clippy (native and wasm32): clean.
  • Unit tests and the 9 devserver tests: pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #96 - **Faster:** entering a channel no longer recounts its unread posts twice before anything shows. It uses the cached count and recounts in the background afterwards. On a big Lysator channel that saves dozens of sequential round trips. - **One press, something to read** (D-037): entering a channel by the button, space, swipe, a click in Olästa or "Gå till kanal" shows its first unread post (or FAQ) at once. The channel line, e.g. "Allmänt — 14 olästa inlägg.", stays above it. - **Feedback:** the default-action button shows a spinner when a step takes more than 300 ms. - **`tools/e2e.sh`:** it now stops with a clear message when port 4895 is taken (the Docker container did that, and every test then timed out). - **`compose.yaml`:** gains `NEOKOM_ADDRESS`, to publish on one address only (documented in DOCKER.md). - **Docs:** D-037 is recorded, and the ROADMAP 0.3 table lists #99–#107. Spec changes: - Specs that pressed space right after entering a channel passed only because the press was dropped while the app was busy. They now expect the first post on entering. - The text-link spec no longer depends on which post happens to be first. Verified: - `tools/e2e.sh`: 169/169 across desktop, Android and iPhone. - Clippy (native and wasm32): clean. - Unit tests and the 9 devserver tests: pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
One press shows a post: entering a channel reads its first one
All checks were successful
ci / check (push) Successful in 10m43s
packaging / arch (pull_request) Successful in 11m47s
ci / desktop (push) Successful in 13m29s
ci / e2e (push) Successful in 17m50s
packaging / nix (pull_request) Successful in 20m29s
packaging / fedora (pull_request) Successful in 21m3s
packaging / debian (pull_request) Successful in 21m51s
packaging / release (pull_request) Has been skipped
53b1652e26
Testing on Android against kom.lysator.liu.se, the user found "Go to
next conference" so slow that nothing seemed to happen, and even when
it finished, only a status line changed (#96).

Entering a channel recounted its unread posts twice, once in
Kom::enter_conf and once in the UI, paging local-to-global 100 at a
time, before anything showed. Now it uses the cached count and
recounts afterwards, in the background. It then shows the channel's
first unread post or FAQ on the same press, with the channel's line
kept in the status. There's no separate "enter" step any more (D-037:
the old clients are no model). The button shows a spinner if a step
takes more than 300 ms.

Also:
- tools/e2e.sh stops at once when the app's relay port is taken. A
  Docker web container holding 4895 made every test time out.
- compose.yaml gains NEOKOM_ADDRESS, to publish on one address.
- D-037 is recorded.
- The 0.3 roadmap has its issues (#99–#107).

Several specs pressed space right after entering a channel and passed
only because the press was dropped while busy. They now expect the
first post on entering.

Refs #96

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