Skip to content

fix(desktop): expose child sessions and restore direct navigation - #275

Draft
wangtsiao wants to merge 1 commit into
7df-lab:mainfrom
wangtsiao:feat/desktop-subagent-lifecycle-20261108
Draft

wangtsiao wants to merge 1 commit into
7df-lab:mainfrom
wangtsiao:feat/desktop-subagent-lifecycle-20261108

Conversation

@wangtsiao

@wangtsiao wangtsiao commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Desktop hides child sessions from the main sidebar and previously had no child roster. Cold child lookup also scanned a root-only list, so an existing child could be reported missing after restart or a missed event.

  • Add a compact Subagents popover in the existing session header, using current style tokens and icon sizing.
  • List saved direct children from canonical session/list with includeChildren: true; distinguish working, approval/input waits, queued work and idle. Idle is explicitly not a completion claim.
  • Open the selected child's existing conversation. Resolve cold IDs through session/read, without scanning the root roster or resuming work just to identify the session.
  • Read only on open/refresh/check-more. Bound each scan to five 200-row pages, expose remaining pages, reject repeated cursors, prevent overlapping refreshes, and discard stale results after close/navigation.

Relationship to #272

Independent Desktop slice based on main 4228c9dc. No runtime or public Native schema change, and no prerequisite code copied from #272. Its Python collect/progress/end-turn APIs are not exposed as invented UI RPCs. This is not a complete subagent control center.

Validation

  • 22 new SDK, hook and mounted real Base UI popover regression cases passed.
  • The cold-child regression fails against main's original SDK and passes with this change.
  • Full Desktop suite: 948 passed, 1 existing macOS tray skip, 0 failed with a writable test XDG_CONFIG_HOME.
  • TypeScript tsc --noEmit: passed.
  • Canonical protocol generation: passed; generated Native TS/schema match the tracked TUI artifacts exactly.
  • electron-vite build, new-file Biome lint, and git diff --check: passed.
  • Independent final static review found no remaining blocker.
  • Exact head 9355edbc351651ca6991b1216f06611f91feadf5: 8 successful checks, 10 path-filter skips, no failures. Desktop CI and all six runtime bundles passed. Unaffected Rust/TUI/kernel jobs were skipped, not revalidated.
  • Merge-tree compatibility with feat(rlm): complete subagent controls and independent root sessions #272 at 05495fc4: clean. This is a conflict check, not a combined runtime end-to-end test.

Limits

This is an on-demand snapshot, not continuously live polling. Native pagination is not transactional and has no parent filter; each page still enumerates the server roster, so the page cap does not bound total server enumeration. No completion/recovery inference, retained-answer collection, progress-note display, bulk steering/cancellation, model calls or approval-policy changes.

Chromium visual verification could not run because this container denies its required socket operation, including after an allowed escalation. Real popover DOM tests verify close/Escape, focus restoration and navigation; packaged Electron and screenshot checks are not claimed.

Details: docs/desktop-subagent-roster.md. Published to the user fork first. Draft for review; no merge, auto-merge or deployment.

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