Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
46c04f0
fix(cli): redirect deprecated /review to /local-review-uncommitted
maphew Jun 10, 2026
69e5c58
fix(cli): resolve review bot code issues and add changeset
maphew Jun 10, 2026
396845f
fix(cli): handle argument-based /review invocations in deprecated com…
kilo-code-bot[bot] Jun 11, 2026
66e9bbf
Merge branch 'main' into main
maphew Jun 12, 2026
6165acb
Merge branch 'main' into main
maphew Jun 15, 2026
4134243
Merge branch 'main' into main
maphew Jun 17, 2026
dfaca49
feat(opencode): unify local review commands under `/review`
maphew Jun 18, 2026
5978bf7
fix(cli): preserve legacy review command aliases
maphew Jun 19, 2026
04c8780
fix(cli): make /review the only review command
alex-alecu Jun 25, 2026
3e7e03d
Merge remote-tracking branch 'origin/main' into maphew/main
alex-alecu Jun 25, 2026
830199b
Merge branch 'main' into main
alex-alecu Jun 25, 2026
ef3c23c
fix(review): prefer commit refs
alex-alecu Jun 25, 2026
9818996
Merge branch 'main' into main
alex-alecu Jun 25, 2026
468190f
test(cli): refresh llm fixtures
alex-alecu Jun 25, 2026
b5525fd
Merge branch 'main' into main
alex-alecu Jun 26, 2026
8ea9628
fix(review): keep legacy aliases
alex-alecu Jun 30, 2026
a013741
fix(review): narrow dead code
alex-alecu Jun 30, 2026
c2636fb
fix(review): reject merge commits
alex-alecu Jun 30, 2026
7ddfc19
fix(review): validate base refs
alex-alecu Jun 30, 2026
fe3a763
feat(review): skip subagents on small diffs
alex-alecu Jun 30, 2026
496f743
Merge branch 'main' into main
alex-alecu Jun 30, 2026
cdd0137
refactor(cli): focus soul on personality
alex-alecu Jun 30, 2026
98ca191
test(cli): update review command expectations
alex-alecu Jun 30, 2026
b6d02fd
Merge branch 'main' into main
alex-alecu Jun 30, 2026
eb40da5
Merge branch 'main' into main
alex-alecu Jun 30, 2026
ac93273
fix(ci): harden visual regression installs
alex-alecu Jun 30, 2026
11c6b79
fix(ci): include setup action filter
alex-alecu Jun 30, 2026
2781d45
fix(cli): restore deprecated review aliases
alex-alecu Jun 25, 2026
8b7b69b
Merge branch 'main' into main
alex-alecu Jul 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/fix-review-command-issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@kilocode/cli": patch
---

Replace `/local-review` and `/local-review-uncommitted` with `/review`, which now chooses between uncommitted and branch review scopes.
6 changes: 3 additions & 3 deletions packages/kilo-docs/pages/automate/agent-manager-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,12 @@ Put the remaining project-specific setup in `.kilo/setup-script`, for example co
Layer review in before asking a teammate:

- **Diff panel** (`Cmd+D`) — live diff against the parent branch. Drag filenames into the chat input for `@file` mentions. Inline-comment the lines you want revisited, then **Send to chat** to iterate.
- **`/local-review-uncommitted`** — slash command, AI review of staged and unstaged changes in the worktree. Good as a last pass before committing.
- **`/local-review`** — slash command, AI review of the whole branch vs. its base.
- **`/review uncommitted`** — slash command, AI review of staged and unstaged changes in the worktree. Good as a last pass before committing.
- **`/review branch`** — slash command, AI review of the whole branch vs. its base.
- **`kilo review` in CI** — automated PR review. See [Code Reviews](/docs/automate/code-reviews/overview) for the setup.
- **Human review** — push the branch from the session terminal and `gh pr create`. The PR badge appears on the worktree and stays in sync with CI and reviews.

A typical sequence: self-review in the diff panel → `/local-review-uncommitted` → push → CI review → teammate review.
A typical sequence: self-review in the diff panel → `/review uncommitted` → push → CI review → teammate review.

## Merging worktree and parent branch

Expand Down
12 changes: 6 additions & 6 deletions packages/kilo-docs/pages/automate/code-reviews/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,18 @@ Code Reviewer is also available locally. This is valuable for developers who wan
{% tabs %}
{% tab label="VSCode" %}

Two slash commands are available for local code reviews:
Use `/review` for local code reviews:

- **`/local-review`** — Review all changes on your current branch vs the base branch
- **`/local-review-uncommitted`** — Review uncommitted changes (staged + unstaged)
- **`/review branch`** — Review all changes on your current branch vs the base branch
- **`/review uncommitted`** — Review uncommitted changes (staged + unstaged)

{% /tab %}
{% tab label="CLI" %}

Two slash commands are available for local code reviews:
Use `/review` for local code reviews:

- **`/local-review`** — Review all changes on your current branch vs the base branch
- **`/local-review-uncommitted`** — Review uncommitted changes (staged + unstaged)
- **`/review branch`** — Review all changes on your current branch vs the base branch
- **`/review uncommitted`** — Review uncommitted changes (staged + unstaged)

{% /tab %}
{% tab label="VSCode (Legacy)" %}
Expand Down
6 changes: 2 additions & 4 deletions packages/kilo-docs/pages/code-with-ai/platforms/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,7 @@ For detailed help on every command and subcommand, see the [CLI Command Referenc
| Command | Description |
|---|---|
| `/init` | Create/update AGENTS.md file for the project |
| `/local-review` | Review code changes |
| `/local-review-uncommitted` | Review uncommitted changes |
| `/review` | Review code changes |

## Local Code Reviews

Expand All @@ -144,8 +143,7 @@ Review your code locally before pushing — catch issues early without waiting f

| Command | Description |
|---|---|
| `/local-review` | Review current branch changes vs base branch |
| `/local-review-uncommitted` | Review uncommitted changes (staged + unstaged) |
| `/review` | Review current branch changes or uncommitted changes |

## Config Reference

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ For Markdown files, use the eye/code toggle in the file header to switch between

### How do I do code reviews in the new extension?

You can now trigger local AI-powered code reviews directly by using two commands: **`/local-review`** to review all changes on your current branch vs the base branch, and **`/local-review-uncommitted`** to review staged and unstaged changes.
You can now trigger local AI-powered code reviews directly with **`/review`**, which can review either all changes on your current branch vs the base branch or staged and unstaged changes.
See the [Code Reviews](/docs/automate/code-reviews/overview) documentation for the full setup and options.

### How can I see the cost of each model?
Expand Down
2 changes: 1 addition & 1 deletion packages/kilo-telemetry/src/telemetry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export interface TelemetryProperties {
vscodeVersion?: string
}

export type ReviewCommand = "review" | "local-review" | "local-review-uncommitted"
export type ReviewCommand = "review"

export interface IndexingTelemetryProperties extends Record<string, unknown> {
source: "scan" | "watcher"
Expand Down
4 changes: 2 additions & 2 deletions packages/kilo-vscode/tests/unit/kilo-provider-utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ describe("mapSSEEventToWebviewMessage", () => {
id: "sug-1",
sessionID: "sess-1",
text: "Review changes?",
actions: [{ label: "Start", prompt: "/local-review-uncommitted" }],
actions: [{ label: "Start", prompt: "/review uncommitted" }],
},
}
const msg = mapSSEEventToWebviewMessage(event, "sess-1")
Expand All @@ -618,7 +618,7 @@ describe("mapSSEEventToWebviewMessage", () => {
sessionID: "sess-1",
requestID: "sug-1",
index: 0,
action: { label: "Start", prompt: "/local-review-uncommitted" },
action: { label: "Start", prompt: "/review uncommitted" },
},
}
const msg = mapSSEEventToWebviewMessage(event, "sess-1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ function pending(id: string, sessionID: string): RecoverableSuggestion {
id,
sessionID,
text: "Review changes?",
actions: [{ label: "Start", prompt: "/local-review-uncommitted" }],
actions: [{ label: "Start", prompt: "/review uncommitted" }],
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ const reviewSuggestion: SuggestionRequest = {
id: "s-review-001",
sessionID: SESSION_ID,
text: "Start a code review of uncommitted changes?",
actions: [{ label: "Start review", description: "Run a local review now", prompt: "/local-review-uncommitted" }],
actions: [{ label: "Start review", description: "Run a local review now", prompt: "/review uncommitted" }],
tool: { messageID: "asst-msg-002", callID: "call-suggest-001" },
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ const blockSuggestions: SuggestionRequest[] = [
sessionID: SID,
text: "Run a local visual review after checking this block matrix.",
actions: [
{ label: "Review UI", prompt: "/local-review-uncommitted" },
{ label: "Review UI", prompt: "/review uncommitted" },
{ label: "Open Storybook", prompt: "Inspect the Tool Call Lab Block Matrix story" },
],
tool: { messageID: MID, callID: "matrix-call-suggest-active" },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ const TIPS: Tip[] = [
"Run {highlight}docker run -it --rm ghcr.io/anomalyco/opencode{/highlight} for containerized use",
"Use {highlight}/connect{/highlight} with OpenCode Zen for curated, tested models",
"Commit your project's {highlight}AGENTS.md{/highlight} file to Git for team sharing",
"Use {highlight}/review{/highlight} to review uncommitted changes, branches, or PRs",
"Use {highlight}/review{/highlight} to review uncommitted changes or branch diffs",
(shortcuts) => `Use ${commandText("/help", shortcuts.helpShow())} to show the help dialog`,
"Use {highlight}/rename{/highlight} to rename the current session",
...(process.platform === "win32"
Expand Down
23 changes: 2 additions & 21 deletions packages/opencode/src/command/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import { Effect, Layer, Context, Schema } from "effect"
import { Config } from "@/config/config"
import { MCP } from "../mcp"
import { Skill } from "../skill"
import { localReviewCommand, localReviewUncommittedCommand } from "@/kilocode/review/command" // kilocode_change
import { reviewCommand } from "@/kilocode/review/command" // kilocode_change
import PROMPT_INITIALIZE from "./template/initialize.txt"
import PROMPT_REVIEW from "./template/review.txt"

type State = {
commands: Record<string, Info>
Expand Down Expand Up @@ -54,10 +53,6 @@ export function hints(template: string) {
export const Default = {
INIT: "init",
REVIEW: "review",
// kilocode_change start
LOCAL_REVIEW: "local-review",
LOCAL_REVIEW_UNCOMMITTED: "local-review-uncommitted",
// kilocode_change end
} as const

export interface Interface {
Expand Down Expand Up @@ -110,21 +105,7 @@ export const layer = Layer.effect(
},
hints: hints(PROMPT_INITIALIZE),
}
commands[Default.REVIEW] = {
name: Default.REVIEW,
description: "review changes [commit|branch|pr], defaults to uncommitted",
source: "command",
get template() {
return PROMPT_REVIEW.replace("${path}", ctx.worktree)
},
subtask: true,
hints: hints(PROMPT_REVIEW),
}

// kilocode_change start
commands[Default.LOCAL_REVIEW] = localReviewCommand()
commands[Default.LOCAL_REVIEW_UNCOMMITTED] = localReviewUncommittedCommand()
// kilocode_change end
commands[Default.REVIEW] = reviewCommand() // kilocode_change
Comment thread
maphew marked this conversation as resolved.
Outdated

for (const [name, command] of Object.entries(cfg.command ?? {})) {
commands[name] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ export const KILO_TIPS: Tip[] = [
"Run {highlight}docker run -it --rm ghcr.io/kilo-org/kilocode{/highlight} for containerized use",
"Use {highlight}/connect{/highlight} with Kilo Gateway for curated, tested models",
"Commit your project's {highlight}AGENTS.md{/highlight} file to Git for team sharing",
"Use {highlight}/review{/highlight} to review uncommitted changes, branches, or PRs",
"Use {highlight}/review{/highlight} to review uncommitted changes or branch diffs",
(shortcuts) => `Use ${commandText("/help", shortcuts.helpShow())} to show the help dialog`,
"Use {highlight}/rename{/highlight} to rename the current session",
...(process.platform === "win32"
Expand Down
2 changes: 1 addition & 1 deletion packages/opencode/src/kilocode/components/tips.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ const TIPS = [
"Press {highlight}Ctrl+X S{/highlight} or {highlight}/status{/highlight} to see config paths, MCP servers, and system info",
"Toggle username display in chat via command palette ({highlight}Ctrl+P{/highlight})",
"Commit your project's {highlight}AGENTS.md{/highlight} file to Git for team sharing",
"Use {highlight}/review{/highlight} to review uncommitted changes, branches, or PRs",
"Use {highlight}/review{/highlight} to review uncommitted changes or branch diffs",
"Run {highlight}/help{/highlight} to show the help dialog",
"Use {highlight}/rename{/highlight} to rename the current session",
"Press {highlight}Ctrl+Z{/highlight} to suspend the terminal and return to your shell",
Expand Down
28 changes: 6 additions & 22 deletions packages/opencode/src/kilocode/review/command.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import type { Command } from "@/command"
import type { ReviewCommand } from "@kilocode/kilo-telemetry"
import LOCAL_REVIEW from "./local-review.txt"
import LOCAL_REVIEW_UNCOMMITTED from "./local-review-uncommitted.txt"
import REVIEW from "./review.txt"

export function isReviewCommand(command: string | undefined): command is ReviewCommand {
return command === "review" || command === "local-review" || command === "local-review-uncommitted"
return command === "review"
Comment thread
alex-alecu marked this conversation as resolved.
}

export function parseReviewCommand(prompt: string | undefined): ReviewCommand | undefined {
Expand All @@ -13,26 +12,11 @@ export function parseReviewCommand(prompt: string | undefined): ReviewCommand |
if (isReviewCommand(name)) return name
}

/**
* /local-review-uncommitted - local review (uncommitted changes)
*/
export function localReviewUncommittedCommand(): Command.Info {
export function reviewCommand(): Command.Info {
return {
name: "local-review-uncommitted",
description: "local review (uncommitted changes)",
template: LOCAL_REVIEW_UNCOMMITTED,
hints: ["$ARGUMENTS"],
}
}

/**
* /local-review - local review (current branch vs base)
*/
export function localReviewCommand(): Command.Info {
return {
name: "local-review",
description: "local review (current branch, optional base or instructions)",
template: LOCAL_REVIEW,
name: "review",
description: "local code review",
template: REVIEW,
hints: ["$ARGUMENTS"],
}
}
Loading