Repository navigation
Chief chat (Mac Home): bound the loaded window as replies arrive - #34840
azooz2003-bit wants to merge 4 commits into
Conversation
… from .working in #34416) The rename left MessagesLabSidebarTests not compiling, which stops every MessagesLab package test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…as replies arrive Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ts at the newest message HomeStore's TranscriptWindow appended every live message and never dropped one, so a Chief chat left open grew without limit and each change rebuilt the timeline from the whole window. A view pinned at the newest message now trims the window above 1500 to the newest 1000 on the next display frame (HomeStore.trimIfResting), keeping messages that kept ones answer or thread under and what an open thread or reply points at; the dropped history pages back in when the reader scrolls up. Not while an older page loads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
…e agent runs Review of the bound: what the trim keeps (messages kept ones answer or thread under, what the view holds open) can no longer hold the window above the trim threshold, so one reply to an old message cannot stop the bound for good. A trim reads the agent runs again for the window left, and the view checks the store's message count rather than timeline rows. The frame recording test leaves the suite (its frames are in the PR's report). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
Correctness review (subagent) and resolutionReviewed head: 4f67880. Fixes landed in 5505999.
Receipts on 5505999:
Before and after on the Mac, in the real
HOLD: the user dogfoods the build before this merges. |
Summary
The Mac Chief chat (Home:
HomeStore→TranscriptWindow→MessagesLabHomeView) loaded every message that arrived while it was open and never dropped one.TranscriptWindow.applyonly appends. Each change rebuilds the conversation's timeline from the whole window, so a Chief chat left open for days gets slower with every reply.Now, when the reader rests on the newest message (
pinnedToBottom && atNewest) and the window holds more than 1,500 messages,HomeProjectionschedulesHomeStore.trimIfRestingfor the next display frame. It keeps the newest 1,000. The cut moves up to keep:replyTo) or threads under (threadRoot)Nothing is trimmed while an older page loads. The dropped history pages back in when the reader scrolls up (
reachedStartgoes false).This is the real Mac half of the Chief chat window bound. #34493 changed
MacConversationViewController, which only the conversation lab app uses, not the cmux-next Mac app. The iOS half is on feat-cmux-next (de82e16..7927578).It also carries a one-word base fix:
SidebarListStillTestsusedAvatarMotion.working, renamed to.thinkingin #34416. That left the MessagesLab test package not compiling.Changelog
Fixed: A Chief chat left open on the Mac no longer slows down as replies keep arriving.
Tests
HomeWindowBoundTestsdrives the realMessagesLabHomeViewover a realHomeStoreon the mock owner (HomeChatRig). It posts 1,600 Chief replies to an open chat resting at the newest message, in 32 batches with a display frame after each.loaded → 1640 <= 1500.TranscriptWindowTrimTests(keeps the newest, keeps answered, threaded and held messages, pages back in), HomeTranscriptPagerTests and StoreKeptTranscriptTests: pass.chief-window-home.Capture
recordsTheLoadedWindowAsRepliesArriverenders the real view after each batch: before the fix the count climbs to 1,640; after it, it trims to 1,050 at batch 31 and ends at 1,100, still pinned at reply 1,600. The video and stills are in the report.Observed / Not run
Observed: the runs above. Not run: a Chief chat left open for days in the real app against a live Chief.
HOLD: user dogfoods before merge.
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
The Mac Chief chat left open at the newest message no longer grows without bound: the loaded window is trimmed while replies keep arriving, so each arrival stops rebuilding the whole timeline.
SidebarListStillTeststo use the renamedAvatarMotion.thinking, which had left the MessagesLab test package uncompilable.Written for commit 5505999. Summary will update on new commits.