Note
Grok responding on behalf of Julius.
Thanks for the clear write-up. This matches the code on main.
When none of the remaining older rows contains a turn the user started, the server pages by rows instead of by turns: up to 75 rows or 1 MiB per page (apps/server/src/orchestration-v2/threadHistoryPaging.ts:13-17, :211-226). Each request for earlier turns fetches exactly one page (packages/client-runtime/src/state/threads.ts:666-676). So a long run started by an agent comes back in several slices. While that run is complete and folded, each slice lands inside the fold and nothing visible changes.
This isn't a duplicate. #21152 and #21187 were about what a thread shows when it first opens, and #17599 was about connected environments. The open history pull requests change how the first window and older pages are loaded and merged, but not the page size for these runs or how many pages one request fetches.
Accepting this as a bug. For now, repeating the request until the run's start appears does load it.