chore: promote dev to main — parser fix, resilient messaging, startup guard - #643
Conversation
Engineer prompt now instructs workers to call both `genie done` (state) and `genie send` (mailbox notification) on completion. Reviewer, QA, and fix prompts add `genie send` for durable result reporting to team-lead. Flat copies synced.
- Update initialPrompt in dispatch.ts to include `genie done` and `genie send` commands with actual slug/group values (Group 2) - Update team-lead prompt with state-polling-first monitoring: `genie status` as primary, `genie inbox` as secondary, "state file is source of truth" (Group 3) - Sync team-lead flat copy
feat: resilient multi-channel messaging
`depends-on: 1 (must be done first)` was parsed as dependency on "1 (must be done first)" which doesn't match any group. Now strips `(...)` suffixes from both the none-check and individual dep values. Co-authored-by: Test <test@test.com>
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 integrates several key improvements and fixes from the development branch into the main codebase. The primary focus is on enhancing the robustness and reliability of the Highlights
Changelog
Activity
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
|
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR updates the genie plugin version from 3.260317.14 to 3.260317.16, enhances dependency parsing to strip parenthetical comments from group dependencies, and adds mandatory completion workflows requiring agent workers to send durable notifications to team-lead upon task completion. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
There was a problem hiding this comment.
Code Review
This pull request incorporates several updates, including a parser fix for depends-on clauses, the introduction of resilient messaging via genie send, and a startup guard fix. The version numbers have been bumped accordingly across multiple configuration files.
My review has identified a couple of areas for improvement:
- A potential bug in the
depends-onparser logic which can be simplified and made more robust. - Several duplicated agent definition files (
.md), which pose a maintainability risk.
Details and suggestions are provided in the specific comments.
| dependsOn = depsStr | ||
| .split(',') | ||
| .map((d) => d.trim().replace(/^group\s*/i, '')) | ||
| .map((d) => | ||
| d | ||
| .trim() | ||
| .replace(/^group\s*/i, '') | ||
| .replace(/\s*\(.*\)\s*$/, '') | ||
| .trim(), | ||
| ) | ||
| .filter(Boolean); |
There was a problem hiding this comment.
The current logic for parsing depends-on has a potential bug and can be simplified.
If a parenthetical comment in the depends-on string contains a comma, the depsStr.split(',') call will incorrectly split the dependency. For example: depends-on: Group 1 (has a, comma), Group 2.
You are already creating depsNormalized which correctly strips all comments. You can simplify the logic and fix the bug by using depsNormalized for splitting and mapping, instead of the original depsStr. This also removes the need for the second regex to remove comments inside the map function.
dependsOn = depsNormalized
.split(',')
.map((d) => d.trim().replace(/^group\s*/i, ''))
.filter(Boolean);|
|
||
| ## 7. Report Completion | ||
| After completing all deliverables and validation, call `genie done <slug>#<group>` to report completion. The slug and group are in your initial prompt. This signals the orchestrator that your work is finished so it can advance to the next wave. | ||
| After completing all deliverables and validation: |
There was a problem hiding this comment.
This file appears to be a duplicate of plugins/genie/agents/engineer/AGENTS.md. I've noticed this pattern for other agents as well (e.g., fix, qa, reviewer, team-lead).
Having duplicate agent definition files increases maintenance overhead and creates a risk of them becoming out of sync. To improve maintainability, I recommend consolidating these into a single file for each agent and removing the duplicate. You'll need to verify which file path is being used by the agent loading logic.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bd1f04cd24
ℹ️ 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".
| dependsOn = depsStr | ||
| .split(',') |
There was a problem hiding this comment.
Strip comments before splitting depends-on values
The new parsing path still splits on commas before removing parenthetical comments, so inputs like **depends-on:** Group 1 (setup, run first) are tokenized into two dependencies and can make state initialization fail with non-existent group references. This affects wishes that include natural-language parenthetical notes containing commas, which the surrounding changes are trying to support.
Useful? React with 👍 / 👎.
Changes
First fully clean autonomous orchestration cycle — zero errors, zero crashes.
Summary by CodeRabbit
Release Notes
New Features
Chores
Tests