dsh-sidenote 0.3.1 → 0.3.3
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 +68 -40
- package/lib/client.js +1485 -575
- package/lib/types/client/chat/cards.d.ts +4 -0
- package/lib/types/client/host/contracts.d.ts +45 -0
- package/lib/types/client/locales.d.ts +10 -0
- package/lib/types/client/sidechat/PendingCard.d.ts +4 -0
- package/lib/types/client/sidechat/lifecycle.d.ts +36 -2
- package/lib/types/client/sidechat/native.d.ts +80 -0
- package/lib/types/client/sidechat/notify.d.ts +16 -0
- package/lib/types/client/sidechat/open.d.ts +5 -1
- package/lib/types/client/sidechat/pending.d.ts +71 -0
- package/package.json +1 -1
- package/src/client/chat/cards.ts +186 -4
- package/src/client/chat/transcript.ts +1 -0
- package/src/client/host/contracts.ts +29 -0
- package/src/client/host/probes.ts +27 -0
- package/src/client/index.tsx +4 -0
- package/src/client/locales.ts +22 -2
- package/src/client/sidechat/ModelMenu.tsx +4 -4
- package/src/client/sidechat/PendingCard.tsx +145 -0
- package/src/client/sidechat/SideChatPanel.tsx +83 -2
- package/src/client/sidechat/index.tsx +3 -0
- package/src/client/sidechat/lifecycle.ts +128 -22
- package/src/client/sidechat/native.ts +168 -0
- package/src/client/sidechat/notify.ts +91 -0
- package/src/client/sidechat/open.ts +56 -7
- package/src/client/sidechat/pending.ts +238 -0
- package/src/client/sidechat/sidechat.module.css +142 -1
- package/src/client/sidechat/slash.ts +12 -2
package/README.md
CHANGED
|
@@ -1,64 +1,90 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/assets/banner.png" alt="dsh-sidenote —— 侧边开一岔对话,划选留一条注释,主线永不被打断" width="100%">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
DSH(DeepSeek Harness)插件——支线问题不打断主线,结论一键回流。
|
|
7
|
+
</p>
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/dsh-sidenote"><img src="https://img.shields.io/npm/v/dsh-sidenote" alt="npm version"></a>
|
|
11
|
+
<a href="https://github.com/g-yixuan/dsh-sidenote/actions/workflows/ci.yml"><img src="https://github.com/g-yixuan/dsh-sidenote/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
12
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT license"></a>
|
|
13
|
+
<img src="https://img.shields.io/badge/peer-dsh--better--sidebar-informational" alt="requires dsh-better-sidebar">
|
|
14
|
+
</p>
|
|
6
15
|
|
|
7
|
-
<
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="README_EN.md">English</a> · <b>中文</b>
|
|
18
|
+
</p>
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+

|
|
10
21
|
|
|
11
|
-
|
|
22
|
+
## 安装
|
|
23
|
+
|
|
24
|
+
前置:已装 [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar)(硬依赖)。
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
dsh plugin --profile web add dsh-sidenote
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
三步上手:**①** 装依赖 → **②** 装本插件 → **③** 顶栏点「侧边」,或直接划选任意回复文本。
|
|
31
|
+
|
|
32
|
+
本地开发挂载:`dsh plugin --profile web add link:<本仓库路径>`(client 改动热重载,host 改动需重启 `dsh web`)。
|
|
33
|
+
|
|
34
|
+
## 侧边聊天——支线问题不打断主线
|
|
35
|
+
|
|
36
|
+
从当前主会话 **fork**(全量历史快照,不压缩)出独立侧边会话,在右侧栏多轮对话:
|
|
37
|
+
|
|
38
|
+
- 顶栏「侧边」按钮 / `+` 菜单 / 斜杠命令 `/side` 三个入口,多实例并存;
|
|
39
|
+
- 与主对话**同一套渲染材质**:工具卡、思考预览、任务卡、模型/权限切换、`@` 引用、图片附件;
|
|
40
|
+
- 审批/提问**在面板内直接答复**,不用跳回主视图;跑完有 toast 通知;
|
|
41
|
+
- 继承历史默认折叠成指示卡;折叠态/滚动位置刷新不丢;`Alt+J` 主↔侧切焦点。
|
|
12
42
|
|
|
13
|
-
|
|
43
|
+

|
|
14
44
|
|
|
15
|
-
|
|
16
|
-
- fork 时刻带主会话完整上下文,之后两个会话各自独立演进;**继承的历史默认折叠**为「继承自主会话 · 截至 fork 点 · N 条」指示卡(点击展开,密度友好);
|
|
17
|
-
- 多实例并存(「侧边」「侧边 2」…),各自独立关闭;
|
|
18
|
-
- **原生级消息渲染**:与主对话同一套无缝行材质(无框 DisclosureRow 裸行 + 同源叶子组件六族:终端/差异/读文件/搜索/网页/通用)+ 任务卡(todo_write → 状态点清单);工具卡标题人话化(`Bash · 列目录` 而非整串命令),思考行折叠态带首行预览;流式跟滚;
|
|
19
|
-
- **composer 与主对话同能力**:模型切换(两级菜单)、权限模式 chip、斜杠命令(`/`)、`@` 引用、图片附件、`Cmd/Ctrl+Enter` 插队;
|
|
20
|
-
- **主线状态可见**:面板顶部常显主会话状态(运行中/待审批/空闲),`Alt+J` 在主↔侧之间切焦点;
|
|
21
|
-
- 状态零丢失:折叠态/滚动位置按会话持久化,刷新恢复;
|
|
22
|
-
- **回流通道**:侧边结论一键「回流到主会话」(问答成对:结论+它回答的问题一起回)或「整段回流」全部问答对——以受控上下文 chip 挂在主输入框上方,随下一条消息发给主线(Cursor 级能力,Codex 没有);主输入框 `@` 也可直接引用侧边聊天;
|
|
23
|
-
- **生命周期**:「保存为正式会话」把侧聊转正进会话列表(全局 toast 确认去向);`/side` 弹层可重开最近关闭的侧聊。
|
|
45
|
+
## 划选注释——把「这句有问题」变成模型的上下文
|
|
24
46
|
|
|
25
|
-
|
|
47
|
+
- 划选 assistant 回复 → 浮层 → 注解编辑器,右缘编号角标锚定原文;
|
|
48
|
+
- 注释是受控对象(可预览、可逐条移除),**草稿零污染**——发送瞬间才序列化为模型可读的结构化协议块;
|
|
49
|
+
- 发送后气泡收成「批注 ×N」标签留痕;刷新不丢。
|
|
26
50
|
|
|
27
|
-
|
|
|
51
|
+
| 划选浮层 | 注解编辑器 |
|
|
28
52
|
|---|---|
|
|
29
|
-
|  |  |
|
|
30
54
|
|
|
31
|
-
|
|
55
|
+
## 回流主线——侧边结论不烂在支线
|
|
32
56
|
|
|
33
|
-
|
|
57
|
+
- 侧边结论一键「回流到主会话」:**问答成对**(结论 + 它回答的问题)收为受控 chip 挂在主输入框上方,随下一条消息发给主线;`@` 也可直接引用侧边聊天;
|
|
58
|
+
- 「保存为正式会话」转正进会话列表;`/side` 弹层重开最近关闭。
|
|
34
59
|
|
|
35
|
-
|
|
36
|
-
- **在侧边聊天中提问**:注解编辑后引用 + 注解直接进入侧边聊天输入框;
|
|
37
|
-
- **草稿零污染**:注释是受控对象,不进输入框文本流;发送瞬间才序列化为结构化 XML 协议块(`<annotation>` 块,模型可读性最佳形态);
|
|
38
|
-
- **发送后留痕**:已发消息气泡收成「批注 ×N」标签可回看;原文角标转空心只读态;**刷新不丢**(按会话持久化,随点随恢复锚定)。
|
|
60
|
+

|
|
39
61
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|  |  |  |
|
|
62
|
+
<details>
|
|
63
|
+
<summary><b>更多截图</b></summary>
|
|
43
64
|
|
|
44
|
-
|
|
|
65
|
+
| 折叠态(继承卡 + 操作行) | 侧边斜杠菜单 |
|
|
45
66
|
|---|---|
|
|
46
|
-
|  |  |
|
|
47
68
|
|
|
48
|
-
|
|
69
|
+
| 角标 + 注释 chip | 发送后留痕 |
|
|
70
|
+
|---|---|
|
|
71
|
+
|  |  |
|
|
49
72
|
|
|
50
|
-
|
|
73
|
+
</details>
|
|
51
74
|
|
|
52
|
-
|
|
53
|
-
dsh plugin --profile web add dsh-sidenote
|
|
54
|
-
```
|
|
75
|
+
## 兼容性
|
|
55
76
|
|
|
56
|
-
|
|
77
|
+
| DSH | dsh-better-sidebar | 状态 |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| 0.1.1-rc.x | ≥ 0.12.3 | ✅ CI 双档矩阵 |
|
|
80
|
+
| 0.1.2-rc.x | ≥ 0.18.0 | ✅ CI 双档矩阵 |
|
|
81
|
+
|
|
82
|
+
每周 canary 跟进宿主新版本;宿主面缺席时插件按能力降级(不崩页面)。
|
|
57
83
|
|
|
58
84
|
## 设计要点
|
|
59
85
|
|
|
60
|
-
- **真 fork,不压缩**:侧边会话是真实 DSH
|
|
61
|
-
-
|
|
86
|
+
- **真 fork,不压缩**:侧边会话是真实 DSH 会话(全量历史快照),与主会话能力对等;不是「摘要 + 一次性问答」。
|
|
87
|
+
- **列表卫生**:侧边会话归档隐藏,会话列表永远干净。
|
|
62
88
|
- **可累积的标注工作流**:多次划选累积多条注释,编辑、删除、随消息一起发出——不是一次性单引文。
|
|
63
89
|
|
|
64
90
|
## 开发
|
|
@@ -66,9 +92,11 @@ dsh plugin --profile web add dsh-sidenote
|
|
|
66
92
|
| 命令 | 说明 |
|
|
67
93
|
|---|---|
|
|
68
94
|
| `pnpm typecheck` | tsc --noEmit |
|
|
69
|
-
| `pnpm test` | vitest
|
|
95
|
+
| `pnpm test` | vitest 单测(136 例) |
|
|
70
96
|
| `pnpm build` | 类型声明 + tsdown(host ESM + client CJS bundle,纯度门) |
|
|
71
|
-
| `pnpm test:mount` |
|
|
97
|
+
| `pnpm test:mount` | 挂载冒烟:真实 `dsh web` + 伪造会话日志 + Playwright 十条 journey lane(`BS_VERSION`/`DSH_CMD` 切版本矩阵) |
|
|
98
|
+
|
|
99
|
+
问题与建议欢迎 [Issue](https://github.com/g-yixuan/dsh-sidenote/issues)。
|
|
72
100
|
|
|
73
101
|
## License
|
|
74
102
|
|