@xrn1997/dsh-session-delete 0.0.1 → 0.1.1
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 +12 -4
- package/icon.svg +18 -18
- package/lib/client.js +23648 -517
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +667 -234
- package/locale/en.json +6 -6
- package/locale/zh.json +6 -6
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
给 DeepSeek Harness(DSH)加一个**删除会话**的能力。DSH 官方有归档、没有删除——归档只是把会话从列表里挪走,文件还在。本插件补上删除,并且让删除可恢复:删除 = 移入回收站,另有一个显式的「彻底删除」。
|
|
4
4
|
|
|
5
|
-

|
|
6
|
+
<!-- 首图待换:这张还是 2026-10-01 的"一列卡片 + 行内两颗按钮"。改版后的形态要一张真机截图(本环境没有可视浏览器,画不出可信的图);alt 已按现状写,图换掉之前请先看文字。 -->
|
|
6
7
|
|
|
7
8
|
- 安装:`dsh plugin --profile <profile> add @xrn1997/dsh-session-delete`
|
|
8
9
|
- 许可:[Apache-2.0](LICENSE)
|
|
@@ -24,7 +25,9 @@
|
|
|
24
25
|
|
|
25
26
|
- **删除 = 移入回收站**:会话条目「…」菜单里的「删除」把会话搬进回收站,可随时恢复;删完有一条停留 6 秒的撤销提示
|
|
26
27
|
- **显式彻底删除**:单条「彻底删除…」或页脚「清空回收站…」,两者共用同一个二次确认
|
|
27
|
-
-
|
|
28
|
+
- **回收站面板**:清单在左、详情在右——左栏是按项目分组的会话列表(每条两行:标题 / 删除时间 · 大小,「恢复」与「彻底删除…」在行右侧),右栏是选中那条的详情(**时间/体量/计数/位置**四组元信息,加人与助手的文字;逐格名单以 `src/client/trash-detail.tsx` 与现状稿 §7 为准,这份不列——列成清单就是一条会漂的东西);中央列不够宽(<900px)时改成下钻:点一条看详情,「← 返回清单」回来。清单为空或读不到时也只一列——那时右栏既没得选也没得点
|
|
29
|
+
- **那一列自己可以收**:组头可折叠(也可以一键全部折叠)、两栏之间那根线可拖(也能用键盘 ←→/Home/End 调);宽度夹在「元信息那一行读得完」与「详情还读得开」之间
|
|
30
|
+
- **多选挑着彻底删**:那一排的「多选」进入,勾选若干条后页脚那颗从「清空回收站…」换成「彻底删除 N 条」,一次确认后逐条执行,没删掉的把原因留在它自己那一行;组头那颗可以一次把整个项目的会话全选上(包括折叠起来看不见的)
|
|
28
31
|
- **运行中的会话拒绝删除**:菜单项置灰并说明原因——不替用户终止正在进行的活
|
|
29
32
|
- **不自动过期**:不设天数上限,清空是显式动作
|
|
30
33
|
- **失败不吞**:回收站读不到时把宿主原文上屏,并给一个「重试」
|
|
@@ -60,9 +63,14 @@ dsh plugin --profile <profile> remove @xrn1997/dsh-session-delete
|
|
|
60
63
|
|
|
61
64
|
**回收站**:侧栏面板列表里常驻的「回收站」一行(与「插件」「小说」同层)。打开后是中央面板:
|
|
62
65
|
|
|
63
|
-
- 清单按项目分组,每条两行——标题 / 「刚刚删除 · 24KB」或「删除于 7分钟前 · 350KB
|
|
64
|
-
- 头部是条数与合计占用(「2 个会话 · 共 49KB
|
|
66
|
+
- 清单按项目分组,每条两行——标题 / 「刚刚删除 · 24KB」或「删除于 7分钟前 · 350KB」;「恢复」与「彻底删除…」在行右侧(前者描边、后者安静的红),点行本身是选中并在右边看详情
|
|
67
|
+
- 头部是条数与合计占用(「2 个会话 · 共 49KB」);页脚是「清空回收站…」——**整页唯一一块实心红**
|
|
68
|
+
- 头部下面那一排(不随清单滚走):**全部折叠 / 全部展开**、**多选**(「刷新」已删——每次读清单都会先与回收站目录对账,不再需要手动刷)
|
|
69
|
+
- 组头可以单独折叠(也可以一键全部折叠),折叠起来的组条目直接收掉、计数还留在组头上;多选态下组头多出一颗**三态**勾选框——点它就是把这个项目的**全部**会话选上(包括折叠起来看不见的),只勾了几条时显示半选
|
|
70
|
+
- 两栏之间那根线可以左右拖(也能聚焦后用 ←→ 调,Home 回默认 420):最窄 330(再窄「删除于 … · 大小」那一行就被截断了),最右拖到「详情还读得开」为止
|
|
71
|
+
- 多选态下:行右侧两颗按钮退场、标题左侧出勾选框,点行就是切换勾选;页脚那颗换成「彻底删除 N 条」(一条没勾时置灰并说明原因),确认后按清单顺序逐条执行,失败的那条把原文留在自己身上。退出多选即清空勾选,不留看不见的勾选
|
|
65
72
|
- 面板四态:读数中 / 空(「回收站是空的」,此时底部**不出现**「清空回收站…」)/ 读数失败(宿主原文 + 「重试」)/ 有条目
|
|
73
|
+
- 详情四态:未选中(一句引导)/ 读数中 / 读数失败(原文 + 重试,**只坏详情这一块**,清单照常选、动作照常点)/ 有内容。正文读的是回收站目录里那条会话自己的日志:只列你真实发的提问与助手的文字,宿主注入的上下文与工具调用不进正文(条数会在页面上说明)。**助手的文字按 Markdown 排版**(与宿主会话区同一套字号与 token),**你的提问保持原话**(不解析,换行与反引号照原样)
|
|
66
74
|
- 「恢复」按记录的原目录名放回原项目目录,并还原它原本的可见性:删除前未归档的,恢复后仍未归档;删除前已归档的,恢复后仍在归档态
|
|
67
75
|
|
|
68
76
|
## 回收站与数据
|
package/icon.svg
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
插件卡片/组件行的图标(`package.json` 顶层 `icon`,宿主按**图片**读它、不内联 HTML)。
|
|
3
|
-
|
|
4
|
-
形状逐字取自 `@deepseek-ai/dsh-client-ui-primitives@0.2.0-rc.2` 的 `IconTrashOutlineRegular`
|
|
5
|
-
(与插件界面里那枚垃圾桶图标同源)。
|
|
6
|
-
|
|
7
|
-
两处与组件版不同:
|
|
8
|
-
1. 颜色写死。图片形式的 SVG **不继承 `currentColor`**(它是一份独立文档),所以不能像组件里那样
|
|
9
|
-
吃宿主的字色 ⇒ 取一个浅色/深色底上都能读的中灰。
|
|
10
|
-
2. 不带 `aria-hidden`。这不是行内构件,可及名由承载它的宿主卡片提供。
|
|
11
|
-
-->
|
|
12
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="#8a9099" stroke-width="1">
|
|
13
|
-
<path d="M1.28149 3.88831H14.7187" />
|
|
14
|
-
<path d="M5.41602 3.88833V2.47962C5.41602 2.29282 5.52492 2.11366 5.71876 1.98157C5.9126 1.84948 6.17551 1.77527 6.44964 1.77527H9.55053C9.82466 1.77527 10.0876 1.84948 10.2814 1.98157C10.4753 2.11366 10.5842 2.29282 10.5842 2.47962V3.88833" />
|
|
15
|
-
<path d="M2.57349 3.88831L3.19366 13.2943C3.21937 13.5502 3.33952 13.7872 3.53065 13.9593C3.72178 14.1313 3.97016 14.2259 4.22729 14.2246H11.7728C12.0299 14.2259 12.2783 14.1313 12.4694 13.9593C12.6605 13.7872 12.7807 13.5502 12.8064 13.2943L13.4266 3.88831" />
|
|
16
|
-
<path d="M6.44946 6.98926V11.1238" />
|
|
17
|
-
<path d="M9.55054 6.98926V11.1238" />
|
|
18
|
-
</svg>
|
|
1
|
+
<!--
|
|
2
|
+
插件卡片/组件行的图标(`package.json` 顶层 `icon`,宿主按**图片**读它、不内联 HTML)。
|
|
3
|
+
|
|
4
|
+
形状逐字取自 `@deepseek-ai/dsh-client-ui-primitives@0.2.0-rc.2` 的 `IconTrashOutlineRegular`
|
|
5
|
+
(与插件界面里那枚垃圾桶图标同源)。
|
|
6
|
+
|
|
7
|
+
两处与组件版不同:
|
|
8
|
+
1. 颜色写死。图片形式的 SVG **不继承 `currentColor`**(它是一份独立文档),所以不能像组件里那样
|
|
9
|
+
吃宿主的字色 ⇒ 取一个浅色/深色底上都能读的中灰。
|
|
10
|
+
2. 不带 `aria-hidden`。这不是行内构件,可及名由承载它的宿主卡片提供。
|
|
11
|
+
-->
|
|
12
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="#8a9099" stroke-width="1">
|
|
13
|
+
<path d="M1.28149 3.88831H14.7187" />
|
|
14
|
+
<path d="M5.41602 3.88833V2.47962C5.41602 2.29282 5.52492 2.11366 5.71876 1.98157C5.9126 1.84948 6.17551 1.77527 6.44964 1.77527H9.55053C9.82466 1.77527 10.0876 1.84948 10.2814 1.98157C10.4753 2.11366 10.5842 2.29282 10.5842 2.47962V3.88833" />
|
|
15
|
+
<path d="M2.57349 3.88831L3.19366 13.2943C3.21937 13.5502 3.33952 13.7872 3.53065 13.9593C3.72178 14.1313 3.97016 14.2259 4.22729 14.2246H11.7728C12.0299 14.2259 12.2783 14.1313 12.4694 13.9593C12.6605 13.7872 12.7807 13.5502 12.8064 13.2943L13.4266 3.88831" />
|
|
16
|
+
<path d="M6.44946 6.98926V11.1238" />
|
|
17
|
+
<path d="M9.55054 6.98926V11.1238" />
|
|
18
|
+
</svg>
|