@device1999/dsh-session-archive-delete 0.1.0 → 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/CHANGELOG.md +14 -0
- package/README.md +5 -1
- package/assets/client.js +2 -2
- package/assets/screenshot-menu.png +0 -0
- package/assets/screenshot-settings.png +0 -0
- package/cordis.patch.yml +6 -5
- package/lib/index.js +18 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## [0.1.1] - 2026-10-20
|
|
6
|
+
|
|
7
|
+
### 文档
|
|
8
|
+
|
|
9
|
+
- README 增加会话菜单与设置页截图
|
|
10
|
+
- 包名改为 scope 形式 @device1999/dsh-session-archive-delete
|
|
11
|
+
|
|
12
|
+
### 修复
|
|
13
|
+
|
|
14
|
+
- 客户端模块 id 与包名保持一致,避免重复 factory 注册导致 web boot 失败
|
|
15
|
+
- 移除多余的 <script> 兜底注入路径
|
|
16
|
+
|
|
5
17
|
## [0.1.0] - 2026-10-20
|
|
6
18
|
|
|
7
19
|
### 新增
|
|
@@ -21,3 +33,5 @@
|
|
|
21
33
|
- 删除后复查 3 次,防止文件句柄重建目录
|
|
22
34
|
- 会话目录必须位于 `~/.dsh/sessions` 下且目录名与会话 id 完全一致
|
|
23
35
|
- 运行中会话先取消当前轮次再删除
|
|
36
|
+
|
|
37
|
+
|
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
给 DeepSeek Harness(DSH)的会话列表加一个安全的「删除」入口:**先完整备份到本地,校验通过后才删除**。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
装上之后,在侧栏任意会话的「…」菜单最下方会多出删除选项:
|
|
6
|
+
|
|
7
|
+
<img src="assets/screenshot-menu.png" width="200" alt="会话菜单">
|
|
6
8
|
|
|
7
9
|
## 为什么需要它
|
|
8
10
|
|
|
@@ -31,6 +33,8 @@ DSH 只有「归档」,没有删除。想真正释放磁盘空间就得手动
|
|
|
31
33
|
| 路径校验 | 无效路径当场提示,不会写入设置 |
|
|
32
34
|
| 一键恢复 | 每个备份文件夹带 `RESTORE.txt`,按说明复制回去即可 |
|
|
33
35
|
|
|
36
|
+
<img src="assets/screenshot-settings.png" width="720" alt="设置页">
|
|
37
|
+
|
|
34
38
|
## 安装
|
|
35
39
|
|
|
36
40
|
### 方式一:在 DSH 界面里装(推荐)
|
package/assets/client.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
window.__ModuleLoader__.load({
|
|
2
|
-
id: 'dsh-session-archive-delete',
|
|
2
|
+
id: '@device1999/dsh-session-archive-delete',
|
|
3
3
|
factory: (require) => {
|
|
4
4
|
const module = { exports: {} }
|
|
5
5
|
const exports = module.exports
|
|
6
6
|
|
|
7
7
|
const React = require('react')
|
|
8
|
-
const NS = 'dsh-session-archive-delete'
|
|
8
|
+
const NS = '@device1999/dsh-session-archive-delete'
|
|
9
9
|
|
|
10
10
|
// 官方组件库:菜单项图标与按钮样式都从这里取,保证和原生菜单项同源、同尺寸、同对齐
|
|
11
11
|
let primitives = {}
|
|
Binary file
|
|
Binary file
|
package/cordis.patch.yml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
# Bundle patch layer: 把 dsh-session-archive-delete 插入 profile 的插件行。
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bundle patch layer: 把 @device1999/dsh-session-archive-delete 插入 profile 的插件行。
|
|
2
|
+
# 客户端半侧走标准 dsh.client 声明(package.json 里的 dsh.client + exports["./client"]),
|
|
3
|
+
# 不要再用 webserver/index-inject 追加 <script>,否则同一 factory 会被注册两次,
|
|
4
|
+
# 触发 "duplicate factory registration",导致 web boot 失败。
|
|
4
5
|
- insert:
|
|
5
|
-
- id: dsh-session-archive-delete
|
|
6
|
-
name: '@device1999/dsh-session-archive-delete'
|
|
6
|
+
- id: '@device1999/dsh-session-archive-delete'
|
|
7
|
+
name: '@device1999/dsh-session-archive-delete'
|
package/lib/index.js
CHANGED
|
@@ -472,7 +472,7 @@ function pickFolderNative(initialDir) {
|
|
|
472
472
|
})
|
|
473
473
|
}
|
|
474
474
|
|
|
475
|
-
export const name = 'dsh-session-archive-delete'
|
|
475
|
+
export const name = '@device1999/dsh-session-archive-delete'
|
|
476
476
|
|
|
477
477
|
export function apply(root, config) {
|
|
478
478
|
const disposers = []
|
|
@@ -500,15 +500,23 @@ export function apply(root, config) {
|
|
|
500
500
|
} catch {}
|
|
501
501
|
}
|
|
502
502
|
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
503
|
+
// 2026-10-20 修复:默认停用 <script> 兜底注入。
|
|
504
|
+
// assets/client.js 以 `window.__ModuleLoader__.load({...})` 形式编写,只能由
|
|
505
|
+
// dsh.client 声明经 client-modules 加载;作为裸 <script> 注入时 __ModuleLoader__
|
|
506
|
+
// 尚未就绪,会抛 "Cannot read properties of undefined (reading 'load')",并把同一
|
|
507
|
+
// factory 注册两次(duplicate factory registration),最终导致 web boot 失败。
|
|
508
|
+
// 排查主路径问题时可用 DSH_ARCHIVE_DELETE_FALLBACK_INJECT=1 临时恢复兜底。
|
|
509
|
+
if (process.env.DSH_ARCHIVE_DELETE_FALLBACK_INJECT === '1') {
|
|
510
|
+
disposers.push(
|
|
511
|
+
root.on('webserver/index-inject', (table) => {
|
|
512
|
+
try {
|
|
513
|
+
if (!Array.isArray(table)) return
|
|
514
|
+
if (table.some((r) => r && r.kind === 'script-src' && r.src === CLIENT_PATH)) return
|
|
515
|
+
table.push({ kind: 'script-src', placement: 'head', src: CLIENT_PATH, 'data-dsh-session-archive-delete-fallback': '1' })
|
|
516
|
+
} catch {}
|
|
517
|
+
})
|
|
518
|
+
)
|
|
519
|
+
}
|
|
512
520
|
|
|
513
521
|
root.inject(['webServer'], (ctx) => {
|
|
514
522
|
const reg = (route) =>
|