Repository navigation
New Tab: steady chats list and composer chips - #20335
Conversation
Red on base: two New Tabs disagree on a chat's age, a lane shows twice (name and transcript), a failed last turn reads Disconnected, the age column has no fixed width, and a new chat's composer draws grey pills. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- One minute clock for every relative time (New Tab and All Chats). - Drop transcript rows whose agent session acpmux already lists. - A failed last turn reads Failed, not Disconnected. - Fixed right-aligned tabular age column; rows on the title's edges. - A new chat paints its harness's last effort and access chips, never grey skeleton pills, and names the model it will start on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…ab-steady # Conflicts: # webviews/src/agent-session/acpmux/ComposerPickers.tsx
Gallery453 states changed: agent-pane.transcript/long-code, agent-pane.artifact-panel/closed, agent-pane.artifact-panel/markdown, gallery.visual-media-board/all-previews, agent-pane.new-tab/calm-default, ... · 1 new state · 50 broken states · 111 play checks failed Diff page and renders (the run's 447 more on the diff page. Live preview (follows this branch; start it with
Play checks failed (0 px anchor movement, 0 layout shift, no frame over 33 ms unless the entry gives a reason):
633 nondeterministic states differed from a second render of the same head (a clock or fixture leak) and are not counted as changes. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/38499173113 at 7754a18 failed: cmux-next Release compile (Xcode 26). |
…on (Lawrence: "we lost effort") (#20577) * test(webviews): a new chat names its starting effort before its session reports Lawrence 2026-10-14, "we lost effort": the New Tab composer showed the model chip alone. Red (local Chromium play on this base logic): chips = model only, waitFor did not hold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(cmux-next): a new chat's effort chip names the level acpmux starts it on Before a chat's session reports its options, the effort chip drew only a level a previous chat on that harness had remembered (#20335), so a fresh profile or harness showed the model chip alone. It now falls back to _acpmux/harnesses start.effort (Opus 5.5 starts at Medium). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(next): PR autofix at 00b5e94 - vp fmt webviews/test/ime-composition-keys.test.ts - vp fmt webviews/test/new-tab-omnibar-pointer.test.ts Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38567486409 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: cmux-autofix[bot] <cmux-autofix[bot]@users.noreply.github.com>






Summary
Leo's New Tab bugs from cosmic-gray: the Chats list and the composer moved and changed after they first painted.
clock.ts). Before, each page computedDate.nowonly when its snapshot changed, so two New Tabs showed the same chat as "1m" and "now".agentSessionId. The acpmux row keeps its name.chipMemory.ts) instead of grey skeleton pills. The session's values then replace them in place. The model chip names the model the chat will start on.Testing
Red on base (
211ec6af3), green on the fix:test/new-tab-steady-chats.test.tsx: same age across two New Tabs within one minute; a list fixture with both sources dedupes to one named row; Failed vs Disconnected; the age column and edge geometry.test/new-tab-composer-first-frame.test.tsx: no skeleton, and the first frame's chips equal the settled chips.Also green: 25 related New Tab and composer test files (87 tests),
test/ui-rules.test.tsandbun run check.Not done: the frame-sampled New Tab click capture on a native build. That follows separately.
Changelog
Fixed: New Tab's Chats list and composer no longer shift, duplicate lanes, or show placeholder pills while loading.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Stabilizes the New Tab's Chats list and composer so they no longer shift, duplicate lanes, or show placeholder content after first paint.
clock.ts), so every page shows the same age for the same chat and updates it in the same frame.agentSessionId; the acpmux row keeps its name.chipMemory.ts) instead of grey skeleton pills, then replaces them with the session's values. The model chip names the model the chat will start on.Written for commit b5e8a8d. Summary will update on new commits.