load large thread history progressively - #79
Open
tarik02 wants to merge 33 commits into
Open
Conversation
…ad-history # Conflicts: # apps/web/src/components/ChatView.tsx
…ad-history # Conflicts: # FORK.md # apps/server/src/ws.ts # packages/client-runtime/src/state/threads.ts
…ad-history # Conflicts: # apps/web/src/components/ChatView.tsx # packages/contracts/src/orchestration.ts
…ad-history # Conflicts: # apps/server/src/checkpointing/CheckpointDiffQuery.test.ts # apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts # apps/server/src/project/ProjectSetupScriptRunner.test.ts # apps/server/src/provider/Layers/ProviderSessionReaper.test.ts # apps/server/src/serverRuntimeStartup.test.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
Why
Large threads previously transferred and rendered too much history. Earlier progressive-loading iterations then mixed multiple scroll models with manual viewport reconciliation, so page insertion and late row measurements could move content backward, fight user input, or leave the scrollbar in a stale state.
The local scrollbar now has one owner and one coordinate system: LegendList over the current bounded window. Adjacent pages load after native user movement, LegendList anchors visible rows across data and size changes, and the minimap owns global conversation navigation.
UI Changes
Large web threads expose the whole conversation through the left minimap. The local scrollbar remains visible for the bounded window, adjacent pages load near its edges, and compact skeleton rows move naturally with the list while loading. Scroll-to-end returns directly to the bounded live tail.
Verification
MessagesTimeline.test.tsx: 14 tests passed earlier in the PR.Checklist
GPT-5.6-Sol via T3 Code.