Repository navigation
Agent pane: move VirtualTranscript out of App.tsx into its own module (pure move) - #36620
Conversation
|
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)
Gallery before/after for
States
Pick other states with a Passes: CI passes on CI passes on Written by web and size checks: green Shipped in:
|
|
Found 22 test failures on Blacksmith runners: Failures
...and 12 more test failures. View all on Blacksmith Blacksmith runners detected OOM events on the following jobs:
|
|
Review (codex, router-review): SHIP at edd496c Reviewer: codex gpt-6.1-sol xhigh, fast tier. Follow-ups: 1. They land as checklist items in this PR's one follow-up tracking issue in this repo ( SHIP at edd496c Visual verdict: no images; Leo tries the build
Follow-ups: F1 — update the two stale |
… (pure move) VirtualTranscript and everything in App.tsx only it uses (RowFrame and its memo comparison, the drawn-height and scroll-follow helpers and constants, JumpToLatest, OlderRowFade, TranscriptContext, ReadOnlyBoundary) move unchanged into webviews/src/agent-session/acpmux/VirtualTranscript.tsx, trailing comments included. App.tsx imports back NO_ROWS, rowKind and ScrollAnchor and re-exports VirtualTranscript, FOLLOW_BOTTOM_DEADBAND_PX, SCROLL_ANCHOR_SETTLE_MS and ScrollAnchor, so every importer keeps working. Declarations gain only the `export` keyword their new module needs. Tests and checks that read the moved code by path follow it: drawn-height-priority, popover-instant-open, transcript-parked-stream's probe plugin and check-switch-fetches. Gallery covers name VirtualTranscript.tsx. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-a345f4d82727e281eabe
edd496c to
fbbd9b5
Compare
|
Review (codex, router-review): SHIP at fbbd9b5 Reviewer: codex gpt-6.1-sol xhigh, fast tier. SHIP at fbbd9b5 Visual verdict: no images; Leo tries the build The moved body matches the deleted code after whitespace/export normalization. Import/export checks and switch-fetch checks pass. Follow-ups: none |
#36620 moved VirtualTranscript out of App.tsx into VirtualTranscript.tsx (a pure move). This PR's App.tsx change, which removes the hidden page-back walk on reopen (seeking, seekExpired, OPEN_AT_PAGE_MS/OPEN_AT_SEEK_MS, data-seeking), is re-applied hunk by hunk to VirtualTranscript.tsx; App.tsx takes base's side. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-4d1cee13e8adbc915f45
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-11-05: "i meant can you do all of htem" (the ranked shipping list, item 3: "Split the eight hottest files:
App.tsxinto modules"). This is slice 2 of theacpmux/App.tsxsplit, after #36363. It's a pure move with no behavior change.What moves
VirtualTranscript, the transcript's virtualized list, plus everything in App.tsx that only it uses, moves unchanged intowebviews/src/agent-session/acpmux/VirtualTranscript.tsx. App.tsx goes from 15046 to 10935 lines. The moved code:RowFrameand its memo comparison (sameRowFrame,sameReferenceScope,sameFields), the drawn-height helpers (DrawnHeight,sameDrawn,changesDrawn,drawnHeightOf), the follow and scroll helpers and their constants,JumpToLatest,OlderRowFade,ReadOnlyBoundaryandTranscriptContext. In the last 14 days this region took the second-most commits in App.tsx (92 commits touched theVirtualTranscriptbody alone).App.tsx imports back
NO_ROWS,rowKindandScrollAnchor. It re-exportsVirtualTranscript,FOLLOW_BOTTOM_DEADBAND_PX,SCROLL_ANCHOR_SETTLE_MSandScrollAnchor, so every importer (ChiefWeb, GuestPage, the galleries, tests) keeps working unchanged. Nothing is renamed. The only edit inside moved code is theexportkeyword a declaration needs in its new module. Trailing comments move with their lines (the first push dropped one// motion-allow:comment; the move tool is fixed and nothing else was lost).Outside the move, three things point at the code's new home:
test/drawn-height-priority.test.tsxreadssameDrawnandflushDrawnfromVirtualTranscript.tsx.test/popover-instant-open.test.tslists the four Web Animations calls underVirtualTranscript.tsx.test/transcript-parked-stream.test.ts's probe plugin instrumentsVirtualTranscript.tsx.scripts/cmux-next/check-switch-fetches.pyallows the transcript's movedvisibilitychangelistener under its new file. It clears the rows still entering when the page hides and reads no data.Gallery
coverslines nameVirtualTranscript.tsx#VirtualTranscript. The two staleApp.tsx#RowFramecovers (RowFramewas never exported) now cover the wholeVirtualTranscript.tsx.To review it as a move:
git show --color-moved=dimmed-zebra --color-moved-ws=allow-indentation-change HEAD.Open PRs whose App.tsx hunks this relocates
Git's rename detection doesn't follow a partial move. For each of these, re-apply the hunk in
VirtualTranscript.tsx:streamedOnlyhelper and theVirtualTranscript/RowFrame/TranscriptContexthunks go inVirtualTranscript.tsx. ItsAcpmuxPanehunks stay in App.tsx.VirtualTranscriptreturn hunk goes inVirtualTranscript.tsx.None of Leo's open PRs touch this region. That's from the open-PR read at the start of this series; the live
pr-overlapread was refused by the host's GitHub quota at push time.Verification
bun run checkinwebviews/: passes.bun run testover the 1,147 test files that touch the agent pane, App.tsx or the gallery: everything passes exceptgallery-coverage,theme-colorsandreact-compiler-skips-optimized-deps. All three fail the same way on base locally.scripts/cmux-next/prepush-gate.py: no new violations.transcript-parked-stream,motion-scaleandaccent-glass-invariants-3pass at this head.popup-surfaceandnew-tab-paste-attachmentsfail the same tests on base locally too.Changelog
none
Agent session: agent session
🤖 Generated with Claude Code