dsh-workspace-mover 2.4.1 → 2.4.2

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.4.2] - 2026-10-26
4
+
5
+ - Reopen the still-selected removed conversation through host navigation after migration or rollback, waiting for the old view's retained references to release before reopening. Do not change a later user selection. Replace the page-refresh hint with a fully-quit-and-restart hint for Desktop.
6
+ - Read titles from the live cache and current per-record checkpoints before legacy aggregate caches, fixing unnamed entries in repair/archive/preview/backup lists.
7
+ - Tracked idle sessions now release their public Agent lifecycle, physically migrate and reload through the host controller without a pending queue or restart. New requests are refused while the lifecycle is draining.
8
+ - Dragging a running session offers cancellation or explicit stop-and-move. The backend rechecks consent; it never stops a newly running task based on a stale idle preview.
9
+ - Fix #10: use the projection table get/put contract and align title-cache identity before publishing target membership. Failed attachment restores the source checkpoint identity.
10
+ - Restart once after installation/hot update to capture lifecycle handles. Untracked or unsupported live writers remain protected. Existing queue APIs remain compatible.
11
+ - Validation: user accepted candidate 2.4.2-rc.4 on DSH Desktop 0.2.1-rc.2: immediate movement, title preservation, continued replies without switching views, cancel while running, explicit stop-and-move, and persistence/continued replies after restart. Windows local checks: 327 passed, 2 optional host tests skipped; installed-host checks: all 4 passed. Web and the reporter's DSH 0.2.0-rc.2 environment remain unverified.
12
+
3
13
  ## [2.4.1] - 2026-10-22
4
14
 
5
15
  ### Changed
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # dsh-workspace-mover
2
2
 
3
3
 
4
- 当前版本:2.4.1。[Desktop 验收记录](docs/compatibility/issue-5-desktop-acceptance-2026-10-22.md)。
4
+ 当前版本:**2.4.2**。已通过 DSH Desktop `0.2.1-rc.2` 人工验收,详见[即时迁移与标题修复验收记录](docs/compatibility/immediate-migration-2026-10-26.md)。
5
5
 
6
- v2.4.0 会将运行中或仍驻留内存的会话加入持久化等待队列。DSH 暂无安全的写入句柄重绑定接口,因此需等会话卸载或重启后才会迁移,单纯变为空闲不足以释放句柄。迁移会把会话当前工作目录同步到目标工作区,保留已有目录变更历史,并在需要时追加目标目录记录。详见[Desktop 验收记录](docs/compatibility/issue-5-desktop-acceptance-2026-10-22.md)和[验证记录与检验方法](docs/compatibility/dsh-0.2.1-rc.2-2026-10-18.md)。
6
+ 支持即时迁移的会话:空闲时释放写入句柄、实际搬移并重新加载;运行中可取消,或明确选择「停止任务并迁移」。迁移保留标题和历史。安装或热更新后请彻底重启 DSH 一次,以接入会话生命周期;无法安全释放的会话会明确阻止拖动迁移。旧队列仍保留恢复与取消入口。后端验证与实际验收结果见 [即时迁移记录](docs/compatibility/immediate-migration-2026-10-26.md)。
7
7
  > [!IMPORTANT]
8
8
  > 非官方项目,由社区成员独立开发和维护。
9
9
 
@@ -14,7 +14,7 @@ v2.4.0 会将运行中或仍驻留内存的会话加入持久化等待队列。D
14
14
  <a href="https://github.com/PianoPrince/dsh-workspace-mover/actions/workflows/test.yml"><img alt="CI" src="https://github.com/PianoPrince/dsh-workspace-mover/actions/workflows/test.yml/badge.svg" style="height:20px; margin:0 2px;" /></a>
15
15
  <a href="https://www.npmjs.com/package/dsh-workspace-mover"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-workspace-mover" style="height:20px; margin:0 2px;" /></a>
16
16
  <a href="https://www.npmjs.com/package/dsh-workspace-mover"><img alt="npm 最近 30 天下载量" src="https://img.shields.io/npm/dm/dsh-workspace-mover" style="height:20px; margin:0 2px;" /></a>
17
- <img alt="plugin version" src="https://img.shields.io/badge/dsh--plugin-2.4.1-4d6bfe" style="height:20px; margin:0 2px;" />
17
+ <img alt="plugin version" src="https://img.shields.io/badge/dsh--plugin-2.4.2-4d6bfe" style="height:20px; margin:0 2px;" />
18
18
  <img alt="DSH tested 0.2.1-rc.2" src="https://img.shields.io/badge/DSH_tested-0.2.1--rc.2-4c8dff" style="height:20px; margin:0 2px;" />
19
19
  <img alt="Node" src="https://img.shields.io/badge/Node-%E2%89%A522-339933" style="height:20px; margin:0 2px;" />
20
20
  </p>
@@ -65,7 +65,7 @@ DeepSeek Harness 侧边栏可以拖拽排序**同一工作区**内的会话,
65
65
  - **🛡️ 数据保护**:相同会话内容只保留一份物理快照,往返迁移不会无限增长;每次迁移仍写入历史,备份列表显示快照份数与占用
66
66
  - **⏪ 移动历史与撤回**:记录最近 100 次跨工作区移动,批量聚合为一条,整批可一键撤回
67
67
  - **🧾 迁移任务中心**:批量迁移逐项持久化记录(完成/失败、最后错误与尝试时间),失败项一键重试——按会话当前位置重新迁移,不用陈旧路径
68
- - **⏳ 忙碌会话自动排队**:运行中或写入句柄未释放的会话不会触碰文件,卸载或重启后自动重试;队列持久化,支持单项取消、单项重试和批量重试失败项
68
+ - **⏳ 即时迁移**:接入生命周期的空闲会话释放句柄后直接搬移并重新加载;运行中需明确选择停止任务。旧队列仍可查询、取消和重试
69
69
  - **🔎 迁移预览**:确认前展示来源、目标路径、冲突、运行状态、适配器和本次预计新增备份大小;已有内容快照会明确显示复用
70
70
  - **📂 空分组清理 / 打开文件夹**:只列出真正零成员的工作区;组菜单可直达系统文件管理器
71
71
  - **🤖 Agent 工具**:`mover_list_sessions` / `mover_move_session` / `mover_repair_sessions` / `mover_doctor` / `mover_create_workspace` / `mover_rename_workspace` 六个模型可调用工具——在对话里说「把这个会话挪到某组」即可触发与面板完全相同的备份回滚管线,也能新建、改名工作区;迁移、修复与改名执行前经宿主审批弹窗确认(改名在完全访问模式下免确认),未装 dsh-tools 的宿主自动停用
@@ -236,6 +236,7 @@ dsh plugin --profile web add "link:C:/path/to/dsh-workspace-mover"
236
236
 
237
237
  | 插件版本 | 已验证 DeepSeek Harness | Node | 备注 |
238
238
  |----------|-------------------------|------|------|
239
+ | 2.4.2 | `0.2.1-rc.2` Desktop | `≥22` | 用户确认即时迁移、当前界面继续发送、运行中取消/停止迁移、标题保留及重启恢复 |
239
240
  | 2.4.0 | `0.2.1-rc.2` Desktop | `≥22` | 用户确认排队、迁移前后继续发送、两次重启、目标工作目录和工作区工具审批;自动滚动仅自动检查 |
240
241
  | 2.3.0 | `0.2.0-rc.2` Desktop(用户验证部分场景) | `≥22` | 空闲会话迁移与快照复用已反馈通过;Web、队列进程重启和完整 runtime smoke 待验证 |
241
242
  | 2.2.0 | `0.1.5-rc.1`、`0.1.5-rc.2`、**`0.2.0 桌面版`**(0.2.0-rc.2 内核) | `≥22` | 存储布局自检、Agent 工具与桌面版实测;宿主缺 `dsh-tools` 时工具自动停用 |
@@ -313,6 +314,13 @@ dsh plugin --profile web add "link:C:/path/to/dsh-workspace-mover"
313
314
 
314
315
  ## 🆕 最近版本
315
316
 
317
+ ### v2.4.2 · 2026-10-26
318
+
319
+ - **即时迁移**:已接入生命周期的空闲会话直接释放句柄、搬移并重新加载;运行中可取消或明确选择“停止任务并迁移”。
320
+ - **标题修复(#10)**:对齐标题缓存归属,兼容新版单记录缓存,避免迁移及归档列表误显示“未命名会话”。
321
+ - **迁移后继续对话**:等待旧界面引用释放后重新打开,修复“会话不可用”;桌面提示改为必要时彻底退出并重启。
322
+ - **验收**:Desktop `0.2.1-rc.2` 上述流程及重启后继续发送均通过。更新后请彻底重启 DSH 一次。见[验收记录](docs/compatibility/immediate-migration-2026-10-26.md)和[CHANGELOG](CHANGELOG.md)。Web 与旧版宿主的完整验收仍待补齐。
323
+
316
324
  ### v2.4.0 · 2026-10-22
317
325
 
318
326
  - **Issue #5 安全迁移**:运行中或仍驻留内存的会话进入持久化队列;等会话卸载或 DSH 重启、写入句柄关闭后再迁移,并保留工作目录变更历史。
package/README_EN.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # dsh-workspace-mover
2
2
 
3
3
 
4
- Current version: 2.4.1. In v2.4.0, running or resident sessions wait in the durable queue. Idle alone does not release a backend writer; unload the session or restart DSH before migration. Migration sets the current working directory to the target workspace, preserving existing directory-change events and appending a final change when needed. See the [Desktop acceptance record](docs/compatibility/issue-5-desktop-acceptance-2026-10-22.md) and [validation record](docs/compatibility/dsh-0.2.1-rc.2-2026-10-18.md).
4
+ Current version: **2.4.2**. Accepted on DSH Desktop `0.2.1-rc.2`. Tracked idle sessions release their writer, physically move and reload. Running tasks require explicit Stop task and move confirmation. Restart DSH once after installing/updating to capture lifecycle handles. Untracked writers block immediate drag migration; old durable queues remain inspectable and cancellable. See the [migration and title-fix acceptance record](docs/compatibility/immediate-migration-2026-10-26.md).
5
5
  > [!IMPORTANT]
6
6
  > Unofficial project, independently developed and maintained by community members.
7
7
 
@@ -13,7 +13,7 @@ Current version: 2.4.1. In v2.4.0, running or resident sessions wait in the dura
13
13
  <a href="https://github.com/PianoPrince/dsh-workspace-mover/actions/workflows/test.yml"><img alt="CI" src="https://github.com/PianoPrince/dsh-workspace-mover/actions/workflows/test.yml/badge.svg" style="height:20px; margin:0 2px;" /></a>
14
14
  <a href="https://www.npmjs.com/package/dsh-workspace-mover"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-workspace-mover" style="height:20px; margin:0 2px;" /></a>
15
15
  <a href="https://www.npmjs.com/package/dsh-workspace-mover"><img alt="npm downloads in the last 30 days" src="https://img.shields.io/npm/dm/dsh-workspace-mover" style="height:20px; margin:0 2px;" /></a>
16
- <img alt="plugin version" src="https://img.shields.io/badge/dsh--plugin-2.4.1-4d6bfe" style="height:20px; margin:0 2px;" />
16
+ <img alt="plugin version" src="https://img.shields.io/badge/dsh--plugin-2.4.2-4d6bfe" style="height:20px; margin:0 2px;" />
17
17
  <img alt="DSH tested 0.2.1-rc.2" src="https://img.shields.io/badge/DSH_tested-0.2.1--rc.2-4c8dff" style="height:20px; margin:0 2px;" />
18
18
  <img alt="Node" src="https://img.shields.io/badge/Node-%E2%89%A522-339933" style="height:20px; margin:0 2px;" />
19
19
  </p>
@@ -64,7 +64,7 @@ DeepSeek Harness's sidebar supports drag-to-reorder **within** a workspace, but
64
64
  - **🛡️ Data protection**: identical session content keeps one physical snapshot, so back-and-forth moves do not grow storage without bound; every move still appears in history with snapshot counts and footprint visible
65
65
  - **⏪ Move history and undo**: last 100 cross-workspace moves; bulk operations aggregate into one undoable entry
66
66
  - **🧾 Task center**: bulk moves persist per-item state (done/failed, last error and attempt time); failed items retry in one click — from each session's CURRENT location, never a stale path
67
- - **⏳ Busy-session queue**: running sessions are never touched; queued work is persistent, with per-item cancel/retry and batch retry for failed items
67
+ - **⏳ Immediate migration**: tracked idle sessions release their lifecycle, physically move and reload; running tasks require explicit stop confirmation. Existing queued work remains inspectable, cancellable and retryable
68
68
  - **🔎 Migration preview**: before confirmation, show source, target path, collisions, running state, adapter mode, and estimated new backup bytes; reuse is called out when a matching snapshot already exists
69
69
  - **📂 Empty-group cleanup / open folder**: only truly empty workspaces are listed; open a group directory in your file manager
70
70
  - **🤖 Agent tools**: six model-callable tools — `mover_list_sessions` / `mover_move_session` / `mover_repair_sessions` / `mover_doctor` / `mover_create_workspace` / `mover_rename_workspace` — so "move this session to group X" in the conversation runs the same backup-first pipeline as the panel, and workspaces can be created and renamed too; move, repair and rename ask for user approval first (rename skips it under full access), and hosts without `dsh-tools` skip them automatically
@@ -237,6 +237,7 @@ Recovery snapshots are separate from primary archives. A reused snapshot retains
237
237
 
238
238
  | Plugin version | Verified DeepSeek Harness | Node | Notes |
239
239
  |----------------|---------------------------|------|-------|
240
+ | 2.4.2 | `0.2.1-rc.2` Desktop | `≥22` | User accepted immediate migration, continued replies in the same view, cancel/stop-and-move, titles and restart recovery |
240
241
  | 2.4.0 | `0.2.1-rc.2` Desktop | `≥22` | User accepted queueing, continued replies, two restarts, target cwd and workspace-tool approval; autoscroll automated checks only |
241
242
  | 2.3.0 | `0.2.0-rc.2` Desktop (partial user verification) | `≥22` | Idle migration and snapshot reuse confirmed; Web, queue process restart, and full runtime smoke pending |
242
243
  | 2.2.0 | `0.1.5-rc.1`, `0.1.5-rc.2`, **`0.2.0 desktop`** (0.2.0-rc.2 core) | `≥22` | Storage-layout check; Agent tools + desktop verified; tools auto-skip on hosts without `dsh-tools` |
@@ -299,6 +300,13 @@ Every migration runs through the same safety-bounded pipeline: **byte-level back
299
300
 
300
301
  ## 🆕 Recent version
301
302
 
303
+ ### v2.4.2 · 2026-10-26
304
+
305
+ - **Immediate migration**: tracked idle sessions release their writer, physically move and reload. Running tasks require explicit stop-and-move consent; cancellation leaves them running.
306
+ - **Titles (#10)**: align projection identity before publishing membership and read current per-record checkpoints, fixing unnamed entries after migration and in archive/repair lists.
307
+ - **Conversation recovery**: wait for old view references to release before reopening, fixing the unavailable composer. Desktop guidance now says to fully quit and restart if needed.
308
+ - **Acceptance**: these flows and continued replies after restart passed on Desktop `0.2.1-rc.2`. Fully restart DSH once after updating. See the [acceptance record](docs/compatibility/immediate-migration-2026-10-26.md) and [CHANGELOG](CHANGELOG.md). Full Web and older-host acceptance remains pending.
309
+
302
310
  ### v2.4.0 · 2026-10-22
303
311
 
304
312
  - **Issue #5 safe migration**: running or resident sessions enter a durable queue; migration waits for unload or restart and writer release, preserving working-directory history.