feat(parallel-agents-ui): scaffold side-bar subagent view#27
Conversation
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.
|
Warning Review limit reached
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 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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.
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.
|
/gemini review |
There was a problem hiding this comment.
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.
…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.
|
/gemini review |
There was a problem hiding this comment.
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.
|
/gemini review |
There was a problem hiding this comment.
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.
…auxiliary bar), chord shortcut
|
/gemini review |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
| ## Acceptance criteria (real impl) | ||
|
|
||
| - [ ] Quick-pick of skills picks one and starts it | ||
| - [ ] Side bar shows live tool-call timeline per agent |
There was a problem hiding this comment.
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.
| - [ ] Side bar shows live tool-call timeline per agent | |
| - [ ] Auxiliary bar shows live tool-call timeline per agent |
There was a problem hiding this comment.
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`) |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
| export const PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.new'; | ||
| export const PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.focus'; |
There was a problem hiding this comment.
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.
| 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'; |
There was a problem hiding this comment.
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.
| - `PARALLEL_AGENTS_COMMAND_NEW = 'zeus.parallelAgents.new'` | ||
| - `PARALLEL_AGENTS_COMMAND_FOCUS = 'zeus.parallelAgents.focus'` |
There was a problem hiding this comment.
Update the command IDs in the documentation to match the suggested naming convention in the code.
| - `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'` |
There was a problem hiding this comment.
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).
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