@caozeal/dsh-next-git 0.1.5 → 0.1.7
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/README.md +26 -9
- package/assets/screenshots/01-changes.png +0 -0
- package/assets/screenshots/02-commit-graph.png +0 -0
- package/assets/screenshots/03-word-level-diff.png +0 -0
- package/assets/screenshots/04-branches.png +0 -0
- package/assets/screenshots/05-graph-multibranch.png +0 -0
- package/assets/screenshots/06-fullscreen.png +0 -0
- package/assets/screenshots/README.md +24 -0
- package/lib/client.js +513 -13
- package/package.json +3 -1
- package/screenshots.json +8 -0
- package/src/ai-commit.js +65 -22
- package/src/ai-conflict.js +159 -0
- package/src/operations.js +355 -6
package/README.md
CHANGED
|
@@ -4,11 +4,15 @@
|
|
|
4
4
|
>
|
|
5
5
|
> 原名 `dsh-plugin-git-manager`,2026-10 起包名改为 `@caozeal/dsh-next-git`(目录仍为 `dsh-next-git/`,功能不变)。
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 41 秒介绍片
|
|
8
8
|
|
|
9
9
|
https://github.com/user-attachments/assets/c57169b4-df00-450d-b4f0-7a2c64db03b6
|
|
10
10
|
|
|
11
|
-
*全片界面为渲染示意,不含真实会话;[完整播放页](https://dsh
|
|
11
|
+
*全片界面为渲染示意,不含真实会话;[完整播放页](https://dsh.caozeal.cn/next-git/) 另有下载版。*
|
|
12
|
+
|
|
13
|
+
**不想先装再看?** [在线 Demo](https://dsh.caozeal.cn/next-git/demo/) 可以直接点——
|
|
14
|
+
它加载的是发布包里同一份 `lib/client.js`,只补了一个最小假宿主和一份真实仓库的录制快照
|
|
15
|
+
(详见 [`demo/README.md`](https://github.com/caozeal/dsh-plugins/blob/main/dsh-next-git/demo/README.md))。写操作在 Demo 里是禁用的,会明确提示。
|
|
12
16
|
|
|
13
17
|
在 DSH Web GUI **会话的右侧边栏**加一个 Git tab(2026-10-22 从左侧全局面板迁移而来):
|
|
14
18
|
会话头部点 **Git 图标**直接打开(会自动展开右栏),或在右栏的「+ → 开始」指南页里
|
|
@@ -17,12 +21,24 @@ https://github.com/user-attachments/assets/c57169b4-df00-450d-b4f0-7a2c64db03b6
|
|
|
17
21
|
- **便捷分支切换**:顶栏下拉出全部本地/远程分支(含 ahead/behind 与最近提交),
|
|
18
22
|
一键切换;点远程分支自动建同名跟踪分支;支持新建、删除分支。
|
|
19
23
|
- **变更管理**:staged / unstaged / untracked / conflicted 四组文件列表,
|
|
20
|
-
单文件或全部暂存/取消暂存,点击文件看 diff
|
|
24
|
+
单文件或全部暂存/取消暂存,点击文件看 diff。每行还带**丢弃**按钮:
|
|
25
|
+
未暂存回到 HEAD、未跟踪直接删除、已暂存连暂存区一起回退(都会二次确认)。
|
|
26
|
+
冲突文件不给丢弃——那等于放弃冲突解决状态,容易误伤。
|
|
27
|
+
- **Stash**:分支页底部可直接 stash 当前改动(有未跟踪文件时自动带 `-u`),
|
|
28
|
+
列出全部 stash,一键恢复(pop)或删除(drop)。
|
|
29
|
+
- **AI 解决冲突**:冲突文件点「解决」,AI 读索引里的 base / ours / theirs 三份版本,
|
|
30
|
+
给出一份合并后的完整文件——**只生成建议,确认后才写盘**;确认时再校验一遍有没有
|
|
31
|
+
残留 `<<<<<<<` 才 `git add`。机械场景可以直接「取当前分支 / 取对方分支」。
|
|
32
|
+
冲突文件刻意不提供「暂存」按钮:`git add` 会把带冲突标记的文件直接标记为已解决。
|
|
21
33
|
- **提交 / 推送 / 拉取**:Fetch、Pull、Push 按钮,提交信息输入框,
|
|
22
34
|
支持「提交」「提交并推送」;无 upstream 时自动 `push -u origin <branch>`。
|
|
23
|
-
- **AI 提交信息**:读取已暂存 diff +
|
|
24
|
-
Conventional Commits
|
|
25
|
-
`chore: 更新 N 个文件`。
|
|
35
|
+
- **AI 提交信息**:读取已暂存 diff + 最近提交风格,调用当前默认模型生成
|
|
36
|
+
Conventional Commits 提交信息(标题 + 可选正文,正文用来说清动机与影响面),
|
|
37
|
+
填入输入框供编辑;模型不可用时降级为 `chore: 更新 N 个文件`。
|
|
38
|
+
- **可自定义的提交提示词**:提交区齿轮按钮可改写系统提示词,存在
|
|
39
|
+
`git config dsh.commitPrompt`(本地优先、可全局兜底,不产生工作区文件)。
|
|
40
|
+
自定义只改「怎么写」,diff 与变更文件列表始终由 Host 装配后传给模型——
|
|
41
|
+
提示词写坏也不会让模型凭空编造。
|
|
26
42
|
- **彩色提交图(graph)**:`git log --graph --all` 的图形化渲染。每条分支线一种颜色,
|
|
27
43
|
跨行保持同色;分支名徽章与它自己的线条严格同色,滚到哪都认得出。同一屏出现过的
|
|
28
44
|
分支保证互不撞色(按首次出现顺序分配,不是对名字取哈希——8 色槽下取模约 1/8 会撞)。
|
|
@@ -175,7 +191,7 @@ op 一览:`snapshot` `graph` `diff` `stage` `unstage` `switchBranch` `deleteBr
|
|
|
175
191
|
`fallback: true`(UI 显示「模型输出不可用,已生成降级文案」)。
|
|
176
192
|
- **错误码分层**:`invalid-params`(含未知 op)HTTP 400;git 业务失败 HTTP 200 +
|
|
177
193
|
`ok:false`,UI 统一按 body 判定。
|
|
178
|
-
- **文案全部走 Client locale**(zh/en 共
|
|
194
|
+
- **文案全部走 Client locale**(zh/en 共 134 个 key),tab 标题与头部按钮都是
|
|
179
195
|
「Git 管理 / 打开 Git 管理」;面板只用 `--dsw-alias-*` 主题 token。
|
|
180
196
|
|
|
181
197
|
## 已知限制
|
|
@@ -185,5 +201,6 @@ op 一览:`snapshot` `graph` `diff` `stage` `unstage` `switchBranch` `deleteBr
|
|
|
185
201
|
- 大仓库的 graph 默认取 80 条(上限 300);diff 超过 400k 字符会截断。
|
|
186
202
|
- 会话的工作目录被删除/不可访问时,面板显示「工作目录不存在或无法访问」空态
|
|
187
203
|
(Host 返回 `cwd-unavailable`),不会展示原始 spawn 错误。
|
|
188
|
-
- AI
|
|
189
|
-
|
|
204
|
+
- AI 解决冲突按「单个文件」处理,不提供「一次性解决全部冲突」的批量操作;
|
|
205
|
+
多个文件仍要逐个确认(这是有意的,批量自动落盘风险太高)。
|
|
206
|
+
- 网络操作超时 180s;无凭据的私有仓库会失败并把 git stderr 显示出来。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 插件市场截图素材
|
|
2
|
+
|
|
3
|
+
`screenshots.json`(本目录上一级)里声明的 6 张图,供 dsh-market 等插件市场详情页展示。
|
|
4
|
+
它们由 `test/live/artifacts/` 里的真机验证截图加工而来,**都做过打码**。
|
|
5
|
+
|
|
6
|
+
| 文件 | 来源 | 处理 |
|
|
7
|
+
| --- | --- | --- |
|
|
8
|
+
| `01-changes.png` | `V19-style-changes.png` | 左栏 + 对话区(x < 708)高斯模糊 σ=28 |
|
|
9
|
+
| `02-commit-graph.png` | `V25-colored-graph-refs.png` | 同上 |
|
|
10
|
+
| `03-word-level-diff.png` | `V24-word-level-diff.png` | 同上 |
|
|
11
|
+
| `04-branches.png` | `V20-whale-branches.png` | 同上 |
|
|
12
|
+
| `05-graph-multibranch.png` | `V26-colored-graph-multibranch.png` | 纯提交图渲染,裁掉下方空白(1280×320) |
|
|
13
|
+
| `06-fullscreen.png` | `V18-right-tab-fullscreen.png` | 面板全屏,不含界面外内容,无需处理 |
|
|
14
|
+
|
|
15
|
+
重新生成(`ffmpeg`,需 `gblur` 滤镜):
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
IN=test/live/artifacts
|
|
19
|
+
ffmpeg -i "$IN/V24-word-level-diff.png" -filter_complex \
|
|
20
|
+
"[0:v]split[a][b];[b]crop=708:577:0:0,gblur=sigma=28[c];[a][c]overlay=0:0" \
|
|
21
|
+
assets/screenshots/03-word-level-diff.png
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
换图时保持文件名不变,市场下次构建自动生效;增删条目改 `screenshots.json`,1–8 张。
|