Skip to content

chore: rolling promotion dev -> main - #615

Merged
namastex888 merged 8 commits into
mainfrom
dev
Mar 16, 2026
Merged

namastex888 merged 8 commits into
mainfrom
dev

Conversation

@namastex888

@namastex888 namastex888 commented Mar 16, 2026 •

Copy link
Copy Markdown
Contributor

Rolling Promotion PR

Auto-maintained rolling promotion PR from dev to main.

Process:

  • This PR is automatically created and kept open
  • Human reviews and merges when ready
  • Label ready-to-merge added when all checks pass

IMPORTANT: Merge with "Create a merge commit" — NEVER squash.
Squash merging breaks history sync between dev and main,
causing the next rolling PR to show all commits again.

Human approval required for merge to production.

Summary by CodeRabbit

  • Chores

    • Version updated to 3.260316.17 across all configuration and manifest files.
  • Bug Fixes

    • Team status update operations now execute with file locking to ensure serialized updates and prevent concurrent modification conflicts.
  • New Features

    • Team completion and blocking commands now automatically terminate all associated team members when marking status, providing comprehensive resource cleanup and improved state management.

github-actions Bot and others added 5 commits March 16, 2026 18:37
…ked`

Previously these commands only updated the config file status — the team-lead
and other agents kept running in an infinite idle loop. Now both commands
call killTeamMembers() to terminate all worker processes after setting status,
reusing the same killWorkersByName() pattern from disbandTeam().
fix(team): kill all members on team done/blocked
execSync calls used stdio: 'inherit' which dumps bun install output
into CC's protocol stream, corrupting it and crashing the session.
Changed to ['pipe', 'pipe', 'inherit'] so only stderr is forwarded
(for progress messages) while stdout is captured silently.

Closes #612
fix: pipe stdout in smart-install hook to prevent session crashes
@coderabbitai

coderabbitai Bot commented Mar 16, 2026 •

Copy link
Copy Markdown

Warning

Rate limit exceeded

@namastex888 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 11 minutes and 52 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, 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 the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1c8c4290-9f5e-44bd-a8a5-3e1e59c772d7

📥 Commits

Reviewing files that changed from the base of the PR and between 953a783 and 4d082fc.

📒 Files selected for processing (3)
  • plugins/genie/agents/team-lead.md
  • plugins/genie/agents/team-lead/AGENTS.md
  • src/lib/builtin-agents.test.ts
📝 Walkthrough

Walkthrough

Version bumps applied across multiple plugin manifests and packages (3.260316.16 → 3.260316.17). New team member cleanup function added to team management module with file locking for status updates, integrated into team command handlers to kill members when marking teams as done or blocked.

Changes

Cohort / File(s) Summary
Version Updates
.claude-plugin/marketplace.json, openclaw.plugin.json, package.json, plugins/genie/.claude-plugin/plugin.json, plugins/genie/package.json
Consistent version bump from 3.260316.16 to 3.260316.17 across all manifest and package files.
Team Management Logic
src/lib/team-manager.ts
Added killTeamMembers(teamName) function to perform best-effort cleanup of all team members. Wrapped SetTeamStatus execution in file lock (acquireLock) for serialized updates.
Team Commands Integration
src/term-commands/team.ts
Extended "team done" and "team blocked" commands to invoke killTeamMembers() when marking status. Updated descriptions and console messages to reflect member termination side-effect.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'chore: rolling promotion dev -> main' is misleading—it describes a release process, but the PR contains significant functional changes (new killTeamMembers function, team command behavior modifications) beyond version bumps. Retitle to reflect the actual changes: 'fix: terminate team members on done/blocked status' or similar, or split functional changes into a separate PR with a more descriptive title.
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev
📝 Coding Plan
  • Generate coding plan for human review comments

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.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 performs a routine rolling promotion from the dev branch to main, primarily updating version numbers for the genie plugin and its associated components. A key functional enhancement is also introduced, enabling automatic termination of team members' processes when a team is marked as 'done' or 'blocked`, thereby improving resource management and ensuring clean operational states.

Highlights

  • Version Bumps: The version number for the genie plugin and related packages was incremented from 3.260316.16 to 3.260316.17 across five JSON configuration files, indicating a new release or update.
  • Improved execSync stdio Handling: The stdio configuration for execSync calls within plugins/genie/scripts/smart-install.js was updated to explicitly pipe stdout and stderr while inheriting stdin. This change enhances the reliability and output handling of external command executions, particularly during Bun installation and dependency management.
  • New killTeamMembers Functionality: A new asynchronous utility function, killTeamMembers, was introduced in src/lib/team-manager.ts. This function is designed to terminate all running workers associated with a specified team in a best-effort manner, continuing even if individual worker termination fails.
  • Automated Worker Termination for Team Status Changes: The team done and team blocked commands in src/term-commands/team.ts were enhanced to automatically invoke the new killTeamMembers function. This ensures that all team members' processes are terminated when a team's status is updated to 'done' or 'blocked', improving resource cleanup and operational consistency.
Changelog
  • .claude-plugin/marketplace.json
    • Updated the genie plugin version to 3.260316.17.
  • openclaw.plugin.json
    • Updated the genie plugin version to 3.260316.17.
  • package.json
    • Updated the @automagik/genie package version to 3.260316.17.
  • plugins/genie/.claude-plugin/plugin.json
    • Updated the genie plugin version to 3.260316.17.
  • plugins/genie/package.json
    • Updated the genie-plugin version to 3.260316.17.
  • plugins/genie/scripts/smart-install.js
    • Modified stdio options for execSync calls during Bun installation to explicitly pipe stdout and stderr.
    • Modified stdio options for execSync calls during dependency installation to explicitly pipe stdout and stderr.
    • Modified stdio options for execSync calls during Genie CLI installation to explicitly pipe stdout and stderr.
  • src/lib/team-manager.ts
    • Added a new asynchronous function killTeamMembers to terminate all workers for a given team.
  • src/term-commands/team.ts
    • Integrated the killTeamMembers function into the team done command and updated its description.
    • Integrated the killTeamMembers function into the team blocked command and updated its description.
Activity
  • This is an auto-maintained rolling promotion PR, automatically created and kept open.
  • Human reviews and merges are expected when the PR is ready.
  • The ready-to-merge label will be added once all checks pass.
  • No specific human activity (comments, reviews) has been recorded yet.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

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

Copy link
Copy Markdown
Contributor

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 appears to be a rolling promotion from dev to main, including version bumps and a few functional changes. Notably, the team done and team blocked commands now also terminate all associated worker processes.

My review has identified a couple of areas for improvement:

  • A change to execSync options in smart-install.js appears to unintentionally suppress output during installation, which could negatively impact user experience and debuggability.
  • The new killTeamMembers function could benefit from logging errors instead of swallowing them, which would aid in future debugging.

Please see the detailed comments for specifics.

Comment on lines +77 to +79
execSync('powershell -c "irm bun.com/install.ps1 | iex"', { stdio: ['pipe', 'pipe', 'inherit'], shell: true });
} else {
execSync('curl -fsSL https://bun.com/install | bash', { stdio: 'inherit', shell: true });
execSync('curl -fsSL https://bun.com/install | bash', { stdio: ['pipe', 'pipe', 'inherit'], shell: true });

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

The change from stdio: 'inherit' to stdio: ['pipe', 'pipe', 'inherit'] for execSync will suppress the standard output of the installation commands. The output is piped but not captured or displayed, which will hide installation progress from the user. This can make it seem like the installation is hanging and complicates debugging.

For interactive installation scripts like this, showing the output is crucial for user experience. I recommend reverting this change to restore the previous behavior.

This feedback also applies to the other execSync calls modified in this file (lines 162 and 390).

Suggested change
execSync('powershell -c "irm bun.com/install.ps1 | iex"', { stdio: ['pipe', 'pipe', 'inherit'], shell: true });
} else {
execSync('curl -fsSL https://bun.com/install | bash', { stdio: 'inherit', shell: true });
execSync('curl -fsSL https://bun.com/install | bash', { stdio: ['pipe', 'pipe', 'inherit'], shell: true });
execSync('powershell -c "irm bun.com/install.ps1 | iex"', { stdio: 'inherit', shell: true });
} else {
execSync('curl -fsSL https://bun.com/install | bash', { stdio: 'inherit', shell: true });

Comment thread src/lib/team-manager.ts
Comment on lines +437 to +439
} catch {
// Best-effort — continue with other members
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

While the "best-effort" approach of continuing on failure is reasonable here, completely swallowing errors in the empty catch block can make debugging difficult if killWorkersByName fails for an unexpected reason.

It would be beneficial to log the error to provide visibility into potential issues.

    } catch (error) {
      console.error(`Failed to kill workers for member "${member}":`, error);
      // Best-effort — continue with other members
    }

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 953a7839c7

ℹ️ 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".

Comment thread src/lib/team-manager.ts

for (const member of config.members) {
try {
await killWorkersByName(member);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Restrict done/blocked worker kill to the selected team

killTeamMembers now drives team done/team blocked, but it kills by member name only (killWorkersByName(member)), and that matcher filters on role/id without any team check. In a normal multi-team setup where both teams have roles like engineer, marking team A as done/blocked will also terminate team B's workers with the same role, interrupting unrelated work. Please scope the worker match to teamName before killing/unregistering.

Useful? React with 👍 / 👎.

Test User and others added 3 commits March 16, 2026 16:20
Rewrote team-lead AGENTS.md using prompt-optimizer patterns:
- promptMode: append → system (replaces CC default prompt entirely)
- XML-tagged blocks: <mission>, <principles>, <tool_usage>, <lifecycle>,
  <heartbeat>, <commands_reference>, <constraints>
- No role prompting — direct mission with motivation
- Tool usage instructions included (Bash, Read, Write, Edit, Grep, Glob)
- Focused on orchestration, not general assistance
…ook-stdio

feat: team-lead prompt rewrite — system mode with XML behavioral blocks
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