dsh-git-changes 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.en.md +105 -0
- package/README.md +122 -2
- package/THIRD_PARTY_NOTICES.md +12 -0
- package/assets/vendor/monaco/LICENSE +21 -0
- package/assets/vendor/monaco/ThirdPartyNotices.txt +448 -0
- package/assets/vendor/monaco/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/assets/vendor/monaco/vs/base/common/worker/simpleWorker.nls.js +7 -0
- package/assets/vendor/monaco/vs/base/common/worker/simpleWorker.nls.zh-cn.js +7 -0
- package/assets/vendor/monaco/vs/base/worker/workerMain.js +26 -0
- package/assets/vendor/monaco/vs/basic-languages/abap/abap.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/apex/apex.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/azcli/azcli.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/bat/bat.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/bicep/bicep.js +11 -0
- package/assets/vendor/monaco/vs/basic-languages/cameligo/cameligo.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/clojure/clojure.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/coffee/coffee.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/cpp/cpp.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/csharp/csharp.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/csp/csp.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/css/css.js +12 -0
- package/assets/vendor/monaco/vs/basic-languages/cypher/cypher.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/dart/dart.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/dockerfile/dockerfile.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/ecl/ecl.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/elixir/elixir.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/flow9/flow9.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/freemarker2/freemarker2.js +12 -0
- package/assets/vendor/monaco/vs/basic-languages/fsharp/fsharp.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/go/go.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/graphql/graphql.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/handlebars/handlebars.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/hcl/hcl.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/html/html.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/ini/ini.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/java/java.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/javascript/javascript.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/julia/julia.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/kotlin/kotlin.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/less/less.js +11 -0
- package/assets/vendor/monaco/vs/basic-languages/lexon/lexon.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/liquid/liquid.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/lua/lua.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/m3/m3.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/markdown/markdown.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/mdx/mdx.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/mips/mips.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/msdax/msdax.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/mysql/mysql.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/objective-c/objective-c.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/pascal/pascal.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/pascaligo/pascaligo.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/perl/perl.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/pgsql/pgsql.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/php/php.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/pla/pla.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/postiats/postiats.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/powerquery/powerquery.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/powershell/powershell.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/protobuf/protobuf.js +11 -0
- package/assets/vendor/monaco/vs/basic-languages/pug/pug.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/python/python.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/qsharp/qsharp.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/r/r.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/razor/razor.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/redis/redis.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/redshift/redshift.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/restructuredtext/restructuredtext.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/ruby/ruby.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/rust/rust.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/sb/sb.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/scala/scala.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/scheme/scheme.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/scss/scss.js +12 -0
- package/assets/vendor/monaco/vs/basic-languages/shell/shell.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/solidity/solidity.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/sophia/sophia.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/sparql/sparql.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/sql/sql.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/st/st.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/swift/swift.js +13 -0
- package/assets/vendor/monaco/vs/basic-languages/systemverilog/systemverilog.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/tcl/tcl.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/twig/twig.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/typescript/typescript.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/vb/vb.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/wgsl/wgsl.js +307 -0
- package/assets/vendor/monaco/vs/basic-languages/xml/xml.js +10 -0
- package/assets/vendor/monaco/vs/basic-languages/yaml/yaml.js +10 -0
- package/assets/vendor/monaco/vs/editor/editor.main.css +6 -0
- package/assets/vendor/monaco/vs/editor/editor.main.js +744 -0
- package/assets/vendor/monaco/vs/editor/editor.main.nls.js +28 -0
- package/assets/vendor/monaco/vs/editor/editor.main.nls.zh-cn.js +30 -0
- package/assets/vendor/monaco/vs/language/css/cssMode.js +13 -0
- package/assets/vendor/monaco/vs/language/css/cssWorker.js +81 -0
- package/assets/vendor/monaco/vs/language/html/htmlMode.js +13 -0
- package/assets/vendor/monaco/vs/language/html/htmlWorker.js +453 -0
- package/assets/vendor/monaco/vs/language/json/jsonMode.js +15 -0
- package/assets/vendor/monaco/vs/language/json/jsonWorker.js +36 -0
- package/assets/vendor/monaco/vs/language/typescript/tsMode.js +20 -0
- package/assets/vendor/monaco/vs/language/typescript/tsWorker.js +37016 -0
- package/assets/vendor/monaco/vs/loader.js +10 -0
- package/cordis.patch.yml +3 -0
- package/docs/images/git-changes-diff.png +0 -0
- package/icon.svg +10 -0
- package/lib/client.js +9418 -0
- package/lib/host/assets.js +161 -0
- package/lib/host/commit-message.js +158 -0
- package/lib/host/files-index.js +206 -0
- package/lib/host/git-write.js +194 -0
- package/lib/host/git.js +1147 -0
- package/lib/host/lsp.js +842 -0
- package/lib/host/routes.js +976 -0
- package/lib/host/session.js +84 -0
- package/lib/host/util.js +107 -0
- package/lib/index.js +33 -0
- package/licenses/dsh-vscode-mode-LICENSE +21 -0
- package/licenses/vscode-theme-seti-LICENSE +21 -0
- package/licenses/vscode-theme-seti-ThirdPartyNotices.txt +32 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +63 -3
- package/src/client/00-const.js +79 -0
- package/src/client/05-utils.js +277 -0
- package/src/client/10-i18n.js +548 -0
- package/src/client/12-vscode-icons.js +460 -0
- package/src/client/15-theme.js +509 -0
- package/src/client/20-monaco.js +1404 -0
- package/src/client/22-lsp.js +592 -0
- package/src/client/25-tree.js +563 -0
- package/src/client/28-changes.js +1163 -0
- package/src/client/30-page.js +2259 -0
- package/src/client/35-pill.js +185 -0
- package/src/client/40-commands.js +248 -0
- package/src/client/45-css.js +357 -0
- package/src/client/47-pickers.js +457 -0
- package/src/client/50-apply.js +207 -0
- package/src/client/99-footer.js +62 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-review-panel contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# dsh-git-changes
|
|
2
|
+
|
|
3
|
+
[](LICENSE) [](https://www.deepseek.com/download/) <br>
|
|
4
|
+
[中文](README.md)
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
> `.gitignore` in side-by-side mode (deleted lines tinted); the right sidebar holds the Git changes panel.
|
|
9
|
+
|
|
10
|
+
## What is this
|
|
11
|
+
|
|
12
|
+
`dsh-git-changes` brings a **Cursor-style code review experience** to DeepSeek Harness. It adds a **Code Review** tab to the official right sidebar, showing what changed in this agent turn, in the uncommitted worktree or in any historical git version as full source files with line-level diffs — and it brings the **VS Code shortcuts** you already know. Its left-hand changes panel mirrors the Cursor / VS Code CHANGES view: staged and unstaged groups, stage/unstage one file or all of them, and commit or commit & push right from the panel.
|
|
13
|
+
|
|
14
|
+
DSH's builtin review shows one hunk at a time; this panel gives you the **whole file** — added lines tinted across the full row, deleted lines kept inline with their original line numbers — plus a file tree, editor tabs and keyboard-driven navigation, so reviewing feels like working in an editor.
|
|
15
|
+
|
|
16
|
+
- **Full source + inline line-level diffs** — added lines tinted, deleted lines inline with original line numbers
|
|
17
|
+
- **Defaults to the Git uncommitted baseline** — open the panel and review the working tree; use the command palette to compare against an agent turn or any git version
|
|
18
|
+
- **Diff against any git version** — pick any historical commit (or type a branch, tag, `HEAD~2`, …) and review exactly what that commit changed; switch to "changes since this version" to see the cumulative diff up to the current worktree. Especially handy for reviewing the last round right after pushing
|
|
19
|
+
- **VS Code-style workspace** — file tree, editor tabs, Quick Open (`Ctrl+P`), command palette, workspace search
|
|
20
|
+
- **Language-server navigation** — `F12` definition, `Shift+F12` references, hover, document outline, read-only diagnostics
|
|
21
|
+
- **Git changes panel** — `Staged Changes` / `Changes` groups, stage or unstage a file or a whole group, commit message box, commit and commit & push, current branch with ahead/behind
|
|
22
|
+
- **AI commit messages**: the ✨ button in the commit box asks the Host default model to draft a message from the staged (or unstaged) diff; edit it before committing
|
|
23
|
+
- **Line blame**: pause the cursor on a line for about a second to see `author · time · subject` at the line end; hover the annotation for a commit card (author, time, full message, sha)
|
|
24
|
+
- **Commit graph**: a collapsible lane graph at the bottom of the changes panel lists the latest 80 commits; clicking one opens its diff as the baseline
|
|
25
|
+
- **Inline / side-by-side diffs** — one click to switch; `auto` mode picks a layout from the panel width (900px breakpoint)
|
|
26
|
+
- **Controlled git writes** — only touches the git index and commits: never rewrites files, never runs arbitrary commands, never force pushes; every write goes through a session-authenticated local route
|
|
27
|
+
- **Follows the DSH light/dark theme automatically**
|
|
28
|
+
|
|
29
|
+
## 🆕 What's New
|
|
30
|
+
|
|
31
|
+
### v0.1.0 · Git changes panel (first release of this fork)
|
|
32
|
+
|
|
33
|
+
- **Git changes panel** — the Code Review tab now has a `Changes | Project` switch. Changes mode mirrors the Cursor / VS Code CHANGES layout with `Staged Changes (N)` and `Changes (N)` groups, a collapsible tree, and M/A/D/untracked status markers.
|
|
34
|
+
- **Stage & commit** — hover `+` / `−` on a file row to stage or unstage it; group headers offer stage-all / unstage-all; the message box supports `⌘/Ctrl+Enter` to commit and `⌘/Ctrl+Shift+Enter` to commit & push (the `▾` menu next to the primary button does the same); the branch bar shows the current branch with ahead/behind.
|
|
35
|
+
- **Inline / side-by-side diffs** — a new toolbar toggle cycles auto → side-by-side → inline → auto. Clicking a staged file diffs `HEAD → index`; clicking an unstaged file diffs `index → worktree`.
|
|
36
|
+
- **Inherited from upstream** — Agent turn / Git uncommitted / any historical version baselines, VS Code shortcuts, language-server navigation, light/dark theme.
|
|
37
|
+
|
|
38
|
+
> Upstream history: [dsh-review-panel commits](https://github.com/sadgsk/dsh-review-panel/commits/main).
|
|
39
|
+
|
|
40
|
+
## Install
|
|
41
|
+
|
|
42
|
+
Requires **DSH 0.2.1-rc.2** or newer (Desktop and Web both work). Git and language servers are optional; the panel degrades gracefully without them.
|
|
43
|
+
|
|
44
|
+
### 1. Open the Plugins page
|
|
45
|
+
|
|
46
|
+
Open **Plugins** in DSH's left sidebar and click **Add plugin** at the top right:
|
|
47
|
+
|
|
48
|
+
### 2. Paste the repository URL and install
|
|
49
|
+
|
|
50
|
+
Paste the package name (`dsh-git-changes`) or a local directory path into the input and click **Install**:
|
|
51
|
+
|
|
52
|
+
### 3. Open Git Review
|
|
53
|
+
|
|
54
|
+
Restart DSH when prompted. Then click **+** in the right sidebar and choose **Git Review / Git 审查**:
|
|
55
|
+
|
|
56
|
+
You can also open it from the "本轮修改" pill above the chat input.
|
|
57
|
+
|
|
58
|
+
## Review changes from a historical git version
|
|
59
|
+
|
|
60
|
+
The panel defaults to **Git uncommitted** (staged compares against HEAD, unstaged against the index) and opens the first changed file automatically. To use another baseline, open the command palette (`Ctrl+Shift+P` / `Cmd+Shift+P`) and run `Show latest commit`, `Select a git version…`, `Switch to agent turn` or `View code only`.
|
|
61
|
+
|
|
62
|
+
- **Latest commit**: one click to review what the most recent commit (`HEAD`) changed. Right after a push, this is exactly the last round's diff.
|
|
63
|
+
- **Git version…**: opens the commit history (sha, subject, branch/tag refs and date). After you pick a commit:
|
|
64
|
+
- **This version's diff** (default) — what that commit introduced relative to its previous version (first parent). Works even when the worktree is clean or has moved on.
|
|
65
|
+
- **Changes since this version** — the cumulative diff from that version up to the current worktree (committed, staged, unstaged and untracked changes included).
|
|
66
|
+
- The input below the list also accepts any revision expression (full/short sha, branch, tag, `HEAD~2`, …).
|
|
67
|
+
|
|
68
|
+
Historical content comes from git. `F12`, find references, hover and the document outline keep working on that snapshot text (a cross-file jump opens the target file at the selected version; its line number comes from the current worktree and may be off); diagnostics stay hidden in this mode so an old snapshot is never mixed with the current project. Worktree baselines restore diagnostics automatically.
|
|
69
|
+
|
|
70
|
+
## Session switching
|
|
71
|
+
|
|
72
|
+
The review page remembers each conversation's workspace state: after switching sessions and back, the open files, tabs and diff baseline (including the selected git version) are still there instead of being reset.
|
|
73
|
+
|
|
74
|
+
## Shortcuts
|
|
75
|
+
|
|
76
|
+
Every command is registered through DSH's official shortcuts service, so all of them can be rebound in **Settings → General → Keyboard shortcuts**. On macOS, use `Cmd` instead of `Ctrl`; a chord the OS already owns may show as unbound, in which case rebind it in Settings.
|
|
77
|
+
|
|
78
|
+
| Action | Windows / Linux | macOS |
|
|
79
|
+
| --- | --- | --- |
|
|
80
|
+
| Open Code Review | `Ctrl+Alt+D` | `Cmd+Option+D` |
|
|
81
|
+
| Previous / next change | `Shift+F7` / `F7` | `Shift+F7` / `F7` |
|
|
82
|
+
| Quick Open | `Ctrl+P` (fallback `Ctrl+Alt+P`) | `Cmd+P` (fallback `Cmd+Option+P`) |
|
|
83
|
+
| Command palette | `Ctrl+Shift+P` | `Cmd+Shift+P` |
|
|
84
|
+
| Workspace search | `Ctrl+Shift+F` | `Cmd+Shift+F` |
|
|
85
|
+
| Go to line | `Ctrl+G` | `Cmd+G` |
|
|
86
|
+
| Next / previous tab | `Ctrl+Tab` / `Ctrl+Shift+Tab` | `Cmd+Tab` / `Cmd+Shift+Tab` |
|
|
87
|
+
| Close tab | `Ctrl+F4` | `Cmd+F4` |
|
|
88
|
+
| Show / hide file tree | `Ctrl+Shift+E` | `Cmd+Shift+E` |
|
|
89
|
+
| Document outline | `Ctrl+Shift+O` | `Cmd+Shift+O` |
|
|
90
|
+
| Find in editor | `Ctrl+F` | `Cmd+F` |
|
|
91
|
+
| Go to definition | `F12` / `Ctrl+click` | `F12` / `Cmd+click` |
|
|
92
|
+
| Find references | `Shift+F12` | `Shift+F12` |
|
|
93
|
+
| Fold / unfold block | `Ctrl+Shift+[` / `Ctrl+Shift+]` | `Cmd+Option+[` / `Cmd+Option+]` |
|
|
94
|
+
| Fold / unfold all | `Ctrl+K Ctrl+0` / `Ctrl+K Ctrl+J` | `Cmd+K Cmd+0` / `Cmd+K Cmd+J` |
|
|
95
|
+
| Font zoom | `Ctrl+wheel` / `Ctrl+=` / `Ctrl+-` / `Ctrl+0` | `Cmd+wheel` / `Cmd+=` / `Cmd+-` / `Cmd+0` |
|
|
96
|
+
|
|
97
|
+
Navigate back / forward has no default chord; bind it in Settings if you want it.
|
|
98
|
+
|
|
99
|
+
## Feedback
|
|
100
|
+
|
|
101
|
+
Found a bug, have an idea, or just want to share how you use it? Please report it in the release repository or on the plugin's marketplace page.
|
|
102
|
+
|
|
103
|
+
## License
|
|
104
|
+
|
|
105
|
+
[MIT](LICENSE). See [THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES.md) for third-party components and their licenses.
|
package/README.md
CHANGED
|
@@ -1,3 +1,123 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dsh-git-changes
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](LICENSE) [](https://www.deepseek.com/download/) <br>
|
|
4
|
+
[English](README.en.md)
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
> 截图:`.gitignore` 的左右并排 diff(删除行整行标红),右侧栏为 Git 更改面板。
|
|
9
|
+
|
|
10
|
+
## 这是什么
|
|
11
|
+
|
|
12
|
+
`dsh-git-changes` 把 **Cursor 式的代码审查体验**带进 DeepSeek Harness:在官方右侧栏里加一个「Git 审查」页,用完整源码 + 行级 diff 展示 Agent 本轮、Git 未提交或任意历史版本改了什么,并把常用的 **VS Code 快捷键操作**搬了过来。左栏的 Git 更改面板复刻了 Cursor/VS Code 的 CHANGES 体验——分组查看暂存的更改与未暂存的更改、逐个或全部暂存/取消暂存、填写提交信息后提交或提交并推送。
|
|
13
|
+
|
|
14
|
+
DSH 自带的审查是一个个 hunk 片段;这个插件给的是**整个文件**——新增行整行着色,删除行按原行号内联显示,配合文件树、编辑器标签页和键盘操作,像在编辑器里 review 一样。
|
|
15
|
+
|
|
16
|
+
- **完整源码 + 行级内联 diff**:新增行整行着色,删除行内联保留原行号
|
|
17
|
+
- **默认 Git 未提交基线**:打开即看工作区改动;需要对比本轮对话或任意历史版本时,用命令面板切换
|
|
18
|
+
- **任意 Git 版本 diff**:选中任意历史提交(也可输入分支、标签、`HEAD~2` 等版本引用),直接查看那次提交引入的改动;也能切换到「自该版本以来」查看该版本到当前工作区的累计改动。推送之后再回头 review 上一轮改动尤其方便
|
|
19
|
+
- **VS Code 式工作区**:文件树、编辑器标签页、Quick Open(Ctrl+P)、命令面板、工作区搜索
|
|
20
|
+
- **语言服务导航**:F12 跳转定义、Shift+F12 查找引用、悬停提示、文档大纲、只读诊断
|
|
21
|
+
- **Git 更改面板**:`暂存的更改` / `更改` 两组、文件与分组一键暂存/取消暂存、提交信息框、提交与提交并推送、当前分支与 ahead/behind 显示
|
|
22
|
+
- **AI 生成提交信息**:提交框右侧 ✨ 按钮调用 Host 的默认模型,根据已暂存(无暂存时用未暂存)改动生成提交信息,填入后仍可修改
|
|
23
|
+
- **行级 Blame**:光标在某行停留约 1 秒后,行尾显示「作者 · 时间 · 提交说明」;鼠标移到标注上弹出提交详情卡片(作者、时间、完整 commit message、提交号)
|
|
24
|
+
- **提交图谱**:更改面板底部「提交图谱」折叠区,用 lane 图展示最近 80 条提交,点击任意提交即以该版本为对比基线打开 diff
|
|
25
|
+
- **内联 / 左右并排 diff**:一键切换,`auto` 模式按面板宽度自动选择(900px 阈值)
|
|
26
|
+
- **可控的 Git 写操作**:只碰 Git 索引与提交,不写文件、不执行任意命令、不 force push;所有写操作都走 DSH 会话鉴权的本地接口
|
|
27
|
+
- **自动跟随 DSH 明暗主题**
|
|
28
|
+
|
|
29
|
+
## 🆕 版本更新
|
|
30
|
+
|
|
31
|
+
### v0.1.0 · Git 更改面板(本 fork 首个版本)
|
|
32
|
+
|
|
33
|
+
- **Git 更改面板**:右侧栏「Git 审查」页新增「更改 | 文件树」分段。更改模式按 Cursor/VS Code 的 CHANGES 布局展示 `暂存的更改 (N)` 与 `更改 (N)` 两个分组,目录树折叠、未跟踪/修改/新增/删除状态标记。
|
|
34
|
+
- **暂存与提交**:文件行 hover `+` / `−` 暂存或取消暂存;分组头可一键全部暂存/取消暂存;提交信息框支持 `⌘/Ctrl+Enter` 提交、`⌘/Ctrl+Shift+Enter` 提交并推送,主按钮旁 `▾` 也可选择「提交并推送」;分支栏显示当前分支与 ahead/behind。
|
|
35
|
+
- **内联 / 左右并排 diff**:工具栏新增布局切换(auto → 左右并排 → 内联 → auto)。点击暂存区文件看 `HEAD → 索引` 的改动,点击未暂存文件看 `索引 → 工作区` 的改动。
|
|
36
|
+
- **沿用上游能力**:Agent 本轮 / Git 未提交 / 任意历史版本三种对比基线、VS Code 快捷键、语言服务导航、明暗主题跟随。
|
|
37
|
+
|
|
38
|
+
> 上游版本的完整改动记录见 [dsh-review-panel 提交历史](https://github.com/sadgsk/dsh-review-panel/commits/main)。
|
|
39
|
+
|
|
40
|
+
## 安装
|
|
41
|
+
|
|
42
|
+
需要 **DSH 0.2.1-rc.2** 或更高版本(Desktop 与 Web 均可)。Git 与语言服务器都是可选项,缺失时自动降级。
|
|
43
|
+
|
|
44
|
+
### 1. 打开插件页
|
|
45
|
+
|
|
46
|
+
在 DSH 左侧栏打开 **插件**,点右上角的 **添加插件**:
|
|
47
|
+
|
|
48
|
+
### 2. 粘贴仓库地址并安装
|
|
49
|
+
|
|
50
|
+
在输入框中粘贴本插件包名(`dsh-git-changes`)或本地目录路径,点 **安装**:
|
|
51
|
+
|
|
52
|
+
### 3. 打开 Git 审查
|
|
53
|
+
|
|
54
|
+
安装完成后按提示重启 DSH。之后在右侧栏点 **+**,选择 **Git 审查** 即可:
|
|
55
|
+
|
|
56
|
+
如果预览入口还没出现,也可以点击聊天输入框上方的「本轮修改」直接打开。
|
|
57
|
+
|
|
58
|
+
## 查看历史 Git 版本的改动
|
|
59
|
+
|
|
60
|
+
插件默认固定在 **Git 未提交** 基线(暂存看 HEAD、未暂存看索引),打开面板就会自动选中第一个改动文件。需要看其他基线时,打开命令面板(`Ctrl+Shift+P` / `Cmd+Shift+P`)搜索对应命令:`查看最新提交`、`选择 Git 版本…`、`切换到本轮改动`、`仅代码查看`。
|
|
61
|
+
|
|
62
|
+
- **最新提交**:查看最近一次提交(`HEAD`)引入的改动。刚 push 完想 review 上一轮时用它。
|
|
63
|
+
- **选择 Git 版本…**:打开提交历史列表(显示 sha、提交说明、分支/标签与时间)。选中一个提交后:
|
|
64
|
+
- **该版本改动**(默认):展示该提交相对上一版本(第一父提交)引入的改动,即使工作区已经干净或又有了新提交,也能准确回看那一轮。
|
|
65
|
+
- **自该版本以来**:展示该版本到当前工作区的累计改动,包含已提交、已暂存、未暂存和新增文件。
|
|
66
|
+
- 列表下方的输入框也可以直接输入任意版本引用(完整/短 sha、分支、标签、`HEAD~2` 等)。
|
|
67
|
+
|
|
68
|
+
历史版本的内容来自 Git:`F12`、查找引用、悬停与文档大纲由语言服务器基于该快照文本工作,跨文件跳转会打开目标文件在当前选中版本中的内容(行号取自工作区当前版本,可能略有偏移);为避免旧快照与新工作区混用产生误报,该模式下不显示诊断标记。切回工作区相关基线后诊断自动恢复。
|
|
69
|
+
|
|
70
|
+
## 会话切换
|
|
71
|
+
|
|
72
|
+
审查页会记住每个会话的工作区状态:切换会话再切回来时,仍停留在之前的文件、标签页与对比基线(包括选中的 Git 版本),不会被重置。
|
|
73
|
+
|
|
74
|
+
## 快捷键
|
|
75
|
+
|
|
76
|
+
所有命令都注册在 DSH 官方快捷键服务里,可在 **设置 → 通用 → 键盘快捷键** 中重新绑定。macOS 上把 `Ctrl` 换成 `Cmd`;个别组合被系统占用时会显示为未绑定,此时可在设置里改绑。
|
|
77
|
+
|
|
78
|
+
| 操作 | Windows / Linux | macOS |
|
|
79
|
+
| --- | --- | --- |
|
|
80
|
+
| 打开代码审查 | `Ctrl+Alt+D` | `Cmd+Option+D` |
|
|
81
|
+
| 上一处 / 下一处改动 | `Shift+F7` / `F7` | `Shift+F7` / `F7` |
|
|
82
|
+
| 快速打开文件 | `Ctrl+P`(被占用时 `Ctrl+Alt+P`) | `Cmd+P`(被占用时 `Cmd+Option+P`) |
|
|
83
|
+
| 命令面板 | `Ctrl+Shift+P` | `Cmd+Shift+P` |
|
|
84
|
+
| 工作区搜索 | `Ctrl+Shift+F` | `Cmd+Shift+F` |
|
|
85
|
+
| 跳转到行 | `Ctrl+G` | `Cmd+G` |
|
|
86
|
+
| 下一个 / 上一个标签页 | `Ctrl+Tab` / `Ctrl+Shift+Tab` | `Cmd+Tab` / `Cmd+Shift+Tab` |
|
|
87
|
+
| 关闭标签页 | `Ctrl+F4` | `Cmd+F4` |
|
|
88
|
+
| 显示 / 隐藏文件树 | `Ctrl+Shift+E` | `Cmd+Shift+E` |
|
|
89
|
+
| 文档大纲 | `Ctrl+Shift+O` | `Cmd+Shift+O` |
|
|
90
|
+
| 编辑器内查找 | `Ctrl+F` | `Cmd+F` |
|
|
91
|
+
| 跳转定义 | `F12` / `Ctrl+单击` | `F12` / `Cmd+单击` |
|
|
92
|
+
| 查找引用 | `Shift+F12` | `Shift+F12` |
|
|
93
|
+
| 折叠 / 展开代码块 | `Ctrl+Shift+[` / `Ctrl+Shift+]` | `Cmd+Option+[` / `Cmd+Option+]` |
|
|
94
|
+
| 全部折叠 / 全部展开 | `Ctrl+K Ctrl+0` / `Ctrl+K Ctrl+J` | `Cmd+K Cmd+0` / `Cmd+K Cmd+J` |
|
|
95
|
+
| 字号缩放 | `Ctrl+滚轮` / `Ctrl+=` / `Ctrl+-` / `Ctrl+0` | `Cmd+滚轮` / `Cmd+=` / `Cmd+-` / `Cmd+0` |
|
|
96
|
+
|
|
97
|
+
导航后退 / 前进默认不占用按键,可在设置里自行绑定。
|
|
98
|
+
|
|
99
|
+
## 开发与验证
|
|
100
|
+
|
|
101
|
+
改动任何客户端代码后,先跑完整回归(逐步输出,失败即停):
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
node scripts/verify.mjs
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
覆盖:构建 → 语法检查 → Hooks 位置检查 → smoke(client/host 路由)→ 页面状态机 → 快捷键 → git 只读层 → LSP → git 扩展(blame/history/AI 提交信息/discard)。
|
|
108
|
+
|
|
109
|
+
手工验收清单见 [docs/regression-checklist.md](docs/regression-checklist.md):重启 DSH NEXT 后逐项确认页签、暂存/放弃、diff 双模式、改动导航、基线记忆等既有功能。
|
|
110
|
+
|
|
111
|
+
**注意**:DSH Desktop 不支持 Cmd+R,客户端改动需 Cmd+Q 重启应用才会加载新 bundle。
|
|
112
|
+
|
|
113
|
+
## 来源与致谢
|
|
114
|
+
|
|
115
|
+
本插件是 [sadgsk/dsh-review-panel](https://github.com/sadgsk/dsh-review-panel) 0.3.1(MIT)的 fork,在其只读代码审查面板基础上新增 Git 更改面板与暂存/提交/推送写操作。上游版权与许可声明见 [THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES.md)。
|
|
116
|
+
|
|
117
|
+
## 反馈
|
|
118
|
+
|
|
119
|
+
使用中遇到问题或有功能建议,欢迎在插件的发布仓库或 DSH 插件市场页面反馈。
|
|
120
|
+
|
|
121
|
+
## License
|
|
122
|
+
|
|
123
|
+
采用 [MIT](LICENSE) 许可。第三方组件与对应许可见 [THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES.md)。
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
The following components are distributed with, embedded in, or adapted by dsh-git-changes. Their original notices and license terms are retained in this package.
|
|
4
|
+
|
|
5
|
+
| Component | Source and attribution | Included license / notices |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| Monaco Editor AMD distribution and codicon font | Microsoft Corporation; copied from the Monaco assets distributed with `dsh-vscode-mode@0.15.9` | [LICENSE](assets/vendor/monaco/LICENSE), [ThirdPartyNotices.txt](assets/vendor/monaco/ThirdPartyNotices.txt) |
|
|
8
|
+
| Inline diff / Monaco loader reference implementation | [dsh-vscode-mode](https://github.com/Lenonss/DSH_VsCodeMode), copyright (c) 2026 LiuZiLong | [MIT license](licenses/dsh-vscode-mode-LICENSE) |
|
|
9
|
+
| VS Code Seti icon theme data | [vscode-theme-seti](https://github.com/microsoft/vscode/tree/main/extensions/theme-seti), copyright (c) Microsoft Corporation | [MIT license](licenses/vscode-theme-seti-LICENSE) |
|
|
10
|
+
| Embedded Seti icon font and artwork | [seti-ui](https://github.com/jesseweed/seti-ui), copyright (c) 2014 Jesse Weed | [Original Seti notice and MIT license](licenses/vscode-theme-seti-ThirdPartyNotices.txt) |
|
|
11
|
+
|
|
12
|
+
The generated Seti theme data and embedded WOFF are part of `lib/client.js` (source: `src/client/12-vscode-icons.js`). The original VS Code theme associates these assets with Seti UI revision `2d6c5e68b4ded73c92dac291845ee44e1182d511`.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016 - present Microsoft Corporation
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|