Repository navigation
Add nested repo group imports - #2866
Merged
Merged
Conversation
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
…etup # Conflicts: # src/renderer/src/components/onboarding/OnboardingFlow.tsx # src/renderer/src/components/onboarding/use-onboarding-flow.ts # src/renderer/src/components/sidebar/WorktreeList.tsx
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
…etup # Conflicts: # src/renderer/src/components/floating-terminal/FloatingTerminalPanel.tsx
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
brennanb2025
force-pushed
the
brennanb2025/folder-setup
branch
from
May 27, 2026 22:55
6a68d47 to
fab3701
Compare
…etup # Conflicts: # .github/workflows/pr.yml
…etup # Conflicts: # src/main/ipc/repos.ts # src/main/persistence.ts # src/main/runtime/orca-runtime.ts # src/main/runtime/rpc/methods/repo.ts # src/preload/api-types.ts # src/renderer/src/store/slices/repos.ts # src/shared/types.ts
…etup # Conflicts: # config/scripts/install-electron-package-binary.mjs
Closed
5 tasks done
7 of 9 tasks
brennanb2025
added a commit
that referenced
this pull request
Aug 19, 2026
) (#15404) * fix(sidebar): render folder workspaces under every Group by mode (#15362) Folder-workspace rows were emitted in exactly one place, inside the repo-grouping branch of buildRows, so switching the sidebar to Status, PR status or None dropped them from every lane. Membership is now decided once, above the groupBy switch; a mode only chooses which lane a workspace lands in. Lane assignment is an exhaustive WorktreeGroupBy switch with no default clause, so a future grouping mode is a compile error here rather than a silent regression. Not a regression: the groupBy !== 'repo' gate predates folder workspaces by two weeks (#2866), and #5172 added folder-workspace emission below it, unreachable for non-repo grouping from its first commit. Also fixes four further paths where the same row kind went missing: - Flat mode gated its whole section on worktree count, so an account with only folder workspaces rendered nothing at all. - A collapsed folder-only lane header rendered globally instead of under its host section, because empty worktree lists yield undefined host counts. Host id maps now carry explicit empty arrays so the host fallback cannot leak global worktree ids. - Reveal resolved folder workspaces to project-group header keys only, so revealing one inside a collapsed lane never expanded it. Reveal now reuses the same lane function as grouping, expands the host header, and covers the agent-send path and the host-qualified row lookup. - The Clear Filters empty state ignored folder workspaces, so a folder-only account lost them whenever any filter was active. This one reproduced under Project grouping too. Behaviour deliberately unchanged: archived folder workspaces are still not filtered, matching current behaviour rather than making membership mode-dependent. Pinned folder workspaces still render in their natural lane rather than the Pinned section, now uniformly across modes. * fix(sidebar): count folder workspaces in host badges
paidaxingyo666
pushed a commit
to paidaxingyo666/Manta
that referenced
this pull request
Aug 21, 2026
…blyai#15362) (stablyai#15404) * fix(sidebar): render folder workspaces under every Group by mode (stablyai#15362) Folder-workspace rows were emitted in exactly one place, inside the repo-grouping branch of buildRows, so switching the sidebar to Status, PR status or None dropped them from every lane. Membership is now decided once, above the groupBy switch; a mode only chooses which lane a workspace lands in. Lane assignment is an exhaustive WorktreeGroupBy switch with no default clause, so a future grouping mode is a compile error here rather than a silent regression. Not a regression: the groupBy !== 'repo' gate predates folder workspaces by two weeks (stablyai#2866), and stablyai#5172 added folder-workspace emission below it, unreachable for non-repo grouping from its first commit. Also fixes four further paths where the same row kind went missing: - Flat mode gated its whole section on worktree count, so an account with only folder workspaces rendered nothing at all. - A collapsed folder-only lane header rendered globally instead of under its host section, because empty worktree lists yield undefined host counts. Host id maps now carry explicit empty arrays so the host fallback cannot leak global worktree ids. - Reveal resolved folder workspaces to project-group header keys only, so revealing one inside a collapsed lane never expanded it. Reveal now reuses the same lane function as grouping, expands the host header, and covers the agent-send path and the host-qualified row lookup. - The Clear Filters empty state ignored folder workspaces, so a folder-only account lost them whenever any filter was active. This one reproduced under Project grouping too. Behaviour deliberately unchanged: archived folder workspaces are still not filtered, matching current behaviour rather than making membership mode-dependent. Pinned folder workspaces still render in their natural lane rather than the Pinned section, now uniformly across modes. * fix(sidebar): count folder workspaces in host badges
dallascrilley
pushed a commit
to dallascrilley/orca
that referenced
this pull request
Aug 27, 2026
…blyai#15362) (stablyai#15404) * fix(sidebar): render folder workspaces under every Group by mode (stablyai#15362) Folder-workspace rows were emitted in exactly one place, inside the repo-grouping branch of buildRows, so switching the sidebar to Status, PR status or None dropped them from every lane. Membership is now decided once, above the groupBy switch; a mode only chooses which lane a workspace lands in. Lane assignment is an exhaustive WorktreeGroupBy switch with no default clause, so a future grouping mode is a compile error here rather than a silent regression. Not a regression: the groupBy !== 'repo' gate predates folder workspaces by two weeks (stablyai#2866), and stablyai#5172 added folder-workspace emission below it, unreachable for non-repo grouping from its first commit. Also fixes four further paths where the same row kind went missing: - Flat mode gated its whole section on worktree count, so an account with only folder workspaces rendered nothing at all. - A collapsed folder-only lane header rendered globally instead of under its host section, because empty worktree lists yield undefined host counts. Host id maps now carry explicit empty arrays so the host fallback cannot leak global worktree ids. - Reveal resolved folder workspaces to project-group header keys only, so revealing one inside a collapsed lane never expanded it. Reveal now reuses the same lane function as grouping, expands the host header, and covers the agent-send path and the host-qualified row lookup. - The Clear Filters empty state ignored folder workspaces, so a folder-only account lost them whenever any filter was active. This one reproduced under Project grouping too. Behaviour deliberately unchanged: archived folder workspaces are still not filtered, matching current behaviour rather than making membership mode-dependent. Pinned folder workspaces still render in their natural lane rather than the Pinned section, now uniformly across modes. * fix(sidebar): count folder workspaces in host badges
9 tasks done
enrick-dev
pushed a commit
to enrick-dev/orca
that referenced
this pull request
Oct 15, 2026
Co-authored-by: Orca <help@stably.ai>
enrick-dev
pushed a commit
to enrick-dev/orca
that referenced
this pull request
Oct 15, 2026
…blyai#15362) (stablyai#15404) * fix(sidebar): render folder workspaces under every Group by mode (stablyai#15362) Folder-workspace rows were emitted in exactly one place, inside the repo-grouping branch of buildRows, so switching the sidebar to Status, PR status or None dropped them from every lane. Membership is now decided once, above the groupBy switch; a mode only chooses which lane a workspace lands in. Lane assignment is an exhaustive WorktreeGroupBy switch with no default clause, so a future grouping mode is a compile error here rather than a silent regression. Not a regression: the groupBy !== 'repo' gate predates folder workspaces by two weeks (stablyai#2866), and stablyai#5172 added folder-workspace emission below it, unreachable for non-repo grouping from its first commit. Also fixes four further paths where the same row kind went missing: - Flat mode gated its whole section on worktree count, so an account with only folder workspaces rendered nothing at all. - A collapsed folder-only lane header rendered globally instead of under its host section, because empty worktree lists yield undefined host counts. Host id maps now carry explicit empty arrays so the host fallback cannot leak global worktree ids. - Reveal resolved folder workspaces to project-group header keys only, so revealing one inside a collapsed lane never expanded it. Reveal now reuses the same lane function as grouping, expands the host header, and covers the agent-send path and the host-qualified row lookup. - The Clear Filters empty state ignored folder workspaces, so a folder-only account lost them whenever any filter was active. This one reproduced under Project grouping too. Behaviour deliberately unchanged: archived folder workspaces are still not filtered, matching current behaviour rather than making membership mode-dependent. Pinned folder workspaces still render in their natural lane rather than the Pinned section, now uniformly across modes. * fix(sidebar): count folder workspaces in host badges
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.
Summary
Design
tmp/folder-setup-design.md.Review
connectionIdthrough SSH remote add-project nested imports.Tests
pnpm run typecheckpnpm run lintgit diff --checkpnpm vitest run --config config/vitest.config.ts src/main/ipc/runtime.test.ts src/main/project-groups/nested-repo-discovery.test.ts src/main/project-groups/nested-repo-import.test.ts src/shared/project-groups.test.ts src/main/ipc/repos-remote.test.ts src/main/runtime/rpc/methods/repo.test.ts src/renderer/src/store/slices/repos-project-groups.test.ts src/renderer/src/components/sidebar/worktree-list-groups.test.ts src/renderer/src/components/onboarding/RepoStep.test.tsxpnpm run test:e2e -- tests/e2e/folder-setup.spec.tsManual Validation
Orca: brennanb2025/folder-setup/Users/thebr/orca/workspaces/orca/folder-setup/Users/thebr/source/repos/Stably/orca-setup-script-cases/microservices-platform:apps/web,packages/sdk,services/api,services/billing.node_modules/ignored-git-repo.microservices-platform,apps,packages,serviceswith expected project-group ordering.setup-demo-has-orca-setupreturnedselectedPathKind: git_repoand no nested repo import candidates.adminandworkerrepos without project-group membership and with no group delta.window.api.runtime.call({ method: 'projectGroup.scanNested' })found tempgatewayandjobsrepos.projectGroup.importNestedimported both intoruntime-platformwith orders[0, 1].projectGroup.listthroughruntime:call.SSH Validation
pnpm build:relayssh localhost.ssh:connectreachedconnected.openssh-server,git,nodejs,npm/work/platform/apps/web/work/platform/services/api/work/platform/services/billing/work/platform/node_modules/ignoredwindow.api.projectGroups.scanNested/importNestedwithconnectionId:web,api,billing./work/platform/node_modules/ignored.connectionIdinto recursive groupsremote-platform,apps,servicesand expected orders[0],[0, 1].find /work/platform -maxdepth 4 -name .gitshowed all remote fixture repos, including the ignored repo.git status --short --branchreturned## masterforapps/web,services/api, andservices/billing.Gaps