Skip to content

feat(sidebar): list Mission children under their parent - #141

Draft
xikimay wants to merge 2 commits into
mainfrom
feat/sidebar-groups
Draft

xikimay wants to merge 2 commits into
mainfrom
feat/sidebar-groups

Conversation

@xikimay

@xikimay xikimay commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Why

A parent that opens review worktrees through a Mission lists its children flat, in opening order, among the rest of the project: nothing says which ones it opened, and they push the other cards down.

How

  • Design in docs/sidebar-groups.md. A Mission child is listed indented (12pt) under its parent when both are open in the same project and section. WorkspaceStore.visibleWorkspaceIndices gives the depth-first order, so the cards, the rail, the workspace strip, ⌘↑/↓ and the close fallback follow it.
  • A row under the parent folds its children: ▾ 3 workspaces, folded ▸ 3 · 1 waiting · ✕ 1 · 2 done · 1 working (✕ is red CI on an open PR). The fold is saved in state.json (isGroupFolded, absent in old files reads false).
  • A folded group still lists a child on screen or asking the user, without Allow / Deny, like the folded INACTIVE section. ⌘↑/↓ steps over a folded group, closing a folded parent selects the next card, a new child unfolds its parent.
  • Move Up / Down and drag move among siblings and carry the children. A closed or parked parent leaves its children in its place. Missions load before the restore, so the first layout is grouped.
  • Approval text wraps at 26 characters (was 28) so an indented card never clips it.
  • Manual folders are a follow-up PR.
  • Reviews: /code-review, a premortem and an adversarial pass, fixes in 0a216ba. 18 new tests, full suite green (2441).

🤖 Generated with Claude Code

xikimay and others added 2 commits October 8, 2026 19:45
A parent that opens review worktrees through nirux-worktree listed every
child flat, in opening order. docs/sidebar-groups.md: a workspace opened
as a Mission child now sits under its parent, indented, when both are open
in the same project and section.

The order lives in WorkspaceStore.visibleWorkspaceIndices (depth first),
so the cards, the rail, the workspace strip and Cmd+Up/Down agree. A row
under the parent folds its children ("▸ 3 · 1 waiting · ✕ 1 · 2 done"),
saved in state.json; a folded child on screen or asking the user stays
listed, as in the folded INACTIVE section. Move and drag act among
siblings, children following. Approval text wraps at 26 characters so an
indented card never clips it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
From the review passes on the first commit:

- The store keeps the sidebar's order: a Mission child goes after its
  parent's group, and a move carries the whole group. A closed parent left
  its children at the bottom of the list, the strip sliding with them.
- A new child unfolds its parent, instead of hiding under an old fold.
- Cmd+Up/Down steps over a folded group, and closing a folded parent
  selects the next card rather than a hidden child.
- Missions load before the restore: the first layout is already grouped.
- No summary row when the children can't show (a parent in the folded
  INACTIVE section, listed for being on screen). Folding keeps the row
  under the pointer, like the INACTIVE header. A child's drop line starts
  at its card.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xikimay xikimay changed the title feat/sidebar groups feat(sidebar): list Mission children under their parent Oct 8, 2026
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