Repository navigation
Offer Grok Build as an unattended review-flow reviewer - #1432
Conversation
Ask mode is the boundary: Grok asks before every edit and non-read-only command, and only a use_tool call on a server the review injected is approved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
PR Summary by QodoEnable Grok Build as an unattended review-flow reviewer
AI Description
Diagram
High-Level Assessment
Files changed (21)
|
Code Review by Qodo
1.
|
The user's own Grok permission rules, hooks and MCP servers act without asking, and no per-process switch reaches them short of moving GROK_HOME. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #1431 — AI-3654
What & why
Grok Build becomes an unattended review-flow reviewer, owned worktree only. Like Claude it declares no containment, so borrowed review stays unsupported. It is gated like the other reviewers, by
KCAP_GROK_UNATTENDED_REVIEWER(opt-out) and a version floor recorded at startup. It uses the allowlisted auto-approve policy.Where to look
session/newkeepsyoloMode: false. Measured on grok 1.0.52: a shell write raisessession/request_permission(kind: execute) and does not run when refused; read-only commands and file reads raise nothing. The policy approves only a frame Grok names structurally as a call on an injected server:_meta.x.ai/tool.name == "use_tool",rawInput.variant == "UseTool",rawInput.tool_name == "<injected server>__<tool>", and the title equal to that name. Any other frame reaps the round.UnattendedToolAdmitteron the descriptor carries the admitted-set builder and the matcher. Kiro's title match moved behind it unchanged, andAllowlistedAutoApprovenow requires one._meta.agentProfile(measured to take effect as a JSON object) removessearch_replace,write, subagents and web search. The review environment turns off Grok's Claude/Cursor compat sources and subagents. The user's own Grok configuration still applies: their permission rules approve matching calls without a frame, and their hooks and MCP servers run, the same as the Claude and Codex reviewers running under the user's own config. No per-process switch reaches them short of movingGROK_HOME, which would mean handling the user's credential.Verification
GrokToolAdmissionTests: probe-shaped frames. The result call on an injected server is admitted. Edits, commands, other servers, prefix and embedded names, and mismatched fields are not. Through the bridge, the result call is approved and a command reaped.GrokReviewerLaunchTests: the reviewsession/newcarries the clamp, an interactive one does not. The review environment is set and the interactive one inherited. Refused when disabled or below the floor.GrokReviewerCapabilityTests, plus the gated-reviewer registry and preference pins.🤖 Generated with Claude Code
Summary by CodeRabbit
KCAP_GROK_UNATTENDED_REVIEWER=0.