dsh-ide-git 0.22.0 → 0.24.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/README.md CHANGED
@@ -104,7 +104,7 @@ DSH 自带的 Git 面板覆盖「暂存 / 提交 / 还原 / 看历史」;`dsh-id
104
104
  | 提交列表 | 列序对齐 IDEA:**日期 → 提交人 → 图谱 → 分支标签 → 提交信息**;lane 拓扑图整格连线(相邻行像素对齐)、HEAD 空心点、refs 徽章(HEAD 绿 / 本地蓝 / 远程紫 / 标签黄,最多 3 个 + `+n`)、加载更多/无限滚动(每页 120)、三列表框选批量选中 |
105
105
  | 提交右键 | 提交详情、复制修订号、签出该修订(确认)、在此新建分支、新建标签、cherry-pick、还原提交、重置到此(保留 / 丢弃更改)、发送到对话(短哈希 + 提交信息 + 仓库) |
106
106
  | 提交详情 | 完整提交信息、作者/日期、变更文件列表(+/−),点文件看逐行 diff |
107
- | diff 窗 | DSH 自家 DiffBlock 渲染(红绿底 + 复制/换行工具栏)、高度可拖拽调节并按位置记忆;**选中 diff 行右键**把行级引用发进对话——`@文件` + 第 N–M 行 + 提交(短哈希/标题/当前分支)或工作区(已暂存/未提交)上下文,删除行标注旧行号,选区定位不到行时发选中片段(截断 600 字符),另有「复制选中引用」 |
107
+ | diff 窗 | 内嵌逐行 diff(红绿底 + **左右分栏 / 自动换行**开关 + 复制工具栏)、高度可拖拽调节并按位置记忆;默认在面板内打开,装了 dsh-better-sidebar 或原生预览座位也不会被顶掉——设置卡「面板放置」里可关掉「在面板内预览差异」,交回侧边栏 diff。**选中 diff 行右键**把行级引用发进对话——`@文件` + 第 N–M 行 + 提交(短哈希/标题/当前分支)或工作区(已暂存/未提交)上下文,删除行标注旧行号,选区定位不到行时发选中片段(截断 600 字符),另有「复制选中引用」 |
108
108
  | 变更列表 | 冲突 / 已暂存 / 更改 / 未跟踪 四组,行内 暂存 / 取消暂存 / 丢弃,分组级「全部暂存 / 全部取消暂存」,点击行看 diff |
109
109
  | 提交框 | 多行提交信息、`Ctrl+Enter`(macOS `Cmd+Enter`)提交、修补上次提交(`--amend`) |
110
110
  | 文件右键 | 显示差异、暂存/取消暂存、丢弃更改、复制路径、发送到对话(`@文件` 引用 chip 或文件路径) |
@@ -128,7 +128,8 @@ dsh plugin --profile web add dsh-better-sidebar
128
128
 
129
129
  ### 兼容性
130
130
 
131
- - `engines.dsh` 与 `@deepseek-ai/dsh` 的 peerDependencies 都声明为 **`>=0.2.2-alpha.2`**:本版跟随 dsh 0.2.2-alpha.2 的会话列表行尾座位与模型徽章字段,pre-release 需要显式写出起点才匹配。范围是**开放下界、不封顶**,之后的 rc / alpha 预发布都算。dsh 会强制执行 peer 里的 `@deepseek-ai/dsh*` 范围(不满足就不加载),`engines` 是给包管理器与排障看的第二份声明。
131
+ - `engines.dsh` 与 `@deepseek-ai/dsh` 的 peerDependencies 都声明为 **`>=0.1.6-alpha.2`**(插件详情页设置卡与面板配置座位的起始版本)。范围是**开放下界、不封顶**,之后的 rc / alpha 预发布都算。dsh 会强制执行 peer 里的 `@deepseek-ai/dsh*` 范围(不满足就不加载),`engines` 是给包管理器与排障看的第二份声明。
132
+ - 新宿主字段一律**能力探测、不写死版本**:0.2.2-alpha.2 起才有的模型徽章数据,宿主提供就显示、没有就保持旧外观;工作树视图只调用本地 `git worktree`,不依赖新宿主 API;宿主不提供行配置(0.1.7 以前)时设置卡显示不可用,内嵌 diff 预览保持默认开启。
132
133
  - 只依赖三样长期契约:宿主半的 `webServer.register({ kind: 'prefix' })` 路由、客户端半的 `window.__ModuleLoader__.load({ id, factory })`、以及客户端的 `slots` 服务。**不引用 `ui-primitives` 图标集**(图标全是自带 SVG),所以宿主删改图标不会波及本插件。
133
134
  - 底座是**可选** peer:没装、装坏了、或它自己要等上游修,都不影响本插件挂到原生右侧栏。
134
135
 
package/README_EN.md CHANGED
@@ -57,7 +57,7 @@ Everything in the panel can be right-clicked into the **current session's compos
57
57
  - **File** (change rows and commit-detail file rows) → a `@path` file reference chip (DSH's native @ grammar, quoted paths included) or just the raw path;
58
58
  - **Selected diff lines**: select some text in a diff window (opened from a commit detail or the working tree), right-click → **Send selected lines to chat**: an `@file` chip plus a line note — `lines N–M (commit 47ad017 "Subject" @ branch)` for a commit, `lines N–M (worktree, staged / uncommitted)` for the working tree. Numbers are reconstructed from the diff rows under the selection against the patch's hunk headers, in **new-file numbering**; a purely deleted span reports OLD numbers and says so. If the selection cannot be pinned to diff rows the menu degrades to **Send selected snippet to chat** (text truncated at 600 characters) instead of inventing numbers, and a **Copy the selection reference** item is always there. With no selection the browser's own menu stays.
59
59
 
60
- Also in place: change-row and detail-file-row icons are tinted by extension (DSH's own FileTypeIcon); diff previews render through DSH's own DiffBlock (red/green rows, copy / wrap toolbar, host-consistent visuals); the diff window's height is draggable and remembered per placement; and the whole panel can live in the **main conversation area** — the Git tab next to Dialogue / Trace, switchable in the plugin settings.
60
+ Also in place: change-row and detail-file-row icons are tinted by extension (DSH's own FileTypeIcon); diff previews render inline (red/green rows, split / wrap switches, copy toolbar) and stay inline by default even when dsh-better-sidebar or the native preview seat is installed — the settings card can hand them back to the sidebar; the diff window's height is draggable and remembered per placement; and the whole panel can live in the **main conversation area** — the Git tab next to Dialogue / Trace, switchable in the plugin settings.
61
61
 
62
62
  ## Where it mounts: two hosts, one panel
63
63
 
@@ -92,7 +92,7 @@ The panel never guesses: it measures itself with a `ResizeObserver` (width ≥ 6
92
92
  - Commit list: IDEA column order — **date → author → graph → refs → subject**; a lane graph whose segments span whole rows (pixel-aligned across rows), a hollow dot for HEAD, refs badges (HEAD green / local blue / remote violet / tag amber, at most three plus `+n`), load more (120 per page).
93
93
  - Commit context menu: details, copy revision, checkout revision, new branch here, new tag, cherry-pick, revert, reset here (keep / discard changes), send to chat (short hash + message + repo).
94
94
  - Commit details: full message, author/date, changed files with +/− and per-file line diff.
95
- - Diff pane: rendered with DSH's own DiffBlock (red/green rows plus a copy / wrap toolbar), draggable height remembered per placement; **select diff rows and right-click** to send a line-level reference into the conversation — an `@file` chip plus the line range with commit (hash / subject / current branch) or worktree (staged / uncommitted) context; deleted rows are labelled as old-numbered, selections that cannot be pinned to rows degrade to the raw snippet (truncated at 600 characters), and a copy-reference item is always available.
95
+ - Diff pane: inline line diff (red/green rows, **split / wrap** switches, copy toolbar), opened inline by default so installing dsh-better-sidebar cannot take those controls away — turn off "Preview diffs in the panel" in the settings card to hand previews back to the sidebar; draggable height remembered per placement; **select diff rows and right-click** to send a line-level reference into the conversation — an `@file` chip plus the line range with commit (hash / subject / current branch) or worktree (staged / uncommitted) context; deleted rows are labelled as old-numbered, selections that cannot be pinned to rows degrade to the raw snippet (truncated at 600 characters), and a copy-reference item is always available.
96
96
  - Changes: conflicts / staged / changes / untracked groups, inline stage / unstage / discard, group-level actions, click for diff.
97
97
  - Commit box: multi-line message, Ctrl+Enter (Cmd+Enter) to commit, amend. The AI commit-message model picker also shows each model's listing badge, localized to the active interface language.
98
98
  - File context menu: show diff, stage / unstage, discard changes, copy path, send to chat (an `@file` reference chip or the raw path).
@@ -115,7 +115,8 @@ Restart `dsh web`, then:
115
115
 
116
116
  ### Compatibility
117
117
 
118
- - `engines.dsh` and the `@deepseek-ai/dsh` peerDependency are both **`>=0.2.2-alpha.2`**: this release follows the 0.2.2-alpha.2 session-row trailing seat and model badge fields, and a prerelease needs an explicit floor to match. The range is an **open floor with no ceiling**, so later rc / alpha prereleases are included. DSH enforces the peer range (an unsatisfied one keeps the plugin from loading); `engines` is the second declaration for package managers and diagnostics.
118
+ - `engines.dsh` and the `@deepseek-ai/dsh` peerDependency are both **`>=0.1.6-alpha.2`** (the plugin detail-page settings card and panel-config seat). The range is an **open floor with no ceiling**, so later rc / alpha prereleases are included. DSH enforces the peer range (an unsatisfied one keeps the plugin from loading); `engines` is the second declaration for package managers and diagnostics.
119
+ - New host fields are **capability-detected, never version-sniffed**: model badge data (0.2.2-alpha.2+) is shown when the host serves it and the old look stays otherwise; the worktree view only calls the local `git worktree`, with no new host API; on hosts without row Config (before 0.1.7) the settings card reports unavailable and the inline diff preview stays on by default.
119
120
  - Three long-lived contracts, nothing else: the host's `webServer.register({ kind: 'prefix' })` route, the client's `window.__ModuleLoader__.load({ id, factory })`, and the client `slots` service. It does **not** import the `ui-primitives` icon set (every icon is an inline SVG), so host icon changes cannot reach it.
120
121
  - better-sidebar is an **optional** peer: absent, broken, or waiting on its own upstream fix, the plugin still mounts in the native right sidebar.
121
122
 
package/dsh.plugin.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "id": "dsh-external/dsh-ide-git",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "main": "./src/index.js",
5
5
  "description": "IDE 级 Git 操作面板:分支树 + 提交图谱 + 变更/暂存/提交 + 提交详情。装了 dsh-better-sidebar 时挂成它的原生 tab(右侧栏 + 底部工作台);没装时直接挂 DSH 原生右侧栏,单独安装即可用。JetBrains 风格 Git 工具窗口 for DeepSeek Harness.",
6
6
  "engines": {
7
- "dsh": ">=0.2.2-alpha.2"
7
+ "dsh": ">=0.1.6-alpha.2"
8
8
  },
9
9
  "contributes": {
10
10
  "tools": [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-ide-git",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "DSH plugin: an IDE-grade Git tool window as a native dsh-better-sidebar tab — branch tree, commit graph, changes, commit details, JetBrains-style actions, in the right sidebar and the bottom panel. | DSH 插件:IDE 级 Git 工具窗口,以 dsh-better-sidebar 原生 Tab 挂载——分支树 / 提交图谱 / 变更与提交详情 / JetBrains 风格操作,右侧栏与底部面板双布局自适应。",
5
5
  "type": "module",
6
6
  "repository": {
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "engines": {
21
21
  "node": ">=18",
22
- "dsh": ">=0.2.2-alpha.2"
22
+ "dsh": ">=0.1.6-alpha.2"
23
23
  },
24
24
  "dsh": {
25
25
  "bundle": {
@@ -39,6 +39,7 @@
39
39
  "icon.svg",
40
40
  "locale",
41
41
  "src/index.js",
42
+ "src/host",
42
43
  "src/client.js",
43
44
  "cordis.patch.yml",
44
45
  "dsh.plugin.json",
@@ -66,7 +67,7 @@
66
67
  "license": "MIT",
67
68
  "peerDependencies": {
68
69
  "@deepseek-ai/cordis": "^4.0.1",
69
- "@deepseek-ai/dsh": ">=0.2.2-alpha.2",
70
+ "@deepseek-ai/dsh": ">=0.1.6-alpha.2",
70
71
  "dsh-better-sidebar": ">=0.12.0"
71
72
  },
72
73
  "peerDependenciesMeta": {