Uh oh!
There was an error while loading. Please reload this page.
feat(ui): open linked subagents from stream tools, not sidebar - #2383
Merged
Conversation
Linked child sessions no longer nest under parents in the session rail. Open them from the spawn_subagent tool detail, and recover parent context from the titlebar trail (project › parent › child).
Linked children no longer render in the session rail, so the lazy-children sentinel class and data-subagent row styling are unused.
Filter promoted linked children out of the rail, keep open callbacks identity-stable for memoized TurnViews, and offer the same open control from agent_swarm tool detail. Tests and stories lock the new contracts.
Membership and active highlight now share projectRevisionLinkedSessionTree roots plus a flat include filter, so orphans stay visible, linked children never promote past filtered parents, and revision representatives highlight correctly. Drop resolveLinkedSessionRootId — it walked bare parent ids.
Assert the host open callback reaches SubagentPreview through ToolCallDetail when childSessionId is present, and stays hidden when the host omits it.
TitlebarSessionIdentity, SessionListPanel, and deriveSessionRail replace the hand-rolled trail and sidebar so the design lock tracks shipped seams.
deriveSessionRail now returns activeParentSession from the same tree walk as the rail highlight, so breadcrumbs track the revision representative rather than a second physical parent-id lookup.
No production caller remained after the desktop flat-rail projection; CLI uses projectRevisionLinkedSessionTree only. Drop the dead export and move desktop contracts fully onto deriveSessionRail.
data-subagent no longer exists on rows; remove the always-true check and trim a trailing blank line from the design-lock story.
Astro-Han
marked this pull request as ready for review
August 7, 2026 05:52
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Summary
Linked subagent sessions no longer appear as nested rows in the sidebar. The session rail lists only root/user sessions; opening a child switches the main chat column (option A) and the titlebar shows
project › parent › childso the parent stays one click away.Entry point is the existing collapsible spawn_subagent tool group: expand a row and use Open session in the subagent tool detail when
childSessionIdis present. No parallel roster, composer drawer, strip, or custom card system.Refs design lock in Storybook
Product/Subagent Sessions.Verification
npm run build -w @maka/coreand@maka/uinpm run build:main/build:rendererfor@maka/desktoppackages/core/dist/__tests__/subagent-session-parent.test.jspackages/ui/dist/__tests__/titlebar-session-identity.test.jspackages/ui/dist/__tests__/subagent-open-session.test.jsapps/desktop/dist/main/__tests__/session-project-view-contract.test.jsapps/desktop/dist/main/__tests__/stale-sessions.test.jsReview focus
childSessionsByParentId; tree projection still produces roots so children do not leak as top-level rows.resolveLinkedSessionRootId.SubagentPreview) to avoid fighting ChatToolCalls row expand.