Expandable process groups in the Processes tab - #2
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds inline expand/collapse for grouped rows in the Processes tab, showing member processes indented under the group and keeping list/member ordering stable during pointer/keyboard interactions.
Changes:
- Introduces a generic order-pinning utility (
pinOrder) plus a reusable React hook (useOrderPin) for pinned lists (groups, detail members, inline expanded children). - Adds inline disclosure UI to grouped process rows and factors member rendering into a shared
MemberRowcomponent; centralizes member ranking viarankMembers. - Tightens process-action disabling to treat MoStats direct child helpers as “self” and hardens
formatStartTimeagainst out-of-range dates.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/process-list.test.ts | Removes old pinGroupOrder tests; needs new coverage for pinOrder. |
| tests/unit/process-action-service.test.ts | Adds coverage for blocking quit/force-quit on MoStats helper child processes. |
| tests/unit/format.test.ts | Adds test for out-of-range epoch handling in formatStartTime. |
| src/renderer/lib/format.ts | Returns UNAVAILABLE for invalid/out-of-range Date conversions. |
| src/renderer/domain/process-list.ts | Replaces pinGroupOrder with generic pinOrder; adds groupKey. |
| src/renderer/domain/process-detail.ts | Exports buildMember; adds rankMembers and memberPid. |
| src/renderer/components/processes/use-order-pin.ts | New hook to hold row identity order steady while active. |
| src/renderer/components/processes/process-row.tsx | Adds inline expand chevron and renders ranked member children via MemberRow. |
| src/renderer/components/processes/process-list.tsx | Uses useOrderPin, tracks expanded group keys, updates keyboard navigation targeting row buttons. |
| src/renderer/components/processes/process-explorer-view.tsx | Passes sort and icons into ProcessList; updates focus-first-row selector. |
| src/renderer/components/processes/process-detail.tsx | Uses shared MemberRow; pins member order while interacting; adds resetKey. |
| src/renderer/components/processes/member-row.tsx | New shared member row component for detail + inline expanded children. |
| src/main/processes/process-action-service.ts | Adds isSelfProcess and uses it in disabledReasonFor. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
src/renderer/components/processes/process-detail.tsx:405
- Using only
pidas the React key can cause incorrect component reuse if a PID is recycled while the detail view is open.DetailMemberincludesstartedAtUnixMs; incorporate it into the key to avoid collisions across process lifetimes.
{members.map((member) => (
<li key={member.pid}>
<MemberRow member={member} onOpen={onOpenMember} />
</li>
vladimir-ikryanov
approved these changes
Jun 17, 2026
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.
Grouped rows in the Processes tab now have an inline expand chevron. Clicking it reveals the group's member processes indented beneath the row, ranked by the active metric.