feat: add /diff slash command to view session and git changes#1573
Open
jekhy wants to merge 2 commits into
Open
feat: add /diff slash command to view session and git changes#1573jekhy wants to merge 2 commits into
jekhy wants to merge 2 commits into
Conversation
Add /diff command that opens a file selector combining AI tool edits with git working-tree changes. Selecting a file renders a themed diff panel. Includes turn-based tabs, expandable diff viewer, and right-aligned change statistics.
🦋 Changeset detectedLatest commit: ed77ed2 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c0dca45719
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issue
No prior issue. This PR addresses the need to review both AI tool edits and git working-tree changes without leaving the Kimi Code TUI.
Problem
When working with Kimi Code, users currently have no in-app way to see what files the AI changed via
Edit/Writetool calls, nor how those changes relate to existing uncommitted git modifications. Switching back to the shell to rungit diffbreaks flow, and the session transcript alone does not present file changes in a consolidated, browsable form.What changed
Added the
/diffslash command to the TUI. It opens a file selector that combines two sources of changes:git status/git diff HEAD), including untracked files.Edit,Write, anddiff-style tool displays).Users can switch sources with
←/→, select a file with↑/↓andEnter, and view the diff in a full-screen viewer. The viewer supports expanding/collapsing context withCtrl+O, and large edits fall back to line-count approximations to avoid expensive LCS on huge files.Key implementation points:
apps/kimi-code/src/utils/git/git-diff.ts— git helpers for status, diff, and numstat with shell-argument validation and empty-repo / missing-workdir fallbacks.apps/kimi-code/src/tui/utils/session-edits.ts— collects AI edits from transcript entries or renderedToolCallComponents, grouped by turn.apps/kimi-code/src/tui/commands/diff.ts— command orchestration that builds the two source lists and drives the UI.apps/kimi-code/src/tui/components/dialogs/diff-file-selector.ts/diff-viewer.ts— tabbed file selector and full-screen diff viewer.apps/kimi-code/src/tui/components/messages/diff-panel.ts— themed diff rendering.docs/en/reference/slash-commands.mdanddocs/zh/reference/slash-commands.md.@moonshot-ai/kimi-code.Checklist
gen-changesetsskill.gen-docsskill.