Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c326b46
feat(core): add git diff statistics utility
BZ-D Apr 21, 2026
e0777d2
feat(cli): add /diff slash command
BZ-D Apr 21, 2026
48b79ef
fix(cli): harden /diff command after adversarial audit
BZ-D Apr 21, 2026
6a0786f
Merge branch 'main' of github.com:QwenLM/qwen-code into feat/git-diff…
BZ-D Apr 24, 2026
055cd85
fix(cli): clean up /diff feature review issues
BZ-D Apr 24, 2026
d88eba1
fix(core): harden git diff stats after multi-round review
BZ-D Apr 24, 2026
005f88e
fix(core): address /diff PR review comments
BZ-D Apr 24, 2026
5075ad5
fix(core): surface truncated untracked counts and decouple totals fro…
BZ-D Apr 24, 2026
54a0b2d
fix(core): parse filenames from +++/--- lines to handle paths with ' b/'
BZ-D Apr 24, 2026
e9a2721
feat(cli): colorize /diff output via a themed Ink component
BZ-D Apr 24, 2026
8b277f6
Merge remote-tracking branch 'origin/main' into feat/git-diff-stats
BZ-D Apr 27, 2026
239fa71
refactor(cli): factor /diff column widths into a shared helper
BZ-D Apr 27, 2026
bb0164d
fix(core): pin /diff git ops to repo root and lstat untracked entries
BZ-D Apr 27, 2026
c0d8a5d
chore: revert stray .npmrc/README.md test edits swept into bb0164d99
BZ-D Apr 27, 2026
002d17c
perf(core): stream untracked-file line counts in 64 KB chunks
BZ-D Apr 28, 2026
6b3ea41
refactor(core): collapse redundant ancestor walks; harden untracked open
BZ-D Apr 28, 2026
24dfb87
docs(cli): clarify row-order contract; simplify DiffRow key
BZ-D Apr 28, 2026
2857fd9
feat(cli): add (deleted) marker for files removed in the worktree
BZ-D Apr 28, 2026
667f01a
fix(core): pin --no-ext-diff on every git diff invocation
BZ-D Apr 28, 2026
efa81db
fix(core): lazy O_NOFOLLOW lookup so vitest fs mocks don't blow up
BZ-D Apr 28, 2026
c1638ef
fix(core): make resolveGitDir worktree assertion platform-agnostic
BZ-D Apr 28, 2026
632b259
fix(core): C-unquote diff path headers and fix untracked-only fast path
BZ-D Apr 28, 2026
4b371a4
fix(core): also pass --no-textconv to block .gitattributes textconv d…
BZ-D Apr 29, 2026
ecb7743
fix(diff): close untracked-line undercount and ANSI injection in /dif…
BZ-D Apr 29, 2026
42e19f8
Merge remote-tracking branch 'origin/main' into feat/git-diff-stats
BZ-D May 7, 2026
4f7e8dd
fix(diff): harden quoted-path decoder and filename sanitizer
BZ-D May 7, 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
23 changes: 23 additions & 0 deletions packages/cli/src/i18n/locales/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,29 @@ export default {
'Configure authentication information for login',
'Copy the last result or code snippet to clipboard':
'Copy the last result or code snippet to clipboard',
'Show working-tree change stats versus HEAD':
'Show working-tree change stats versus HEAD',
'Could not determine current working directory.':
'Could not determine current working directory.',
'Failed to compute git diff stats': 'Failed to compute git diff stats',
'No diff available. Either this is not a git repository, HEAD is missing, or a merge/rebase/cherry-pick/revert is in progress.':
'No diff available. Either this is not a git repository, HEAD is missing, or a merge/rebase/cherry-pick/revert is in progress.',
'Clean working tree — no changes against HEAD.':
'Clean working tree — no changes against HEAD.',
'{{count}} file changed, +{{added}} / -{{removed}}':
'{{count}} file changed, +{{added}} / -{{removed}}',
'{{count}} files changed, +{{added}} / -{{removed}}':
'{{count}} files changed, +{{added}} / -{{removed}}',
'{{count}} file changed': '{{count}} file changed',
'{{count}} files changed': '{{count}} files changed',
'…and {{hidden}} more (showing first {{shown}})':
'…and {{hidden}} more (showing first {{shown}})',
'(binary)': '(binary)',
'(binary, new)': '(binary, new)',
'(new)': '(new)',
'(new, partial)': '(new, partial)',
'(deleted)': '(deleted)',
'(binary, deleted)': '(binary, deleted)',

// ============================================================================
// Commands - Agents
Expand Down
22 changes: 22 additions & 0 deletions packages/cli/src/i18n/locales/zh-TW.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,28 @@ export default {
'Configure authentication information for login': '配置登錄認證信息',
'Copy the last result or code snippet to clipboard':
'將最後的結果或代碼片段複製到剪貼板',
'Show working-tree change stats versus HEAD':
'顯示工作區相對 HEAD 的變更統計',
'Could not determine current working directory.': '無法確定當前工作目錄。',
'Failed to compute git diff stats': '計算 git diff 統計失敗',
'No diff available. Either this is not a git repository, HEAD is missing, or a merge/rebase/cherry-pick/revert is in progress.':
'無可用 diff。可能不是 Git 倉庫、HEAD 缺失,或正在執行 merge/rebase/cherry-pick/revert。',
'Clean working tree — no changes against HEAD.':
'工作區乾淨 —— 與 HEAD 無差異。',
'{{count}} file changed, +{{added}} / -{{removed}}':
'{{count}} 個檔案變更,+{{added}} / -{{removed}}',
'{{count}} files changed, +{{added}} / -{{removed}}':
'{{count}} 個檔案變更,+{{added}} / -{{removed}}',
'{{count}} file changed': '{{count}} 個檔案變更',
'{{count}} files changed': '{{count}} 個檔案變更',
'…and {{hidden}} more (showing first {{shown}})':
'…還有 {{hidden}} 個(僅顯示前 {{shown}} 個)',
'(binary)': '(二進位)',
'(binary, new)': '(二進位,新增)',
'(new)': '(新增)',
'(new, partial)': '(新增,部分統計)',
'(deleted)': '(已刪除)',
'(binary, deleted)': '(二進位,已刪除)',
'Manage subagents for specialized task delegation.':
'管理用於專門任務委派的子智能體',
'Manage existing subagents (view, edit, delete).':
Expand Down
22 changes: 22 additions & 0 deletions packages/cli/src/i18n/locales/zh.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,28 @@ export default {
'Configure authentication information for login': '配置登录认证信息',
'Copy the last result or code snippet to clipboard':
'将最后的结果或代码片段复制到剪贴板',
'Show working-tree change stats versus HEAD':
'显示工作区相对 HEAD 的变更统计',
'Could not determine current working directory.': '无法确定当前工作目录。',
'Failed to compute git diff stats': '计算 git diff 统计失败',
'No diff available. Either this is not a git repository, HEAD is missing, or a merge/rebase/cherry-pick/revert is in progress.':
'无可用 diff。可能不是 Git 仓库、HEAD 缺失,或正在执行 merge/rebase/cherry-pick/revert。',
'Clean working tree — no changes against HEAD.':
'工作区干净 —— 与 HEAD 无差异。',
'{{count}} file changed, +{{added}} / -{{removed}}':
'{{count}} 个文件变更,+{{added}} / -{{removed}}',
'{{count}} files changed, +{{added}} / -{{removed}}':
'{{count}} 个文件变更,+{{added}} / -{{removed}}',
'{{count}} file changed': '{{count}} 个文件变更',
'{{count}} files changed': '{{count}} 个文件变更',
'…and {{hidden}} more (showing first {{shown}})':
'…还有 {{hidden}} 个(仅显示前 {{shown}} 个)',
'(binary)': '(二进制)',
'(binary, new)': '(二进制,新增)',
'(new)': '(新增)',
'(new, partial)': '(新增,部分统计)',
'(deleted)': '(已删除)',
'(binary, deleted)': '(二进制,已删除)',

// ============================================================================
// Commands - Agents
Expand Down
2 changes: 2 additions & 0 deletions packages/cli/src/services/BuiltinCommandLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { contextCommand } from '../ui/commands/contextCommand.js';
import { copyCommand } from '../ui/commands/copyCommand.js';
import { docsCommand } from '../ui/commands/docsCommand.js';
import { doctorCommand } from '../ui/commands/doctorCommand.js';
import { diffCommand } from '../ui/commands/diffCommand.js';
import { directoryCommand } from '../ui/commands/directoryCommand.js';
import { editorCommand } from '../ui/commands/editorCommand.js';
import { exportCommand } from '../ui/commands/exportCommand.js';
Expand Down Expand Up @@ -103,6 +104,7 @@ export class BuiltinCommandLoader implements ICommandLoader {
compressCommand,
contextCommand,
copyCommand,
diffCommand,
deleteCommand,
docsCommand,
doctorCommand,
Expand Down
Loading
Loading