Repository navigation
修复:删除会话后所有客户端的侧栏即时剪行(PR #4)
之前删除会话后只有操作方的客户端刷新列表,其他已连接客户端的侧栏会残留一行「幽灵会话」——点开报 session/not-found,要等重连或重启才消失。本版起删除/还原都会向所有客户端广播官方协议事件,行即时消失/回归。合并前已对 DSH 源码逐项核实转发链路与客户端处理(详见 PR 评论)。
变更
- 删除即广播
api-session/removed(含 dir-missing 路径):所有客户端的会话列表 store 立即剪掉该行——补上 v0.4.0「keptHidden 防复活」设计之外缺的最后一块拼图;活会话场景宿主 dispose 时自发的第二次广播幂等无害 - 还原即广播
api-session/added:最小摘要与宿主summaryFor字段对齐(含formatStatus: "current"),行无需等基线刷新即回归侧栏 - 在线解除归档优先走公开 API:新版 DSH 用
workspaceRegistry.unarchiveSession()(与归档同串行队列、同持久化、同广播);旧版(≤0.1.1-rc.x)保留内部状态机回退,能力探测与 501 回退不变 - 已知边界(核心语义,非缺陷):官方客户端把
origin === "subagent"的行视为持久记录——removed 只置为未运行,行在下次基线刷新时消失;操作方客户端不受影响
测试
- 新增广播断言:删除发
removed(裸 id 载荷)、还原发added(sessionId/formatStatus/running/cwd) - 测试桩的会话目录名改用与核心同款
~XXXX转义——修复 PR 作者在 Windows 上报告的两个失败(原始:在 NTFS 不是合法目录名;插件本体无此问题)
升级
dsh plugin --profile web add github:xohmai/dsh-session-delete#v0.5.1装完重启 dsh web 生效。