Test: room for a giant thread's card on a busy runner #305

Merged
littlefox merged 4 commits from fix-giant-list-timeout into main 2026-10-23 09:30:41 +00:00
Owner

Fixes main: run #502 (merge of #302) failed once on giant.spec list test on Android (no card within 15 s); the same test passed on the branch. Gives the first card the 60 s the rest of that test allows.

Refs #285

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Fixes main: run #502 (merge of #302) failed once on giant.spec list test on Android (no card within 15 s); the same test passed on the branch. Gives the first card the 60 s the rest of that test allows. Refs #285 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Test: room for a giant thread's card on a busy runner
Some checks failed
ci / check (push) Successful in 8m54s
ci / desktop (push) Successful in 17m43s
ci / e2e (push) Failing after 39m41s
70adb5a934
main's run of #302 failed on it once (Android, no card within 15 s); the
same test passed on the branch. The rest of that test already allows
60 s for the giant thread.

Refs #285

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

Not just a slow runner: building a 3 000-long chain's index walked down a level (one text) per round trip, so with CI's (or any real server's) latency the card never came. Added prefetching the texts after a level in its channel (fetch_after), in the index walk and the chat's walks. Locally with 30 ms each way: the giant list test passes (card in ~20 s); devserver integration tests pass.

Not just a slow runner: building a 3 000-long chain's index walked down a level (one text) per round trip, so with CI's (or any real server's) latency the card never came. Added prefetching the texts after a level in its channel (fetch_after), in the index walk and the chat's walks. Locally with 30 ms each way: the giant list test passes (card in ~20 s); devserver integration tests pass.
Thread walks down fetch what comes after, not a level per round trip
Some checks failed
ci / check (push) Successful in 9m44s
ci / desktop (push) Successful in 14m20s
ci / e2e (push) Failing after 36m31s
e47006c975
Building a thread's index walks down level by level, and a chain has
one text per level: the 3 000-long chain was 3 000 round trips in a
row, three minutes at 60 ms. On CI (and on a real server) the giant
thread's card never came. Now a narrow level fetches the 200 texts
after it in its channel at once (fetch_after), as the walk up already
fetched the texts before it; the chat's own walks down and up do the
same. With 30 ms each way locally, the giant list's card now comes in
about 20 s, the thread in 15.

Refs #285

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Channel chat stays at its end while the page comes in; mute spec waits
Some checks failed
ci / check (push) Successful in 9m34s
ci / desktop (push) Successful in 14m51s
ci / e2e (push) Failing after 33m46s
bba0bfc3d2
A channel shown as a chat scrolled to its end when the first post came,
and the rest coming in above could leave the newest out of view on a
busy server or device (failed on CI, Android). It now stays at the end
until the reader scrolls (any scroll but its own) or five seconds pass.
The mute spec opened a post's menu before its thread arrived, and the
menu closed when the post was drawn again in it.

Refs #286

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Tests: time and channel-views retry what a redraw can undo
All checks were successful
ci / check (push) Successful in 8m48s
ci / desktop (push) Successful in 14m30s
ci / e2e (push) Successful in 36m45s
88479e4e30
time.spec's second tap could land on a time drawn anew when the thread
arrived (as its first tap already allowed for); channel-views looked for
the newest post before a busy machine had it in view. Both failed on
CI (Android, desktop).

Refs #286

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

Merged; main run #533 green. Besides the fetch-ahead for walks down (giant thread card now ~20 s at 30 ms latency, not minutes): the channel chat stays at its end while its page comes in (any scroll but its own stops it), mute.spec waits for the thread before opening a menu, and time/channel-views retry what a redraw can undo.

Merged; main run #533 green. Besides the fetch-ahead for walks down (giant thread card now ~20 s at 30 ms latency, not minutes): the channel chat stays at its end while its page comes in (any scroll but its own stops it), mute.spec waits for the thread before opening a menu, and time/channel-views retry what a redraw can undo.
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.