Repository navigation
Conversation
Show working Droid subagents in the sidebar and thread list (web and mobile), keep a run-less subagent thread active before its provider thread exists, and carry the Task complexity as optional effort metadata for the hover card. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
jhomra21
force-pushed
the
feat/sidebar-working-subagents
branch
from
October 18, 2026 14:47
b3dab21 to
ab1a695
Compare
jhomra21
force-pushed
the
feat/provider-droid-next
branch
from
October 18, 2026 14:47
46c0130 to
7e42eba
Compare
Thread transfer impact
This comment will update automatically after the next completed run. |
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
jhomra21
marked this pull request as draft
October 30, 2026 02:32
…eat/sidebar-working-subagents
Move provider-reported effort fallback out of sidebar visibility PR #8 so each contribution addresses one problem. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…eat/sidebar-working-subagents
Provider instance names do not reliably identify the driver. Use the provider list for each environment to determine which working subagents are listed across clients. Built with GPT-6.1 Terra through Factory Droid in T3 Code. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…eat/sidebar-working-subagents
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…eat/sidebar-working-subagents
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…ebar-working-subagents
…eat/sidebar-working-subagents
…eat/sidebar-working-subagents
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This branch has not been deployed
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.
Problem
While a Factory Droid parent runs subagents in the background, the web sidebar and the mobile thread list show only the parent. The working subagents can't be opened from the list. A subagent that hasn't started its provider run also reads as idle, because its shell status comes only from runs.
Change
isThreadListedinpackages/client-runtime/src/state/subagentDisplay.tslists a subagent whose provider is Factory Droid while its runtime status isstarting,runningorwaiting. It checks the provider's driver kind, so renamed instances work. A settled Droid subagent, and every other provider's subagent, stays nested under its parent as before.Sidebar.logic.ts,Sidebar.tsx,useSidebarProjectGroups.ts,routeReveal.ts), the command palette's thread list (CommandPalette.logic.ts) and the mobile thread list and ordering (threadListV2.ts,thread-order.ts) all use that rule, so the lists match. Each caller passes the environment's provider list, which clients already load, so no wire change is needed.ProjectionStore.tsuses a subagent's run-lessroot_turnnode for its status until the subagent has a run. This covers boththreadShellFromProjectionand the SQL shell query, and the live-shell index now includes those threads. The SQL lookup goes through the existing(thread_id, run_id)index on projection nodes.shellRuntimeinmodels.tskeeps that status instead of returning no runtime for a thread without a run.Scope and approval
This depends on the native Factory Droid provider PR and falls under the same Ideas discussion. (Ideas discussion: pingdotgg#27369) It changes which threads the sidebar lists, so it needs that approval.
Against the provider branch, the diff is 20 files: the visibility rule and run-less status in client-runtime, the web sidebar and command palette, the mobile thread list and ordering, and the projection store, with their tests. Showing a subagent's reported effort in its hover card is a separate PR.
Verification
vp env exec --node 26.12.1 -- vp test run apps/web/src/components/Sidebar.logic.test.ts packages/client-runtime/src/state/entities.test.ts apps/server/src/orchestration-v2/ProjectionStore.test.ts apps/mobile/src/features/threads/threadListV2.test.ts: 191 passed. The tests cover listing only working Droid subagents, a Droid instance with a custom ID, a non-Droid instance whose ID contains "droid", settled subagents, and run-less status in both memory and SQL shells. The mobile ordering and action tests passed another 43.vp env exec --node 26.12.1 -- vp run check:changed: format, lint, knip, GraphQL, typecheck of 37 packages and React Compiler checks passed. Its tests had one failure, a provider-droid symlink test that needs Windows symlink permission (EPERM), and browser tests couldn't start because Playwright Chromium isn't installed here.c8a606c7b7, which also changedProjectionStore.ts, theapps/servertypecheck passed andProjectionStore.test.tspassed 45 tests.isThreadListedfilter madelists only active Droid subagentslist a settled Droid child and an active Codex child. Removing the run-less status madememory shells use run-less subagent root activityreadidleinstead ofrunning.These screenshots predate the upstream merge. "Before" ran on the provider branch, and "after" on a fork branch that includes this change. A Droid parent starts subagents in the background.
Built with Claude Opus 5.5 orchestrating GPT-6 Luna workers through Factory Droid in T3 Code. Upstream preparation by GPT-6.1 Terra and GPT-6 Luna, orchestrated by Claude Opus 5.5, through Factory Droid in T3 Code.