🤖 perf: automate workspace-open perf + React render profiling #2397
+1,120
−204
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.
Summary
Automate workspace-open performance profiling in e2e so runs produce repeatable Chrome/Electron and React artifacts without manual DevTools interaction.
Background
We needed repeatable perf coverage for large-history workspace load flows, plus machine-readable artifacts that can run in CI/nightly and be compared over time.
Implementation
tests/e2e/utils/perfProfile.ts) that captures:perf-summary.jsontests/e2e/utils/historyFixture.ts):small,medium,large,tool-heavy,reasoning-heavytests/e2e/scenarios/perf.workspaceOpen.spec.ts) that:artifacts/perf/**src/browser/utils/perf/reactProfileCollector.ts) and preload/browser flag plumbing (MUX_PROFILE_REACT) so e2e can collect React render data.chat-panechat-pane.headerchat-pane.transcriptchat-pane.inputmake test-e2e-perf.github/workflows/perf-profiles.ymlValidation
make fmtmake typecheckmake lintmake static-checkMUX_E2E_PERF_PROFILES=small xvfb-run -a make test-e2e-perfRisks
Low-to-moderate. Changes are mostly test/perf infrastructure. Runtime impact is gated behind
window.api.enableReactPerfProfile/MUX_PROFILE_REACT, so normal user flows should remain unaffected.Generated with
mux• Model:openai:gpt-5.3-codex• Thinking:xhigh• Cost:$0.00