Repository navigation
feat(performance): add monitor UI and shared process attribution - #955
Merged
Merged
Conversation
Exclude the sampler process itself, bind session roots to backend and OS process identity, reserve process transport capacity at the declared fleet limit, and keep the last valid page across helper restarts. Preserve freeze diagnostics, pane activity state, and valid pagination while sharing the sampler.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Ordinary users can open Performance Monitor from Settings → Performance, the command picker, or the existing header control. One overview shows CPU, approximate RSS, event-loop delay, window health, and operation histograms; a paged process table includes background and detached sessions.
Native sampling runs in the existing monitor utility process with bounded topology and PID/creation-time CPU intervals. Shared descendants are counted once; unavailable and truncated coverage stay explicit. Existing pane/freeze diagnostics read the same cache, and opening the monitor never starts extra native samplers.
Closes #951. Part 3 of #944, stacked on #953. Incidents, durable history, and explicit profiles follow in the remaining stages.
Validation: full main/renderer TypeScript check and production build passed. Nineteen final focused tests cover attribution, PID reuse, maximum-fleet transport, restart caching, parser limits, compatibility status, pagination and UI lifecycle. A real isolated Electron helper smoke passes native discovery and operation acknowledgement (63,700,992 bytes RSS in that sample, not a whole-app budget qualification). Accessibility-tree inspection confirms the overview/table; browser screenshot inspection was interrupted by an unattached debugger.
Two independent Agent Code orchestration reviews found valid process identity, ghost-process, restart-cache, freeze-evidence, fleet-starvation, pagination, pane-status, and feature-reference issues. This head fixes all of them with regression coverage; reviewers are verifying the final diff. CI reruns on this head.