Skip to content

feat(parallel-agents-ui): scaffold side-bar subagent view#27

Merged
kanywst merged 6 commits into
mainfrom
feat/parallel-agents-ui
May 25, 2026
Merged

feat(parallel-agents-ui): scaffold side-bar subagent view#27
kanywst merged 6 commits into
mainfrom
feat/parallel-agents-ui

Conversation

@kanywst
Copy link
Copy Markdown
Member

@kanywst kanywst commented May 24, 2026

Goal

Reserve the workbench slot for the side-bar view that surfaces running and completed subagents. Document the design and the deliberate counter-positioning vs Cursor 3 / Antigravity 2.0 / Windsurf Cascade.

Design: `docs/zeus-parallel-agents-ui.md`

Counter-positioning

The view is deliberately not the editor's home surface. Market signal: Pragmatic Engineer Feb 2026 dev survey — Claude Code "most loved" 46%, more than 2x Cursor. Many senior devs prefer agents as a tool, not as a workflow's center. Zeus inherits the vscode editor home, parallel agents are a side bar.

Depends on

#26 feat/agent-sdk — `IAgentRuntime` event stream

Reserves 'src/vs/workbench/contrib/parallelAgents/' for the
side-bar view that surfaces running and completed subagents, and
documents the design at 'docs/zeus-parallel-agents-ui.md'.

The view is deliberately **not** the editor's primary surface. This
is Zeus's counter-positioning vs Cursor 3 / Antigravity 2.0 /
Windsurf Cascade, all of which made agent management the home
screen. Market signal (Pragmatic Engineer Feb 2026, Claude Code
most-loved 46%) suggests many senior developers prefer agents as a
tool rather than as their workflow's center.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 24, 2026

Warning

Review limit reached

@kanywst, we couldn't start this review because you've used your available PR reviews for now.

Your plan includes 1 review of capacity. Refill in 60 minutes.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1babc1f6-8431-4252-b60b-d951cfe56994

📥 Commits

Reviewing files that changed from the base of the PR and between b82d214 and a00a7f6.

📒 Files selected for processing (3)
  • docs/zeus-parallel-agents-ui.md
  • src/vs/workbench/contrib/parallelAgents/README.md
  • src/vs/workbench/contrib/parallelAgents/common/parallelAgents.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/parallel-agents-ui

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces documentation and a placeholder for the Parallel Agents UI, which provides a sidebar view for managing concurrent subagents without making it the primary editor interface. The documentation outlines the UI placement, behavior, and integration with the agent SDK. Feedback was provided regarding a keybinding conflict for focusing the agent list, as the proposed shortcut overlaps with a standard VS Code command.

Comment thread docs/zeus-parallel-agents-ui.md Outdated
@kanywst kanywst marked this pull request as ready for review May 24, 2026 11:56
Ctrl+Shift+L collides with editor.action.selectHighlights ('Select All
Occurrences'), a core multi-cursor keybinding. Use a chord instead
('Ctrl+K Ctrl+A'), which is the vscode pattern for less-frequent
actions and doesn't clash with default bindings.
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces documentation for the Parallel agents UI, outlining its design philosophy as a non-primary sidebar view and defining its behavior and file contracts. Feedback suggests correcting an incorrect relative path in the README and adding the necessary registration logic or scaffolding to actually reserve the workbench slot as stated in the documentation.

Comment thread src/vs/workbench/contrib/parallelAgents/README.md Outdated
Comment thread docs/zeus-parallel-agents-ui.md
…th runtime

- README path: 5 ../ segments, not 6 (src/vs/workbench/contrib/<>
  is 5 deep from repo root).
- Explicitly say the .contribution.ts isn't in this PR because it
  subscribes to IAgentRuntime, which is itself scaffolded in
  feat/agent-sdk. Wiring up an empty view that subscribes to an
  empty runtime adds noise without coverage; we wait for the
  runtime to land.
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces documentation and a placeholder directory for the 'Parallel Agents' UI, establishing a design philosophy where agents reside in a side bar rather than the primary editor view. Feedback suggests correcting the ASCII diagram in the documentation to accurately reflect VS Code's vertical side bar and bottom status bar layout. Additionally, it is recommended to include actual registration code, such as a contribution file, to formally reserve the workbench slot instead of relying solely on a README placeholder.

Comment thread docs/zeus-parallel-agents-ui.md Outdated
Comment thread src/vs/workbench/contrib/parallelAgents/README.md Outdated
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds design documentation and a placeholder for the Parallel agents UI, which provides a non-intrusive interface for managing concurrent subagents. Feedback suggests using standard VS Code terminology for the auxiliary bar, resolving keybinding conflicts, and defining component IDs in a shared TypeScript file instead of documentation to improve type safety.

Comment thread docs/zeus-parallel-agents-ui.md Outdated
Comment thread src/vs/workbench/contrib/parallelAgents/README.md Outdated
Comment thread docs/zeus-parallel-agents-ui.md Outdated
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 25, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request establishes the architectural design and initial identifier constants for the Parallel Agents UI, which is intended to reside in the VS Code auxiliary bar. The changes include a comprehensive design document, a contribution README, and a set of stable identifiers for views and commands. The review feedback focuses on improving the user experience by refining keyboard shortcuts to follow VS Code idioms, correcting terminology inconsistencies in the documentation, and standardizing command ID naming conventions to align with internal patterns.


## Behavior

- New agent: `Ctrl+K Ctrl+N` (chord) opens a quick-pick of skills from `.zeus/skills/`, runs the chosen one. The earlier draft used `Ctrl+Shift+A`, but that clashes with VS Code's `toggleSearchEditorContextLines` in the Search Editor; using a chord keeps the new shortcut out of every default scope
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The shortcut Ctrl+K Ctrl+N (and Ctrl+K Ctrl+A mentioned later) uses a chord where the second key also requires the Ctrl modifier. In VS Code, chords are more commonly implemented as Ctrl+K <key> (e.g., Ctrl+K N). Requiring the modifier for the second key is less common and can be slightly more cumbersome for users. Consider if Ctrl+K N and Ctrl+K A would be more idiomatic.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both styles are established VS Code conventions — see core defaults Ctrl+K Ctrl+S (Open Keyboard Shortcuts), Ctrl+K Ctrl+B (Toggle Side Bar), Ctrl+K Ctrl+I (Show Hover), Ctrl+K Ctrl+W (Close All Editors). Keeping Ctrl+ on the second key matches that family and keeps the cognitive model uniform with the surrounding workbench shortcuts. We'd be the odd one out using Ctrl+K N here.

Comment thread docs/zeus-parallel-agents-ui.md Outdated
## Acceptance criteria (real impl)

- [ ] Quick-pick of skills picks one and starts it
- [ ] Side bar shows live tool-call timeline per agent
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Inconsistency in terminology: this line refers to the 'Side bar', but the design (line 9) explicitly clarifies that this is an 'auxiliary bar view' and that the 'side bar' is the left-side container. Updating this to 'Auxiliary bar' or 'View' would maintain consistency with the established definitions.

Suggested change
- [ ] Side bar shows live tool-call timeline per agent
- [ ] Auxiliary bar shows live tool-call timeline per agent

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in a00a7f6 — that line now reads 'Auxiliary bar'. Good catch.

- [ ] Done agents persist in the view for the session
- [ ] No auto-open behavior on startup
- [ ] File edits are shown as diff, never applied without user "Apply"
- [ ] Keyboard: `Ctrl+K Ctrl+N` new agent, `Ctrl+K Ctrl+A` focus list — both chords, to avoid VS Code defaults (`Ctrl+Shift+A` is `toggleSearchEditorContextLines`; `Ctrl+Shift+L` is `editor.action.selectHighlights`)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The shortcut Ctrl+K Ctrl+A for focusing the list might lead to accidental triggers. Ctrl+A is the universal 'Select All' command. If a user accidentally initiates the Ctrl+K chord prefix, their next attempt to select text will unexpectedly shift focus to the Parallel Agents view. Consider using a less common key combination for this chord, such as Ctrl+K L or Ctrl+K P.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The risk of an accidental Ctrl+K chord-prefix is real but bounded — the chord times out in ~1s, so a stray Ctrl+A after Ctrl+K will trigger select-all as usual. Aligning with the surrounding Ctrl+K Ctrl+<X> family in VS Code's defaults (Ctrl+K Ctrl+S, Ctrl+K Ctrl+B, etc.) outweighs the small risk; switching to a non-chord modifier combo would re-introduce the conflicts with core shortcuts that we just dodged.

Comment on lines +17 to +18
export const PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.new';
export const PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.focus';
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To align with VS Code's internal naming conventions and reduce the risk of ID collisions, consider adding a .command segment to the command identifiers. This helps distinguish them from view or container IDs at a glance.

Suggested change
export const PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.new';
export const PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.focus';
export const PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.command.new';
export const PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.command.focus';

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VS Code's own conventions don't include a .command segment — core commands are editor.action.formatDocument, workbench.action.openSettings, workbench.view.explorer, etc. The view/container/command split is conveyed by the constant name (PARALLEL_AGENTS_VIEW_ID vs PARALLEL_AGENTS_COMMAND_NEW), not by the string ID. Following VS Code's prevailing pattern here to keep collision risk against built-in commands (which all flatly use <namespace>.<verb>) low.

Comment on lines +13 to +14
- `PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.new'`
- `PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.focus'`
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Update the command IDs in the documentation to match the suggested naming convention in the code.

Suggested change
- `PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.new'`
- `PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.focus'`
- `PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.command.new'`
- `PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.command.focus'`

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skipping for the same reason as the sibling thread on parallelAgents.ts.command segments aren't a VS Code convention, so leaving the IDs as zeus.parallelAgents.new / zeus.parallelAgents.focus keeps us aligned with how core registers commands.

… criteria

Caught by reviewer: line 54 still said 'Side bar' while the rest of the
doc establishes that the right-side container is formally the auxiliary
bar (the side bar is the left container by VS Code's naming).
@kanywst kanywst merged commit 4d38a5e into main May 25, 2026
4 checks passed
@kanywst kanywst deleted the feat/parallel-agents-ui branch May 25, 2026 14:09
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