Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
0e1975d
feat: add code review shared types
chengluyu Jun 11, 2026
165b5d6
feat: add review git target preview
chengluyu Jun 11, 2026
f94de25
feat: add review runtime state
chengluyu Jun 11, 2026
f0a2b18
feat: add review worker tools
chengluyu Jun 11, 2026
499dda4
feat: add review worker profiles
chengluyu Jun 11, 2026
1791a9c
feat: add review worker driver
chengluyu Jun 11, 2026
5455684
feat: add standard review orchestration
chengluyu Jun 11, 2026
bedfb4a
feat: expose review sdk api
chengluyu Jun 11, 2026
0898578
feat: add review slash command
chengluyu Jun 11, 2026
19bfb15
feat: add review progress events
chengluyu Jun 11, 2026
e543521
feat: add thorough review orchestration
chengluyu Jun 11, 2026
feeba83
feat: add deep review orchestration
chengluyu Jun 11, 2026
2567796
docs: document experimental review command
chengluyu Jun 11, 2026
27c96a0
fix: auto-approve review tools
chengluyu Jun 11, 2026
514c34d
fix: improve review tool display
chengluyu Jun 11, 2026
87f9222
docs: clarify AgentSwarm review plan
chengluyu Jun 11, 2026
eedd108
docs: record AgentSwarm terminology
chengluyu Jun 11, 2026
3980a55
feat: run deep review through AgentSwarm
chengluyu Jun 11, 2026
13201fb
fix: clear cancelled review preview
chengluyu Jun 11, 2026
d6776fe
fix: preserve review failure errors
chengluyu Jun 11, 2026
b88c066
fix: abort failed review siblings
chengluyu Jun 11, 2026
b9eb6e7
fix: relax review selector spacing
chengluyu Jun 11, 2026
c9094e2
fix: keep deep review swarm primary
chengluyu Jun 11, 2026
62d716e
feat: confirm review perspectives
chengluyu Jun 11, 2026
ad177b4
fix: clarify review command description
chengluyu Jun 11, 2026
ebbf0e0
feat: review commits ahead of upstream
chengluyu Jun 11, 2026
5e3f951
feat: show review scope context
chengluyu Jun 11, 2026
41f0925
fix: rename deep review label
chengluyu Jun 11, 2026
760d0d5
feat: animate deep review selector
chengluyu Jun 11, 2026
59b33d4
fix: shorten review file version refs
chengluyu Jun 11, 2026
f3b27b5
fix: summarize thorough review progress
chengluyu Jun 11, 2026
fa964b9
docs: clarify review command summary
chengluyu Jun 11, 2026
84fd2e9
chore: add review ux changeset
chengluyu Jun 11, 2026
4ba8bf7
test: cover review scope edge cases
chengluyu Jun 11, 2026
c24e5e0
fix: bind review selector render callback
chengluyu Jun 12, 2026
0aa9e31
fix: constrain review progress lines
chengluyu Jun 12, 2026
2c780ee
fix: quiet review progress noise
chengluyu Jun 12, 2026
8f631cb
fix: block input during active reviews
chengluyu Jun 12, 2026
bfa7bdf
fix: report early review aborts as cancellations
chengluyu Jun 12, 2026
dbf7ece
fix: require changed file reads for review coverage
chengluyu Jun 12, 2026
0f9dd99
fix: avoid duplicate review completion output
chengluyu Jun 12, 2026
2704dd3
fix: scope review worker progress audits
chengluyu Jun 12, 2026
48fe847
fix: require all filtered review patch hunks
chengluyu Jun 12, 2026
da884df
fix: scope dismissed review comments
chengluyu Jun 12, 2026
c41cacf
fix: preserve completed review state on cancel
chengluyu Jun 12, 2026
6b5147a
fix: reject concurrent review starts
chengluyu Jun 12, 2026
23e29fd
fix: read review base files from merge base
chengluyu Jun 12, 2026
cc98d0c
fix: clear review preview status on errors
chengluyu Jun 12, 2026
221a3d5
fix: report stale review sources as unreconciled
chengluyu Jun 12, 2026
8f5222c
fix: handle reordered review assignment progress
chengluyu Jun 12, 2026
840dda3
fix: bound untracked review preview reads
chengluyu Jun 12, 2026
6db7110
fix: separate review git refs from options
chengluyu Jun 12, 2026
f364b31
docs: add tty runner platform design
chengluyu Jun 12, 2026
b6041c0
docs: refine tty runner platform scope
chengluyu Jun 12, 2026
28becff
docs: add live tty inspection workflows
chengluyu Jun 12, 2026
0261a8b
docs: generalize tty runner spec examples
chengluyu Jun 12, 2026
63b4875
feat: share swarm progress UI
chengluyu Jun 12, 2026
ee2dc46
fix: refine review swarm progress UI
chengluyu Jun 12, 2026
86ab9c1
Merge remote-tracking branch 'origin/main' into feat/code-review
chengluyu Jun 12, 2026
892581f
fix: improve code review prompts
chengluyu Jun 14, 2026
f0578a1
fix: anchor working tree review reads
chengluyu Jun 14, 2026
72a6471
fix: improve review activity display
chengluyu Jun 14, 2026
9595ba8
fix: polish review activity display
chengluyu Jun 14, 2026
0bd4795
feat: replace review patch tool with ReadDiff
chengluyu Jun 14, 2026
b5cfb52
docs: add code review presentation design
chengluyu Jun 14, 2026
13784e0
feat(review): persist reviews as durable JSON artifacts
chengluyu Jun 14, 2026
d3253aa
feat(review): persist on completion and expose read/reject over RPC
chengluyu Jun 14, 2026
2d1318d
feat(review): render completed reviews as a compact transcript block
chengluyu Jun 14, 2026
099883d
feat(review): interactive reader with syntax-highlighted diff view
chengluyu Jun 14, 2026
ba20a29
feat(review): add /review read & export and a post-review selector
chengluyu Jun 14, 2026
e62f286
docs(review): add implementation report; drop dead wall-of-text forma…
chengluyu Jun 14, 2026
630b605
feat(review): topic-slug review names
chengluyu Jun 14, 2026
7906159
fix(review): command correctness bugs + slug-aware handles
chengluyu Jun 14, 2026
7beda7c
fix(review): polish the drawer reader
chengluyu Jun 14, 2026
24d8ceb
fix(review): quiet reconciliation spam and the duplicate progress ind…
chengluyu Jun 14, 2026
b7fcdf7
feat(review): colored compact review block
chengluyu Jun 14, 2026
f296dfd
feat(review): full-screen reader with two-column layout
chengluyu Jun 14, 2026
3b6632a
docs(review): record phase-2 trial-feedback fixes in the report
chengluyu Jun 14, 2026
5d6b98d
feat(review): rebuild full-screen reader to the agreed spec
chengluyu Jun 14, 2026
6f13e09
refactor(review): say "review comment" instead of "finding" in user-f…
chengluyu Jun 14, 2026
d1602c1
fix(review): clearer review progress messages and browse note
chengluyu Jun 14, 2026
73ae4f2
docs(review): document the conversation-persistence problem for discu…
chengluyu Jun 14, 2026
dab1e82
docs(review): plan the pilot-driven review rework
chengluyu Jun 16, 2026
260ad94
refactor(review): drop the drawer reader; fullscreen-only
chengluyu Jun 16, 2026
5f00c81
feat(review): reusable path abbreviation with middle-segment elision
chengluyu Jun 16, 2026
26050a3
feat(review): group compact review block by file within each severity
chengluyu Jun 16, 2026
3e5acb6
feat(review): streamline post-review selector to Browse vs chat
chengluyu Jun 16, 2026
754e85e
feat(review): export from the full-screen reader with 'e'
chengluyu Jun 16, 2026
48f9170
feat(review): hint at fix/discuss after browsing a review
chengluyu Jun 16, 2026
9b22920
docs(review): consolidate the harness-driven pilot rework plan
chengluyu Jun 16, 2026
b6112a1
feat(review): thread dynamic review directions through the orchestrator
chengluyu Jun 16, 2026
bc0d81c
fix(review): polish nested compact-list rows
chengluyu Jun 16, 2026
aff93b1
fix(review): align browsed-note tip under the heading with a Tips: label
chengluyu Jun 16, 2026
0427b5d
feat(review): add the RunCodeReview fan-out tool
chengluyu Jun 16, 2026
4c19174
fix(review): drop the Deep Review label wave animation
chengluyu Jun 16, 2026
852f98c
feat(review): render the full-screen comment body as Markdown
chengluyu Jun 16, 2026
f4286ef
feat(review): sort full-screen reader comments by severity, file, line
chengluyu Jun 16, 2026
41a7aa0
feat(review): drive /review as a piloted two-turn agent flow
chengluyu Jun 16, 2026
83b17fa
feat(review): include shortstat and body presence in listed commits
chengluyu Jun 16, 2026
4a59432
feat(review): richer commit picker rows
chengluyu Jun 16, 2026
5461155
fix(review): allowlist RunCodeReview on the main agent profile
chengluyu Jun 16, 2026
2d8989b
feat(review): pick relative-time locale from the terminal environment
chengluyu Jun 16, 2026
cc6a9a5
docs(review): make the RunCodeReview description standalone-capable
chengluyu Jun 16, 2026
7fdee8c
Merge UI changes in
chengluyu Jun 16, 2026
c89ae1b
fix(review): space and dim the browsed-note tip
chengluyu Jun 16, 2026
0d52cd7
feat(review): show kept count in the browsed heading
chengluyu Jun 16, 2026
e514080
fix(review): drop the 'Browse or reject' footer from the review block
chengluyu Jun 16, 2026
1ccb78b
feat(review): give the diff-view comment a severity/title bar
chengluyu Jun 16, 2026
5d6981a
feat(review): stack the comment list onto severity/title/path lines
chengluyu Jun 16, 2026
3d412cb
fix(review): normal-color status line with bold keys only
chengluyu Jun 16, 2026
e392d43
fix(review): abbreviate long paths in review tool labels
chengluyu Jun 16, 2026
0a64f18
fix(review): keep truncated titles fully colorized
chengluyu Jun 16, 2026
f61f46a
fix(review): size tool-label path abbreviation to the terminal width
chengluyu Jun 16, 2026
59c6060
feat(review): align commit stats into right-justified columns
chengluyu Jun 16, 2026
0e6098c
feat(review): capture commit email, ref names, and body for search
chengluyu Jun 17, 2026
15e49f4
feat(review): scroll the commit picker and search any git ref
chengluyu Jun 17, 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
7 changes: 7 additions & 0 deletions .changeset/agent-swarm-deep-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@moonshot-ai/protocol": patch
"@moonshot-ai/agent-core": patch
"@moonshot-ai/kimi-code": patch
---

Run Deep review reviewer batches through AgentSwarm progress and queued subagent execution.
8 changes: 8 additions & 0 deletions .changeset/experimental-code-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@moonshot-ai/agent-core": minor
"@moonshot-ai/protocol": minor
"@moonshot-ai/kimi-code-sdk": minor
"@moonshot-ai/kimi-code": minor
---

Add an experimental `/review` workflow for Git changes with standard, thorough, and deep review intensities.
5 changes: 5 additions & 0 deletions .changeset/review-fullscreen-only-reader.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@moonshot-ai/kimi-code": patch
---

Code review comment browser is now fullscreen-only; the half-screen drawer reader has been removed.
7 changes: 7 additions & 0 deletions .changeset/review-piloted-entry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@moonshot-ai/agent-core": minor
"@moonshot-ai/kimi-code-sdk": minor
"@moonshot-ai/kimi-code": minor
---

`/review` now runs as a piloted, two-turn agent flow: the main agent studies the changes and proposes the review directions, then calls a `RunCodeReview` tool to fan out the reviewers. The static "Review perspectives" confirmation dialog is gone, and the review now lives in the conversation (so it persists and replays).
6 changes: 6 additions & 0 deletions .changeset/review-tool-display.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@moonshot-ai/agent-core": patch
"@moonshot-ai/kimi-code": patch
---

Make review tool activity display readable and consistent in the CLI.
7 changes: 7 additions & 0 deletions .changeset/review-ux-polish.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@moonshot-ai/agent-core": minor
"@moonshot-ai/kimi-code-sdk": minor
"@moonshot-ai/kimi-code": minor
---

Expand the experimental code review command with richer target selection, clearer multi-reviewer progress, and Deep Review UI polish.
6 changes: 6 additions & 0 deletions .changeset/shared-swarm-progress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@moonshot-ai/agent-core": minor
"@moonshot-ai/kimi-code": minor
---

Show Deep Review progress with review-specific swarm labels, legends, and file progress.
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ This is a TypeScript monorepo built for agent-assisted development. Keep the roo
- Keep changes focused. Do not slip in unrelated refactors along the way.
- When committing, do not add any co-author attribution, and do not reveal the identity of the agent in commit messages, PR descriptions, or any explanatory text.

## Project Terminology

- In this repository, `swarm` refers to `AgentSwarm` unless the user explicitly says otherwise.

## Project Map

- `apps/kimi-code`: the CLI / TUI application. It consumes core capabilities through `@moonshot-ai/kimi-code-sdk` and must not depend directly on `@moonshot-ai/agent-core`. When writing or modifying its terminal UI, use the `write-tui` skill (`.agents/skills/write-tui/SKILL.md`).
Expand Down
8 changes: 8 additions & 0 deletions apps/kimi-code/src/tui/commands/dispatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import { handleProviderCommand } from './provider';
import { handleFeedbackCommand, showMcpServers, showStatusReport, showUsage } from './info';
import { handlePluginsCommand } from './plugins';
import { handleReloadCommand, handleReloadTuiCommand } from './reload';
import { handleReviewCommand } from './review';
import { handleSwarmCommand } from './swarm';
import {
handleExportDebugZipCommand,
Expand Down Expand Up @@ -88,6 +89,7 @@ export {
} from './info';
export { handlePluginsCommand } from './plugins';
export { handleReloadCommand, handleReloadTuiCommand } from './reload';
export { handleReviewCommand } from './review';
export { handleGoalCommand } from './goal';
export {
handleExportDebugZipCommand,
Expand All @@ -110,9 +112,11 @@ export interface SlashCommandHost {
deferUserMessages: boolean;

setAppState(patch: Partial<AppState>): void;
setReviewActive(active: boolean): void;
resetLivePane(): void;
showError(msg: string): void;
showStatus(msg: string, color?: ColorToken): void;
showTransientStatus(msg: string, color?: ColorToken): { clear(): void };
showNotice(title: string, detail?: string): void;
appendTranscriptEntry(entry: TranscriptEntry): void;
track(event: string, props?: Record<string, unknown>): void;
Expand Down Expand Up @@ -174,6 +178,7 @@ async function executeSlashCommand(host: SlashCommandHost, input: string): Promi
skillCommandMap: host.skillCommandMap,
isStreaming: host.state.appState.streamingPhase !== 'idle',
isCompacting: host.state.appState.isCompacting,
isReviewing: host.state.reviewActive,
});

switch (intent.kind) {
Expand Down Expand Up @@ -311,6 +316,9 @@ async function handleBuiltInSlashCommand(
case 'swarm':
await handleSwarmCommand(host, args);
return;
case 'review':
await handleReviewCommand(host, args);
return;
case 'compact':
await handleCompactCommand(host, args);
return;
Expand Down
1 change: 1 addition & 0 deletions apps/kimi-code/src/tui/commands/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export {
} from './info';
export { handlePluginsCommand } from './plugins';
export { handleReloadCommand, handleReloadTuiCommand } from './reload';
export { handleReviewCommand } from './review';
export { handleGoalCommand, parseGoalCommand } from './goal';
export { goalArgumentCompletions } from './registry';
export {
Expand Down
8 changes: 8 additions & 0 deletions apps/kimi-code/src/tui/commands/registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,14 @@ export const BUILTIN_SLASH_COMMANDS = [
completeArgs: swarmArgumentCompletions,
availability: 'idle-only',
},
{
name: 'review',
aliases: [],
description: 'Review selected code changes with read-only reviewer agents.',
priority: 100,
availability: 'idle-only',
experimentalFlag: 'code_review',
},
{
name: 'model',
aliases: [],
Expand Down
7 changes: 6 additions & 1 deletion apps/kimi-code/src/tui/commands/resolve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export interface ResolveSlashCommandInput {
readonly skillCommandMap: ReadonlyMap<string, string>;
readonly isStreaming: boolean;
readonly isCompacting: boolean;
readonly isReviewing: boolean;
}

export function resolveSlashCommandInput(options: ResolveSlashCommandInput): SlashCommandIntent {
Expand Down Expand Up @@ -106,10 +107,11 @@ export function resolveSkillCommand(
}

export function slashCommandBusyReason(
options: Pick<ResolveSlashCommandInput, 'isStreaming' | 'isCompacting'>,
options: Pick<ResolveSlashCommandInput, 'isStreaming' | 'isCompacting' | 'isReviewing'>,
): SlashCommandBusyReason | undefined {
if (options.isStreaming) return 'streaming';
if (options.isCompacting) return 'compacting';
if (options.isReviewing) return 'reviewing';
return undefined;
}

Expand All @@ -120,5 +122,8 @@ export function slashBusyMessage(
if (reason === 'streaming') {
return `Cannot /${commandName} while streaming — press Esc or Ctrl-C first.`;
}
if (reason === 'reviewing') {
return `Cannot /${commandName} while a review is running — press Esc or Ctrl-C first.`;
}
return `Cannot /${commandName} while compacting — wait for compaction to finish first.`;
}
Loading
Loading