Repository navigation
Show first messages immediately and refresh Home in the background - #1902
Merged
Merged
Conversation
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.
Sending a first message from Home or a new tab previously left the starter on screen until its conversation finished opening. It now immediately shows a chat screen with the submitted message and
opening conversation… · esc cancels, before any model token arrives. The Chats navigation is selected during that preview.Home paints its last completed reading and refreshes conversations, memory changes, spending, deliverables and folder availability off the UI loop. One outstanding read is shared across visits; stale replies cannot replace a newer visit. Page-entry spending refreshes also run in the background. Failed openings preserve drafts and attachments; cancellation cannot click through the preview into an old page target. New-tab recent conversations were already loaded lazily and retain that path.
Measured first-message response
Compared current
deved7fe43d5against58a554c6d, using freshly built binaries and the real running TUI. All values are milliseconds; each cell is median / p95.During the controlled stall, the visible wait falls by 97.6% from Home and 97.5% from a new tab. The model still starts after its conversation is ready; the UI no longer waits with it.
Navigation, typing and model timings
Warm navigation and typing were already fast and remain around 15–20 ms. These small changes are within the measurement resolution; no general navigation speedup is claimed. Model timings vary with serving conditions and are reported separately, without a model-speed claim.
How the timing is measured
Both final runs passed: baseline 40.69 s, candidate 41.62 s. Each sent 20 live messages through OpenRouter with
deepseek/deepseek-v4.1-flash. Each run audited 198 model-log rows / 98 completed requests; every primary and auxiliary record named that exact model.Reproduce with an existing OpenRouter key configured:
Validation and limits
make pr-readypassed on58a554c6d: build, vet, formatting, packed manuals, repository laws and fresh touched-package tests, including all eight TUI shards.-race -count=1on the final head.Timing evidence is inline above. Raw measurements, binary hashes, model receipts and actual terminal captures are preserved locally. Direct PR attachment upload is unavailable; no evidence files are committed.
GitHub PR gate: all six jobs passed; the CLA check also passed.
The owner reviewed the timing results and approved merging once all checks were green.