Skip to content

fix(projects): give every source root its own workspace row - #748

Merged
im-ian merged 1 commit into
mainfrom
fix/project-source-merge
Aug 5, 2026
Merged

fix(projects): give every source root its own workspace row#748
im-ian merged 1 commit into
mainfrom
fix/project-source-merge

Conversation

@im-ian

@im-ian im-ian commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Since #741 a project's source roots were flattened: every root's default folder rendered as bare sessions under the project header, and the roots themselves had no rows. That left a multi-root project with no place to act on a root — no way to start a session or a worktree in a source folder — and it made a single view mode look broken, since the sessions of two roots sat side by side while each root's workspace remembered its own panes/kanban/canvas choice.

Rows are back, and now the primary root gets one too: a project that spans several roots draws a workspace row per root, so a session is always started from the repository it will live in, and each row keeps its own view mode instead of borrowing a sibling's. A single-root project is untouched — its sessions still render flat under the project header, with no extra level of nesting.

Splitting a root back out into its own project stays limited to the extra source folders: the primary root is the project, and split_project_source already refuses it. A test pins that.

Verification

  • bun run typecheck — clean
  • bun run test — 1287 passed
  • npx playwright test tests/e2e/sidebar.spec.ts — 50 passed, including the rewritten multi-root row expectations
  • npx playwright test tests/e2e/{canvas,kanban,panes,project-settings,right-panel}.spec.ts — 95 passed
  • cargo test --lib splitting_refuses — 2 passed, covering the new primary-root guard

https://claude.ai/code/session_016KqTD6A7zkKAsoiXL1Qja2

Since #741 a project's source roots were flattened: every root's default
folder rendered as bare sessions under the project header, and the roots
themselves had no rows. That left a multi-root project with no place to
act on a root — no way to start a session or a worktree in a source
folder — and it made a single view mode look broken, since the sessions
of two roots sat side by side while each root's workspace remembered its
own panes/kanban/canvas choice.

Rows are back, and now the primary root gets one too: a project that
spans several roots draws a workspace row per root, so a session is
always started from the repository it will live in, and each row keeps
its own view mode instead of borrowing a sibling's. A single-root
project is untouched — its sessions still render flat under the project
header, with no extra level of nesting.

Splitting a root back out into its own project stays limited to the
extra source folders: the primary root is the project, and
`split_project_source` already refuses it. A test pins that.

Claude-Session: https://claude.ai/code/session_016KqTD6A7zkKAsoiXL1Qja2
@im-ian im-ian added the fix Bug fix label Aug 5, 2026
@im-ian
im-ian merged commit 817227e into main Aug 5, 2026
3 checks passed
@im-ian
im-ian deleted the fix/project-source-merge branch August 5, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant