@xrn1997/dsh-session-delete 0.2.2 → 0.3.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.
Files changed (49) hide show
  1. package/README.md +7 -25
  2. package/lib/client.js +972 -588
  3. package/lib/index.js +553 -286
  4. package/lib/types/api/dispatch.d.ts +2 -2
  5. package/lib/types/api/route-table.d.ts +1 -1
  6. package/lib/types/api/trash-rows.d.ts +13 -6
  7. package/lib/types/client/batch-bar.d.ts +6 -6
  8. package/lib/types/client/batch-confirm.d.ts +5 -3
  9. package/lib/types/client/batch-menu-item.d.ts +2 -2
  10. package/lib/types/client/batch-select.d.ts +7 -50
  11. package/lib/types/client/batch-selection-store.d.ts +30 -0
  12. package/lib/types/client/copy.d.ts +4 -1
  13. package/lib/types/client/delete-confirm.d.ts +2 -0
  14. package/lib/types/client/host-rows.d.ts +35 -0
  15. package/lib/types/client/main-view.d.ts +37 -0
  16. package/lib/types/client/receipt.d.ts +43 -0
  17. package/lib/types/client/remote.d.ts +16 -6
  18. package/lib/types/client/store.d.ts +17 -0
  19. package/lib/types/client/trash-panel.d.ts +1 -1
  20. package/lib/types/client/trash-store.d.ts +2 -0
  21. package/lib/types/client/ui/icons.d.ts +3 -3
  22. package/lib/types/client/undo-toast.d.ts +19 -3
  23. package/lib/types/client/use-column-resize.d.ts +2 -2
  24. package/lib/types/client/use-panel-width.d.ts +1 -1
  25. package/lib/types/client/use-trash-panel-controller.d.ts +55 -0
  26. package/lib/types/client/write-commit.d.ts +10 -0
  27. package/lib/types/deps.d.ts +14 -0
  28. package/lib/types/index.d.ts +6 -13
  29. package/lib/types/log/zstd-frames.d.ts +1 -1
  30. package/lib/types/ports/agent-handles.d.ts +25 -0
  31. package/lib/types/ports/home.d.ts +19 -0
  32. package/lib/types/ports/host-port.d.ts +58 -28
  33. package/lib/types/remote/map-error.d.ts +2 -2
  34. package/lib/types/shared/wire.d.ts +11 -9
  35. package/lib/types/trash/detail.d.ts +1 -1
  36. package/lib/types/trash/entry.d.ts +4 -4
  37. package/lib/types/trash/manifest.d.ts +2 -1
  38. package/lib/types/trash/reconcile.d.ts +2 -2
  39. package/lib/types/trash/storage-manifest.d.ts +12 -0
  40. package/lib/types/verbs/batch.d.ts +1 -1
  41. package/lib/types/verbs/delete-session.d.ts +8 -11
  42. package/lib/types/verbs/errors.d.ts +4 -0
  43. package/lib/types/verbs/member-journal.d.ts +4 -3
  44. package/lib/types/verbs/member-presence.d.ts +35 -0
  45. package/lib/types/verbs/orphan-subagents.d.ts +14 -38
  46. package/lib/types/verbs/permanent-removal.d.ts +113 -0
  47. package/lib/types/verbs/purge-trash.d.ts +9 -5
  48. package/lib/types/verbs/restore-session.d.ts +6 -6
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -26,11 +26,11 @@
26
26
 
27
27
  ## 功能特性
28
28
 
29
- - **删除 = 移入回收站**:会话行「⋯」→「删除」,可随时恢复;删完有一条停 6 秒的撤销提示
29
+ - **删除 = 移入回收站**:会话行「⋯」→「删除」,可随时恢复;删完有一条停 6 秒的撤销提示。删的是当前正打开的会话时,对话会随删除关闭(不会停在「会话不可用」),点撤销会把它重新打开
30
30
  - **按整组删**:父会话在盘上的子会话与更深后代一起走;任一成员在跑 ⇒ 整组拒绝、零副作用
31
31
  - **批量删除**:宿主会话列表「⋯」→「多选」,一次确认、一次执行;失败的留在框里可重试,成功的整批撤销
32
32
  - **回收站面板**:左清单右详情,按项目分组、可折叠、可拖分栏;看得见正文再决定恢复不恢复
33
- - **恢复**:单条即点即回,批量带确认;回到各自的原项目目录并还原删除前的归档可见性
33
+ - **恢复**:单条即点即回,批量带确认;回到各自的原项目目录(删除前你自己归档过的仍保持归档)
34
34
  - **显式彻底删除**:单条「彻底删除…」与页脚「清空回收站…」共用同一个二次确认;不自动过期
35
35
  - **清理无主残留**:父会话已不存在的子会话宿主根本不显示,面板扫描到后由你决定清不清
36
36
  - **失败不吞**:宿主读不到时把原文上屏并给「重试」;不可用时不注册任何入口
@@ -45,7 +45,7 @@ dsh plugin --profile <profile> remove @xrn1997/dsh-session-delete
45
45
 
46
46
  装完**重启宿主**(Node 半不走 HMR)。卸载只移除插件,`~/.dsh/session-trash/` 下已有的目录不会被自动清理。
47
47
 
48
- 也可以离线分发:`pnpm pack` 出 tarball 后 `dsh plugin add ./dsh-session-delete-<版本>.tgz`。包里带预构建产物(`prepack` 会替你跑 `build`),这条路不需要为构建脚本授权。
48
+ 也可以离线分发:`pnpm pack` 出 tarball 后 `dsh plugin add ./xrn1997-dsh-session-delete-<版本>.tgz`(scoped 包的文件名带作者段)。包里带预构建产物(`prepack` 会替你跑 `build`),这条路不需要为构建脚本授权。
49
49
 
50
50
  **兼容性分两层,别混**:
51
51
 
@@ -66,7 +66,7 @@ dsh plugin --profile <profile> remove @xrn1997/dsh-session-delete
66
66
 
67
67
  **管回收站**:侧栏面板里的「回收站」一行(与「插件」同层)。左清单右详情(中央列更窄时改成下钻,「← 返回清单」回来),按项目分组、组头可折叠、两栏之间那根线可拖。详情只列你真实发的提问与助手的文字,宿主注入的上下文与工具调用不进正文;助手文字按 Markdown 排版,你的提问保持原话。
68
68
 
69
- - **恢复**:单条不需要确认框,放回原项目目录并还原删除前的归档可见性。原工作区已被删掉也照常恢复(跳过账本挂接,归入「未分组」),清单行在点之前就说这句。
69
+ - **恢复**:单条不需要确认框,放回原项目目录(删除前你自己归档过的仍保持归档;旧版本留下的归档态条目会迁移式取消归档)。原工作区已被删掉也照常恢复(跳过账本挂接,归入「未分组」),清单行在点之前就说这句。
70
70
  - **批量恢复 / 批量彻底删除**:工具栏「多选」进入,页脚换成两颗动作按钮。组头那颗是**三态**勾选框,点它选上这个项目的全部会话(含折叠起来看不见的)。两者都先确认,逐条执行、失败不连坐,失败的原文留在它自己那行。
71
71
  - **彻底删除 / 清空**:共用同一个二次确认。单条那张卡片报的是**这一次会释放多少**(父 + 跟着进来的孩子 + 仍留在盘上的后代,与头部合计共用同一算式)。「清空回收站…」先把回收站目录与清单对账一遍再清,所以手工搬进 `session-trash/` 的**认得出**的目录也归它管;认不出的外人目录不动也不列。
72
72
  - **无主残留**:父会话已不在(既不在会话列表、也不在回收站清册)的子会话,宿主客户端整排不显示,回收站里也不会有。面板顶部只在扫描到时出现条件提示,预览后由你决定清不清;永久删除、不搬进回收站、**绝不自动跑**。
@@ -114,33 +114,15 @@ dsh plugin --profile <profile> remove @xrn1997/dsh-session-delete
114
114
 
115
115
  **我把会话目录从回收站手工搬回 `sessions/` 了,为什么列表里没有?**
116
116
 
117
- 回收站目录只负责文件;恢复还要挂回工作区账本并按删除前的归档态还原可见性。手工搬回不是恢复,下一次读清单会把对应行对账掉。请在面板里点「恢复」。
117
+ 回收站目录只负责文件;恢复还要挂回工作区账本(旧版本留下的归档态条目会迁移式取消归档)。手工搬回不是恢复,下一次读清单会把对应行对账掉。请在面板里点「恢复」。
118
118
 
119
119
  ## 开发
120
120
 
121
- ```bash
122
- pnpm install
123
- pnpm build # tsdown:Node 半 + 浏览器半(含浏览器半的纯度门)
124
- pnpm test # vitest run
125
- pnpm typecheck # tsc --noEmit
126
- ```
127
-
128
- ### 本地源码调试
129
-
130
- **`lib/` 是构建产物且不入库,从源码目录链进 profile 的安装方式不会替你构建它。**
131
-
132
- ```bash
133
- pnpm build # 必须在源码目录手动跑一次
134
- dsh plugin --profile <profile> add "link:<本仓绝对路径>"
135
- ```
136
-
137
- 改动生效分两半:**浏览器半**(`src/client/`)由宿主 HMR 推到浏览器,无需重启;**Node 半**不在热重载链路内,必须重启宿主。
138
-
139
- 架构地图见 [`docs/architecture.md`](docs/architecture.md)(唯一主人清单、双半形态、数据与生命周期),裁决见 [`docs/adr/`](docs/adr/README.md);回收站两栏、详情与批量动作的判据账在 [`docs/design/2026-09-30-session-delete-design.md`](docs/design/2026-09-30-session-delete-design.md)(界面规格在其 §7)与 [`docs/design/2026-10-15-trash-detail-design.md`](docs/design/2026-10-15-trash-detail-design.md);构建、门控与发版流程见 [`docs/developing.md`](docs/developing.md)。README 不复述。
121
+ 构建、本地调试、门控、真机验证与发版见 [`docs/development.md`](docs/development.md);提交信息与 PR 约定见 [`CONTRIBUTING.md`](CONTRIBUTING.md);架构地图与主人清单见 [`docs/architecture.md`](docs/architecture.md);界面规格见 [`docs/ui-spec.md`](docs/ui-spec.md);文档分层与放置见 [`docs/AGENTS.md`](docs/AGENTS.md);裁决见 [`docs/adr/`](docs/adr/README.md);发布历史见 [`CHANGELOG.md`](CHANGELOG.md)。历史取舍在 git 历史里,README 不复述。
140
122
 
141
123
  ## 贡献
142
124
 
143
- 欢迎 Issue 与 PR。提交改动前请确保 `pnpm test` 与 `pnpm typecheck` 都通过,且**两条命令的退出码都亲眼看过**——跑门要把输出先灌进文件、再单独打印退出码,管道会把红吃掉。提交即表示你同意以 [Apache-2.0](LICENSE) 协议授权你的贡献。
125
+ 欢迎 Issue 与 PR。提交信息、PR 约定与发版边界见 [`CONTRIBUTING.md`](CONTRIBUTING.md);提交前按 [`docs/development.md`](docs/development.md) 的「复核门」跑 `pnpm test` 与 `pnpm typecheck`,并确认退出码;提交即表示你同意以 [Apache-2.0](LICENSE) 协议授权你的贡献。
144
126
 
145
127
  ## 许可
146
128