feat: parallel execution, wave dispatch, smart-install fix - #629
Conversation
…ecution Allow multiple workers with the same agent definition (e.g., engineer) to run simultaneously by suffixing the role name with the group ID. `genie work engineer slug#1` now registers as `engineer-1`, avoiding the duplicate role collision that previously blocked parallel dispatch. Added optional `role` field to SpawnOptions that overrides the role used for registration and duplicate-check while preserving the original name for agent directory resolution.
- Add wave-based Execution Strategy section to wish template with parallel/sequential wave format for team-lead dispatch - Inline complete wish template into skills/wish/SKILL.md (single source of truth) with QA Criteria, Review Results, and Files to Create/Modify - Delete plugins/genie/references/wish-template.md (no external ref) - Mark Execution Strategy as required in document sections table and rules
Replace one-at-a-time group dispatch with wave-based execution. Team-lead now reads Execution Strategy from WISH.md and dispatches all groups in a wave simultaneously, monitoring workers in parallel and advancing to the next wave when all groups complete.
…ion} Hook was pinning to the plugin cache version which lags behind npm releases. Now uses the npm dist-tag matching updateChannel config.
feat: parallel execution — auto-suffix roles, wave-based dispatch, wish template upgrade
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (11)
📝 WalkthroughWalkthroughThis PR introduces wave-based task execution replacing sequential group execution, adds a configurable role override to agent spawn options for per-group worker identification, bumps package versions across manifests, and removes an obsolete wish template file. Changes
Sequence DiagramsequenceDiagram
participant TeamLead as Team Lead Agent
participant Dispatch as Dispatch System
participant Wave1 as Wave 1 Workers<br/>(engineer-1, engineer-2)
participant Wave2 as Wave 2 Workers<br/>(engineer-1, engineer-2)
Note over TeamLead,Wave2: Execute Waves Workflow
rect rgba(100, 150, 200, 0.5)
Note over TeamLead,Wave1: Wave 1 Execution
TeamLead->>Dispatch: Dispatch all groups in wave<br/>(with auto-suffixed roles)
Dispatch->>Wave1: Spawn worker engineer-1<br/>(role: genie-1)
Dispatch->>Wave1: Spawn worker engineer-2<br/>(role: genie-2)
Wave1->>Wave1: Execute groups in parallel
TeamLead->>Wave1: Monitor all workers in wave
Wave1-->>TeamLead: Status updates
TeamLead->>Wave1: Mark each group done<br/>as it completes
Wave1-->>TeamLead: All groups complete
end
rect rgba(150, 100, 200, 0.5)
Note over TeamLead,Wave2: Wave 2 Execution
TeamLead->>Dispatch: Dispatch all groups in wave<br/>(new wave workers)
Dispatch->>Wave2: Spawn worker engineer-1<br/>(role: genie-1)
Dispatch->>Wave2: Spawn worker engineer-2<br/>(role: genie-2)
Wave2->>Wave2: Execute groups in parallel
TeamLead->>Wave2: Monitor all workers in wave
Wave2-->>TeamLead: Status updates
TeamLead->>Wave2: Mark each group done<br/>as it completes
Wave2-->>TeamLead: All groups complete
end
Note over TeamLead: Wave execution complete
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
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 |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the Highlights
Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces significant enhancements to the genie CLI, primarily focusing on parallel execution through a wave-based dispatch system. The changes correctly implement auto-suffixing for worker roles, allowing multiple agents to run concurrently without naming collisions. The WISH.md template has been updated to include a mandatory "Execution Strategy" section, which clearly defines how groups are executed in waves. Additionally, the smart-install script has been refined to ensure that @latest or @next versions are installed from npm, and the group parser now supports lettered groups. The documentation in team-lead.md and SKILL.md has been thoroughly updated to reflect these new capabilities and requirements, providing clear guidance for the new workflow. Overall, the changes are well-implemented, align with the described features, and represent a substantial improvement in the system's orchestration capabilities.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 984861bc5f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const updateChannel = getUpdateChannel(); | ||
| const tag = updateChannel === 'next' ? 'next' : 'latest'; | ||
| const installed = getGenieVersion(); |
There was a problem hiding this comment.
Base CLI upgrade check on channel target
installGenieCli() now installs @automagik/genie by dist-tag (@latest/@next), but genieCliNeedsInstall() still determines freshness using the local plugin package version. In environments where the npm tag points to a different version than plugins/genie/package.json (common for next or lagging plugin bundles), the check never converges and this hook will attempt a global reinstall on every startup, adding repeated network work and startup latency.
Useful? React with 👍 / 👎.
Changes
genie work engineer slug#1spawnsengineer-1(no collision with concurrent workers)@latest/@nextfrom npm, not@${pluginVersion}from cacheSummary by CodeRabbit
New Features
Documentation
Chores