feat(agent): add agent plugin integration#9
Conversation
|
Warning Review limit reached
More reviews will be available in 5 minutes and 3 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughAdds ChangesAgent command integration, packaging, and governance
Profile-analysis skill documentation bundles
Sequence DiagramsequenceDiagram
participant User as User / Agent Runtime
participant VeloQ as veloq CLI
participant MetaAgent as meta::agent::run
participant Installer as agent_plugin_installer
participant NativeCLI as codex / claude (native)
User->>VeloQ: veloq agent install codex --from-checkout <path>
VeloQ->>MetaAgent: dispatch "agent"
MetaAgent->>MetaAgent: validate_checkout → check plugins/veloq metadata
MetaAgent->>Installer: preflight check_operation (codex --help)
Installer->>NativeCLI: codex --help
NativeCLI-->>Installer: exit 0
Installer-->>MetaAgent: ok
MetaAgent->>Installer: install(codex, checkout_path)
Installer->>NativeCLI: codex plugin add veloq@<checkout_path>
NativeCLI-->>Installer: exit 0
Installer-->>MetaAgent: success
MetaAgent-->>VeloQ: AgentRow { key="agent|codex", status="installed" }
VeloQ-->>User: JSON envelope with data.rows
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
|
Caution Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted. Error details |
Add the `veloq agent` meta command for Codex and Claude doctor, install, update, and uninstall workflows through the external agent-plugin-installer crate. Materialize the Codex plugin package mirror, add mirror synchronization tooling, and wire a CI drift check for the generated plugin copy.
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
crates/veloq/tests/cli_smoke/root.rs (1)
185-190: ⚡ Quick winAlso assert stderr isolation for child process output in JSON mode tests
Both tests intentionally emit child stderr (
"child stderr must stay captured"), but only stdout leakage is asserted. Add explicit stderr checks so regressions in stderr routing are caught.As per coding guidelines, in JSON mode stderr should stay quiet to avoid agent-side dedupe noise. Based on learnings, stdout/stderr envelope behavior is contract-sensitive for CLI flows.
Suggested patch
let stdout = String::from_utf8_lossy(&out.stdout); + let stderr = String::from_utf8_lossy(&out.stderr); assert!( !stdout.contains("child stdout must stay captured"), "child stdout leaked into VeloQ stdout: {stdout}" ); + assert!( + !stderr.contains("child stderr must stay captured"), + "child stderr leaked into VeloQ stderr: {stderr}" + );let stdout = String::from_utf8_lossy(&out.stdout); + let stderr = String::from_utf8_lossy(&out.stderr); assert!( !stdout.contains("child stdout must stay captured"), "child stdout leaked into VeloQ stdout: {stdout}" ); + assert!( + !stderr.contains("child stderr must stay captured"), + "child stderr leaked into VeloQ stderr: {stderr}" + );Also applies to: 392-397
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@crates/veloq/tests/cli_smoke/root.rs` around lines 185 - 190, The test currently only asserts that stdout does not contain the string "child stdout must stay captured" but does not check stderr isolation. Add an assertion to verify that stderr also does not contain "child stderr must stay captured" to catch regressions in stderr routing behavior. Extract the stderr from the output using String::from_utf8_lossy applied to out.stderr, then add an assert! statement similar to the stdout check but referencing the stderr string. Apply this same pattern to both test cases mentioned in the comment (the one around lines 185-190 and the additional one around lines 392-397).Sources: Coding guidelines, Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/veloq/tests/cli_smoke/root.rs`:
- Around line 347-351: The assertion using log.lines().all() will pass vacuously
when the log is empty, allowing the test to succeed even if the preflight
command never actually ran or produced output. Add a guard condition to ensure
the log contains at least one line before checking the all() predicate. Modify
the assertion to check that log is not empty (using a length or character count
check) in conjunction with the existing all() predicate to ensure both that
output was produced and that all lines match the expected pattern.
---
Nitpick comments:
In `@crates/veloq/tests/cli_smoke/root.rs`:
- Around line 185-190: The test currently only asserts that stdout does not
contain the string "child stdout must stay captured" but does not check stderr
isolation. Add an assertion to verify that stderr also does not contain "child
stderr must stay captured" to catch regressions in stderr routing behavior.
Extract the stderr from the output using String::from_utf8_lossy applied to
out.stderr, then add an assert! statement similar to the stdout check but
referencing the stderr string. Apply this same pattern to both test cases
mentioned in the comment (the one around lines 185-190 and the additional one
around lines 392-397).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 12a6d532-a9dd-41d3-baa6-b2af21f6a40d
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (53)
.agents/skills.claude-plugin/marketplace.json.claude-plugin/plugin.json.claude-plugin/plugin.json.codex-plugin/plugin.json.codex-plugin/plugin.json.github/workflows/ci.yml.github/workflows/release.yml.gitignoreAGENTS.mdCHANGELOG.mdCargo.tomlREADME.mdcrates/veloq/Cargo.tomlcrates/veloq/src/meta/agent.rscrates/veloq/src/meta/error.rscrates/veloq/src/meta/mod.rscrates/veloq/tests/cli_smoke.rscrates/veloq/tests/cli_smoke/root.rsgov/releases.tomlgov/rfc/RFC-0010/clauses/C-COMMAND-SURFACE.tomlgov/rfc/RFC-0010/clauses/C-JSON-RESPONSE.tomlgov/rfc/RFC-0010/clauses/C-NATIVE-CLI-ORCHESTRATION.tomlgov/rfc/RFC-0010/clauses/C-PACKAGE-SOURCE.tomlgov/rfc/RFC-0010/clauses/C-SUMMARY.tomlgov/rfc/RFC-0010/clauses/C-SUPPORTED-AGENTS.tomlgov/rfc/RFC-0010/rfc.tomlgov/schema/loop-round.schema.jsongov/work/2026-06-14-add-veloq-agent-integration-installer.tomlgov/work/2026-06-19-fix-claude-agent-plugin-checkout-install.tomlgov/work/2026-06-19-make-veloq-agent-plugin-package-the-canonical-skill-source.tomlgov/work/2026-06-19-refresh-bundled-govctl-loop-round-schema.tomlplugins/veloq/.claude-plugin/plugin.jsonplugins/veloq/.codex-pluginplugins/veloq/.codex-plugin/plugin.jsonplugins/veloq/skillsplugins/veloq/skills/ncu-profile-analysis/SKILL.mdplugins/veloq/skills/ncu-profile-analysis/references/analysis-dimensions.mdplugins/veloq/skills/ncu-profile-analysis/references/diagnosis-reference.mdplugins/veloq/skills/ncu-profile-analysis/references/limitations.mdplugins/veloq/skills/ncu-profile-analysis/references/metric-name-arch-notes.mdplugins/veloq/skills/ncu-profile-analysis/references/metrics-and-sections.mdplugins/veloq/skills/ncu-profile-analysis/references/report-template.mdplugins/veloq/skills/ncu-profile-analysis/references/workflow.mdplugins/veloq/skills/nsys-profile-analysis/SKILL.mdplugins/veloq/skills/nsys-profile-analysis/references/capabilities.mdplugins/veloq/skills/nsys-profile-analysis/references/cookbook.mdplugins/veloq/skills/nsys-profile-analysis/references/inspect-shapes.mdplugins/veloq/skills/nsys-profile-analysis/references/limitations.mdplugins/veloq/skills/nsys-profile-analysis/references/time-and-nvtx.mdplugins/veloq/skills/pytorch-profile-analysis/SKILL.mdscripts/bump-version.shscripts/check-agent-plugin-package.sh
💤 Files with no reviewable changes (2)
- plugins/veloq/skills
- plugins/veloq/.codex-plugin
✅ Files skipped from review due to trivial changes (12)
- .codex-plugin/plugin.json
- .agents/skills
- plugins/veloq/.claude-plugin/plugin.json
- gov/work/2026-06-19-make-veloq-agent-plugin-package-the-canonical-skill-source.toml
- .claude-plugin/plugin.json
- gov/rfc/RFC-0010/clauses/C-SUMMARY.toml
- gov/releases.toml
- gov/rfc/RFC-0010/rfc.toml
- CHANGELOG.md
- .gitignore
- gov/rfc/RFC-0010/clauses/C-NATIVE-CLI-ORCHESTRATION.toml
- AGENTS.md
🚧 Files skipped from review as they are similar to previous changes (11)
- plugins/veloq/.codex-plugin/plugin.json
- crates/veloq/Cargo.toml
- crates/veloq/src/meta/agent.rs
- gov/work/2026-06-14-add-veloq-agent-integration-installer.toml
- gov/rfc/RFC-0010/clauses/C-COMMAND-SURFACE.toml
- gov/rfc/RFC-0010/clauses/C-JSON-RESPONSE.toml
- gov/rfc/RFC-0010/clauses/C-PACKAGE-SOURCE.toml
- crates/veloq/src/meta/mod.rs
- README.md
- crates/veloq/src/meta/error.rs
- gov/rfc/RFC-0010/clauses/C-SUPPORTED-AGENTS.toml
Add the
veloq agentmeta command for Codex and Claude doctor, install, update, and uninstall workflows through the external agent-plugin-installer crate.Materialize the Codex plugin package mirror, add mirror synchronization tooling, and wire a CI drift check for the generated plugin copy.
Summary by CodeRabbit
Release Notes
New Features
veloq agentcommand for managing agent runtime integrations with doctor, install, update, and uninstall operations for supported agent runtimes via native CLIs.Chores