Repository navigation
Releases: Tinger-X/dsh-session-enhance
Release list
v0.2.9
v0.2.9
- 🌳 对话树(Conversation Tree):会话不再是一条线,而是一棵树——每一轮提问是一个节点
- 在任意已完成回答处点击「重新生成」,或把历史提问改为新表述后「修改并重新生成」,都会在同一会话内长出新的分支;旧回答被完整保留,随时可以切回
- 会话视图左侧的树形概览:节点按分支着色、对应每一轮提问,悬浮查看该轮内容、点击跳转
- 在分叉点用
‹ n/m ›控件在不同分支的续写之间自由切换 - 回答仍在生成时发起的分支操作会自动排队,生成结束后自动重放
- 安全保护:会改写既有子分支的危险操作一律拒绝,绝不产生悬空或丢失内容
- 对话树持久化模型:sidecar
session.tree.json保存分支元数据与非活动分支的事件段,主干日志始终是当前活动分支的合法线性记录;分支切换/重生成在同一会话内原地完成,不触发会话销毁与重开 - 截图与文档:新增对话树截图;刷新会话菜单 / 基础设置 / 归档管理 / 对话预览截图;README 双语重写,同步更新仓库说明
安装:dsh plugin --profile web add dsh-session-enhance(npm dsh-session-enhance@0.2.9)
v0.2.8
v0.2.8
- 新增 preview 域:Markdown 预览(lib/domains/preview.js)
- 设置页增强:客户端设置界面重构与扩展(src/client/settings.js)
- 客户端与契约层更新:client.js、shared/contracts(invocations / schemas)
- 工作区逻辑增强(lib/workspace.js)
- 测试同步更新
安装:dsh plugin --profile web add dsh-session-enhance(npm dsh-session-enhance@0.2.8)
v0.2.7
What's New in v0.2.7
- Workspace sweep: after deleting the last session of a workspace, leftover empty workspace directories under
~/sessions(e.g.sessions/--D-tmp--) are now cleaned up. Only truly empty directories are removed — never anything with content — so in-use workspace transcripts are never touched. Exposed in the archive/sync flows. - Hardening of client / settings / shared contracts (invocations & schemas) with new workspace-sweep tests.
Features included (cumulative)
Full-control session management for DeepSeek Harness Web — every operation is a real filesystem change, verified against disk, rolled back on failure. The sidebar and the files can no longer disagree.
| Feature | What it does |
|---|---|
| Archive management | Archive from the sidebar menu; search / sort / filter / restore / batch-delete in 设置 → 对话增强 → 归档管理 |
| Physical delete with receipts | Transcript directory removed (3 retries for Windows handle release) + direct ~/storages/*.json sweep + post-delete disk verification with leftover warnings; tombstones block stale lists from resurrecting sessions |
| Drag between workspaces | Files physically move, transcript header cwd rewritten (zstd-frame-aware), verified, auto-rolled-back on failure; subagent children cascade, projection cache rehomed so the title survives; running sessions are flushed + detached first |
| Conversation notifications | A background conversation finishing or needing your input pops a system notification |
| Copy session ID | One click in the sidebar menu, also on archived sessions |
| Sync records (同步记录) | One-click reconcile of ~/storages/*.json against disk: purge ghosts, fix attribution, restore missing entries |
| Workspace sweep | Empty workspace directories left after deleting a workspace's last session are cleaned up (never touches non-empty dirs) |
| Settings | .dsh home directory + notification toggle in 设置 → 对话增强 → 基础设置 |
Install
# From npm (stable)
dsh plugin --profile web add dsh-session-enhance
# From GitHub (latest commit)
dsh plugin --profile web add github:Tinger-X/dsh-session-enhanceRequires Node ^22.19.0 || >=24.0.0 and a working DSH Web profile. Restart DSH Web, hard-refresh (Ctrl+F5) — 对话增强 appears in Settings right after Connectors.
Links
- Repo: https://github.com/Tinger-X/dsh-session-enhance
- npm: https://www.npmjs.com/package/dsh-session-enhance
- Issues: https://github.com/Tinger-X/dsh-session-enhance/issues
- License: Apache-2.0
v0.2.6
v0.2.6
- Fix: Allow esbuild build scripts to run on pnpm 11 (resolves
ERR_PNPM_IGNORED_BUILDSduring install/build). - Refactor: Source-ify the client bundle into
src/clientESM modules; split the workspace registry into domain modules; add an upstream anti-corruption layer (sessions/agents/spill gates); extract a shared contracts layer (schemas/typert/constants).
Install:
dsh plugin --profile web add dsh-session-enhancev0.2.5
v0.2.4
v0.2.4
- Feat: Conversation notifications — a background conversation finishing or needing your input pops a system notification while you are elsewhere.
- Feat: Settings menu upgraded to "Conversation Enhance" with basic settings (
.dshhome directory + notification toggle). - Fix: Warm uncached session projections and reconcile moved-session identities on startup (restart no longer shows the workspace name instead of the title).
- CI: switch npm publishing to OIDC Trusted Publishing.
Install:
dsh plugin --profile web add dsh-session-enhancev0.2.1
v0.2.0
dsh-session-enhance v0.2.0
DeepSeek Harness Web 会话管理增强插件:归档管理、真实物理删除、拖拽跨工作区移动、消息编辑、记录同步。
✨ 本版亮点(相对 v0.1.1)
- ✏️ 融合 dsh-message-edit — 消息编辑:会话 Timeline 视图可编辑任意用户/助手文本块、重试某个回合、重新生成最近一次回复;每次操作分叉为可逆版本分支(截断或保留下游回合),完整版本树导航 + undo/redo;
/message-edit路由与既有message-edit/version事件完全兼容。 - 🐛 修复跨工作区移动会话的显示与继续对话 bug:移动后会话在侧栏正确显示于目标工作区、可正常继续对话(含转录目录物理迁移、工件 header
cwd改写、投影缓存与持久化状态刷新)。
🗂 核心能力(延续 0.1.x)
- 归档管理:侧栏菜单归档;设置 → 归档管理 搜索 / 排序 / 按工作区筛选 / 批量恢复 / 确认后删除。
- 真实物理删除:转录目录删除(3 次重试)+ 子代理级联 + spill 清理 + 直接清扫
~/storages/*.json(原子写)+ 删除后磁盘验证。 - 跨工作区分组拖拽搬移:转录文件真实迁移 + 工件 header
cwd改写(zstd 帧布局感知,失败自动回滚);实时会话先 flush 再移动。 - 同步记录:按物理 session 文件对账
storages/*.json(清理幽灵 / 修正归属 / 补记漏记)。 - 墓碑防复活机制。
📅 后续开发计划(Roadmap)
- 修复现有已知 bug:跨工作区移动的边界场景(实时会话移动、冷会话并发写)、消息编辑与归档/删除联动的细节、设置页大批量会话下的性能优化。
- 新增:对话节点删除功能:在 Timeline 中删除任意消息节点(含分支节点),支持整支删除与单节点删除,删除操作同样纳入可逆版本分支体系。
⚙️ Compatibility
DSH >=0.1.0-rc.5 <0.2.0(开发基于 0.1.1-rc.2)· Node ^22.19 || >=24 · Apache-2.0
📦 Install
dsh plugin --profile web add dsh-session-enhance
# 或直接从 GitHub:
dsh plugin --profile web add github:Tinger-X/dsh-session-enhancev0.1.1
dsh-session-enhance v0.1.1
DeepSeek Harness Web 会话管理增强插件:归档管理、真实物理删除、拖拽跨工作区移动、记录同步。
✨ Features
- 🗂️ 归档管理 — 侧栏菜单归档;Settings → 归档管理:搜索 / 排序 / 按工作区筛选 / 批量恢复 / 确认后删除
- 🗑️ 真实物理删除 — 转录目录删除(3 次重试,应对 Windows 句柄延迟)+ 子代理级联 + spill 清理 + 直接清扫
~/storages/*.json(原子写)+ 删除后磁盘验证 - 🖱️ 拖拽修改归属 — 会话拖到其他工作区分组,转录文件真实搬移,工件 header
cwd同步改写(zstd 帧布局感知,失败自动回滚);实时会话先 flush 再移动 - 🔄 同步记录 — 按物理 session 文件对账
storages/*.json:清理幽灵记录、修正错误归属、补记漏记 - 🛡 数据安全 — 删除墓碑防 stale list 复活;处处原子写;全程日志
⚙️ Compatibility
DSH >=0.1.0-rc.5 <0.2.0(开发基于 0.1.1-rc.2)· Node ^22.19 || >=24 · Apache-2.0
📦 Install
dsh plugin --profile web add dsh-session-enhance
# 或直接从 GitHub:
dsh plugin --profile web add github:Tinger-X/dsh-session-enhancev0.1.0
v0.1.0
A community plugin, derived from @michengai/dsh-archive-manager (Apache-2.0) and hardened into a session management toolkit: every action is a real filesystem operation, every deletion is verifiable, and every record in ~/storages/*.json is guaranteed to match the physical session files on disk.
✨ Highlights
| Feature | What you get | |
|---|---|---|
| 🗂️ | Archive management | Archive from the sidebar session menu; manage everything in Settings → 归档管理: search, sort by time/title, filter by workspace, unarchive, restore per project / all, batch delete with confirmation. |
| 🗑️ | True physical deletion | Deletes the actual transcript directory (with retry against Windows handle delays), cascades SUBAGENT children, cleans spill, and directly sweeps ~/storages/*.json so no ghost record survives — then verifies the disk and warns about leftovers. |
| 🖱️ | Drag & drop reassignment | Drag a session onto another workspace group (or ungrouped) in the sidebar. The transcript files physically move to the target workspace's session directory, and the artifact header's cwd is rewritten — accounting-only moves that silently drop sessions from the sidebar are impossible. |
| 🔄 | Record sync | One click reconciles ~/storages/*.json against the physical session files: ghosts are purged, misattributed sessions are corrected, missing accounting is restored. Immune to manual file edits or deletions. |
🧩 Why not the stock archive manager?
| Capability | Stock DSH / basic archive plugins | dsh-session-manager |
|---|---|---|
| Archive / unarchive / batch restore | ✅ | ✅ (same semantics) |
| Delete removes the transcript directory | rm, no retry |
✅ 3 retry attempts (Windows handle release) |
~/storages/*.json consistency after delete |
✅ direct disk sweep: recursive trace removal (archivedSessionIds, workspace sessionIds, projection-cache rows), atomic tmp+rename, untouched when unchanged |
|
| Post-delete verification | ❌ | ✅ verifyDeleted remote + logged leftover paths |
| Drag a session to another workspace | ❌ accounting only → session disappears from the sidebar | ✅ files move too: transcript dir relocated, artifact header cwd rewritten (zstd frame-aware via node:zlib), verified with automatic rollback |
| Protect against manual file edits/deletions | ❌ | ✅ Sync records: ghosts purged, attribution fixed, missing accounting restored |
| Stale-list resurrection protection | ❌ | ✅ deletion tombstones + cold-reuse identity probes |