Skip to content

perf(workbench): reduce resident rendering work and harden terminal lifecycle - #3775

Merged
GCWing merged 1 commit into
mainfrom
gcwing/workbench-performance-follow-up
Nov 6, 2026
Merged

GCWing merged 1 commit into
mainfrom
gcwing/workbench-performance-follow-up

Conversation

@GCWing

@GCWing GCWing commented Nov 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Reduce work during pane resizing and scene changes, show the local MiniApp library independently of market requests, and suspend hidden display timers and decorative playback.
  • Keep FlowChat scroll follow from repeatedly scheduling frames when WebView coordinates round, and reuse the live input width for compact composers.
  • Keep PTY size synchronized through interrupted resizes, reap naturally exited processes after draining output, and route xterm redraws through the existing render pause gate.
  • Fix native WebDriver frame and element handling, pass structured arguments to the macOS evaluator, and move macOS screenshot encoding off the main thread.
  • Retain the performance fixtures, measurements, and outstanding acceptance criteria from the follow-up to perf(flowchat): bound long-session rendering and preserve scroll stability #3747.

Type and Areas

Performance, bug fixes, and diagnostics across the Web UI, design system, terminal service, and native WebDriver adapter.

Motivation / Impact

Reduce main-thread work in frequently used desktop flows while retaining the state and output of inactive panes. The wrap-up report records the scope of each measurement and the performance budgets still open for Browser, terminal, and other workloads.

Verification

  • Rebased on current main. pnpm run fmt:rs, pnpm install --frozen-lockfile --prefer-offline, and the repository object-size check passed.
  • cargo test --locked -p terminal-core --lib pty::process::tests passed 6 tests. cargo test --locked -p openbitfun-webdriver --lib platform::capture::imp::tests passed 3 tests.
  • pnpm run check:web, pnpm run check:repo-hygiene, and changed-source ESLint passed. pnpm run motion:audit completed.
  • Focused Web UI Vitest passed all 21 changed test files. Design system Spinner, brand, and registry checks passed 13 tests. The changed E2E script unit suite passed 27 tests, including the pinned xterm RenderService tests. The changed E2E JavaScript files passed node --check.
  • git diff --check passed for source and documentation. The generated pnpm patch contains unified-diff context lines.
  • After rebasing onto a327a3f1e (fix(web-ui): keep tab shortcuts scoped to the focused region #3774), restored the shortcut import used by document find alongside main's new tab-close hook. Web UI type-check and 198 focused tests across 10 files passed, including shortcut routing, pane layout, composer layout, and history restore.
  • Earlier macOS measurements in the reports refer to their recorded snapshots.

Reviewer Notes

  • AI-assisted. Earlier native results are recorded in the reports. This submission uses automated non-interactive checks. Live SSH/Docker, Remote Control, Peer Device Mode, and Detached Dispatch were outside the exercised scenarios.
  • The pinned xterm patch retains both runtime bundles and the updated ESM source map. The UMD source-map reference was removed to stay within the repository's Git object limit.
  • The Browser screenshot and hidden-terminal redraw changes have scoped evidence in the reports. Their broader performance budgets are still open.

Checklist

  • Changes and retained evidence are within the performance follow-up scope.
  • Verification scope and outstanding acceptance criteria are recorded.
  • Owning documentation and dependency patch provenance are included.

@GCWing
GCWing force-pushed the gcwing/workbench-performance-follow-up branch from f94a29c to af01907 Compare November 6, 2026 10:08
@GCWing
GCWing merged commit 7add8ec into main Nov 6, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant