🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话管家 ZilongYang/dsh-session-mng

DeepSeek Harness
ZilongYang9 天前有提交已提供中文文档扫描:含敏感能力

统一整理会话,生成标题、归档迁移与彻底删除

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZilongYang/dsh-session-mng
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 9 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 26 处,展示前 20 条)
  • 发起网络请求
    client.js:639
    response = await fetch(`${API}${path}`, {
  • 写入剪贴板
    client.js:1275
    await navigator.clipboard.writeText(row.id)
  • 读取本地文件
    lib/store-jsonl.js:45
    await access(path)
  • 读取本地文件
    lib/store-jsonl.js:55
    return (await stat(path)).isDirectory()
  • 读取本地文件
    lib/store-jsonl.js:104
    projects = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/store-jsonl.js:113
    sessions = await readdir(projectDir, { withFileTypes: true })
  • 读取本地文件
    lib/store-jsonl.js:143
    entries = await readdir(dir, { withFileTypes: true })
  • 读取本地文件
    lib/store-jsonl.js:197
    size = (await stat(log.path)).size
  • 写入本地文件
    lib/store-jsonl.js:357
    await rename(temp, path)
  • 删除本地文件
    lib/store-jsonl.js:362
    await rm(path, { force: true })
  • 写入本地文件
    lib/store-jsonl.js:363
    await rename(temp, path)
  • 删除本地文件
    lib/store-jsonl.js:365
    await rm(temp, { force: true }).catch(() => {})
  • 写入本地文件
    lib/store-jsonl.js:373
    await mkdir(dirname(destination), { recursive: true })
  • 写入本地文件
    lib/store-jsonl.js:375
    await rename(source, destination)
  • 删除本地文件递归
    lib/store-jsonl.js:381
    await rm(source, { recursive: true, force: true })
  • 写入本地文件
    lib/store-jsonl.js:386
    await mkdir(dirname(destination), { recursive: true })
  • 写入本地文件
    lib/store-jsonl.js:437
    await mkdir(tempRoot, { recursive: true })
  • 删除本地文件递归
    lib/store-jsonl.js:461
    await rm(targetDir, { recursive: true, force: true }).catch(() => {})
  • 删除本地文件递归
    lib/store-jsonl.js:469
    await rm(targetDir, { recursive: true, force: true }).catch(() => {})
  • 删除本地文件递归
    lib/store-jsonl.js:477
    await rm(backupDir, { recursive: true, force: true })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的会话管理:统一列表、标题、归档与恢复、跨工作区移动、永久删除。

README

由 DeepSeek 最新模型翻译生成
dsh-session-mng 一个设置页管好全部 DeepSeek Harness 会话:按整段对话生成标题、归档或恢复、把冷会话移到其他工作区、彻底删除已归档会话。 一个设置页管理全部 DSH 会话:按整段对话生成标题、归档/恢复、跨工作区移动、彻底删除已归档会话。Host + Web Client 双半插件,无运行时依赖,不注册模型可见工具,不注册标题 provider。 快速开始(EN) — 桌面版:在应用内 Plugins 页安装(desktop profile 由应用管理,所以 dsh plugin --profile desktop … 会被拒绝)。命令行管理的 profile:dsh plugin --profile <profile> add dsh-session-mng。打开 Settings → Session Manager。在对话框里按下确认按钮之前,不会写入任何内容。 Overview 功能 - 统一会话总览:按工作区分组,列出当前 profile 的全部会话(活跃 + 已归档)。显示标题、路径、会话 id、大小、最后活动时间,以及运行/已打开/已归档/已置顶/子会话标记;支持搜索、工作区筛选、排序、刷新、批量选择。
展开完整文档(README 剩余 1 节)
dsh-session-mng

一个设置页管好全部 DeepSeek Harness 会话:按整段对话生成标题、归档或恢复、把冷会话移到其他工作区、彻底删除已归档会话。

一个设置页管理全部 DSH 会话:按整段对话生成标题、归档/恢复、跨工作区移动、彻底删除已归档会话。Host + Web Client 双半插件,无运行时依赖,不注册模型可见工具,不注册标题 provider。

快速开始(EN) — 桌面版:在应用内 Plugins 页安装(desktop profile 由应用管理,所以 dsh plugin --profile desktop … 会被拒绝)。命令行管理的 profile:dsh plugin --profile <profile> add dsh-session-mng。打开 Settings → Session Manager。在对话框里按下确认按钮之前,不会写入任何内容。

Overview

功能

- 统一会话总览:按工作区分组,列出当前 profile 的全部会话(活跃 + 已归档)。显示标题、路径、会话 id、大小、最后活动时间,以及运行/已打开/已归档/已置顶/子会话标记;支持搜索、工作区筛选、排序、刷新、批量选择。
- 工作区优先 + 分页:会话数 >100 时默认折叠工作区;每个工作区默认 50 条,点「加载更多」继续展开;搜索会自动展开命中的工作区。过滤工具栏和批量条整体吸顶。
- 选择跟随可见集:切换筛选/折叠/搜索/刷新后,隐藏的会话自动取消选择;全选当前列表 只作用于当前筛选与已展开的工作区。
- 生成标题:选中任意会话(包括已归档的冷会话),让模型总结整段对话,给出可编辑的标题提案;确认后才写入。活跃会话走官方 sessionTitle.rename,冷会话按官方 session/title 事件形状追加,不需要恢复会话。
- 归档 / 恢复:调用官方 workspaceRegistry.archiveSession / unarchiveSession。运行中的会话先提示,用户二次确认后才停止并归档;恢复后回到原工作区原位置。
- 跨工作区移动:把冷会话真正迁移到目标工作区——改写会话日志 header 的 cwd、把日志目录迁到目标项目目录、同步 workspace 账本。SessionId、归档状态、pin 状态不变,事件字节不变。
- 彻底删除已归档会话:删除前先预览范围(根会话、子代理会话、目录、字节数);确认后把日志目录移出 store、清理归档集合与 workspace 账本,再删除。不可恢复。
- 预览最近消息:不恢复会话即可看最近 10 条用户/助手消息。
- 失效归档标记清理:归档集合里有、但磁盘上已无日志的 id,会以横幅提示并允许清理。
- 中英双语、浅色/深色主题跟随宿主。

Expanded workspace

Title proposal

Deletion scope

安装

桌面版(DeepSeek Harness.app)

desktop profile 由应用独占,命令行不接管它。请在应用内 设置 → 插件(Plugins) 中搜索 dsh-session-mng 安装;安装后在 设置 → 会话管理 打开。

本地开发 / 未发 npm 时,在应用内插件管理器使用「从本地目录安装」,或在支持 plugin_manager 的会话里把本仓库目录作为 bundle 安装。

命令行管理的 profile(web / main / 自建)

从 npm 安装(发版后)
dsh plugin --profile <profile> add dsh-session-mng

从 GitHub 源码安装
dsh plugin --profile <profile> add github:ZilongYang/dsh-session-mng#main

本地开发:把本仓库直接链接进去
dsh plugin --profile <profile> add link:/绝对路径/dsh-session-mng

Host 半是进程内模块:装完如果看不到页面,重启一次 dsh/应用再刷新页面;Client 半刷新页面即可。

市场状态:awesome-dsh-plugin 收录 PR #9672 的 check 已通过;Submission gate 目前只差仓库满 1 天(约 2026-10-28 00:44 Asia/Shanghai 自动重跑),无需重新提交。合并后 dshmarket 读取同一份目录,卡片版本随 npm 显示 0.1.1。

使用

1. 打开 设置 → 会话管理。
2. 顶部 tab 切换 全部 / 活跃 / 已归档;用工作区下拉、搜索框、排序缩小范围。
3. 点任意会话进入详情:生成标题、打开、归档/恢复并打开、移动到其他工作区、彻底删除(仅已归档)。
4. 在列表里勾选多个会话,可批量归档、恢复、移动、删除;批量删除也会先显示范围确认。
5. 所有写操作都要在界面里明确点击确认;标题提案本身不写任何数据。

它是怎么工作的

Settings page (client.js)
│ GET /session-mng/api/state
│ POST /session-mng/api/{preview,title/propose,title/apply,archive,unarchive,delete/preview,delete,move}
▼
Host route (lib/api.js) ──► service (lib/service.js)
├─ state : sessionController/sessionQuery + workspaceRegistry + sessionPersistence
├─ title : sessionQuery.readSurface → ctx.llm.stream → 确认后写 session/title 事件 ├─ archive : workspaceRegistry.archiveSession / unarchiveSession ├─ move : 日志 header cwd 重写 + 目录迁移 + workspace 缓存对账(失败全回滚) └─ delete : 删除范围预览 → 目录移入临时区 → 清理账本 → 删除(失败回滚)

- 标题是日志事件:session/title 的 source 为 user,与官方重命名一致;已归档会话不需要恢复 Agent。
- 工作区归属是派生的:由会话 header 的 cwd 决定。移动必须改写 header,只改账本无效。
- 不碰事件正文:移动只重写日志第一个 frame(header),其余字节原样保留;移动后重新完整 replay 校验一次。
- 事务式删除/移动:目录先移出 sessions root 到同文件系统的临时目录,失败可回滚;成功后才删除临时副本。
- 零模型工具:不注册 agent tool、不注入系统提示词、不注册 title provider,正常对话的 token 开销为 0。

兼容性

| 项 | 说明 |
| 实测宿主 | DSH 0.2.1-rc.2(Desktop desktop profile,Web GUI) |
| Node | >=20.3 可运行总览/标题/归档/删除;移动 需要 node:zlib 的 Zstandard 支持(Node >=22.15,当前 Desktop 运行时为 Node 24.21) |
| 会话后端 | 移动/删除只支持本地 JSONL 后端(sessionPersistence.locate);其他后端仍可用总览/标题/归档/恢复 |
| 官方依赖 | 无 runtime 依赖;只使用 ctx 服务 |
| 已知限制 | 已打开(live)会话不能移动或彻底删除,重启 DSH 后重试;有子代理后代的会话不能单独移动;子会话不出现在主列表(可勾选「显示子会话」查看) |
| 规模限制 | 0.1.1 的折叠/分页只在客户端压 DOM,state 仍一次拉全量(202 条约 103 KB;10000 条约 5 MB)。Host 侧 overview + paged sessions 是 0.2.0 的主任务 |

版本敏感点(请读)

移动需要让 workspace registry 的内存 header 缓存先认识新 cwd,再走公开的 attachSession / detachSession。这个 seam 在当前实测版本可用,但属于宿主内部细节:

- 写盘前做特性检测;接口形状变化时直接拒绝移动并返回 unsupported-registry,不会留下半移动状态。
- 移动/删除都有回滚;极端情况下返回 manual-recovery,并在错误 details 中给出源目录、目标目录和备份目录。
- 兼容性只声明到实测版本;升级 DSH 后请先跑一遍 npm test 与本文的实机验收清单。

配置(可选)

在 profile 的 patch 行里可以覆盖默认值;所有值都会 clamp:

- id: session-mng
name: 'dsh-session-mng'
config:
maxBatch: 50 # 归档/恢复/删除单次最多 id 数 maxMoveBatch: 20 # 移动单次最多 id 数 titleTimeoutMs: 30000 titleMaxInputBytes: 32768 titleMaxOutputTokens: 256 titleMaxBytes: 120 allowRemote: false # 默认只接受 loopback / webRuntime.trustedHosts sessionsRoot: '' # 仅在 sessionPersistence.locate 缺失时作为定位兜底

安全边界

- API 路由默认只接受 loopback 或宿主 webRuntime.trustedHosts;拒绝 Sec-Fetch-Site: cross-site 与不匹配的 Origin。
- 请求体上限 64 KiB;只接受 host 已知的 session id 与 workspace id,不接受路径或命令参数。
- 不执行 shell 命令;文件操作只作用于 sessionPersistence.locate / 受控扫描推导出的会话目录。
- 日志只记录 action、session id、workspace id 和结果码,不记录标题、消息或路径全文。

开发

npm test # node --test,26 个单元/集成测试
node --check index.js client.js lib/*.js
npm --cache /tmp/dsh-npm-cache pack --dry-run
实机验收:安装到 desktop 配置档 → 确认 settings.section 出现 session-mng-section → 用一次性测试会话验证标题/归档/恢复/移动/删除 → 清理测试数据。0.1.1 的列表验收见 docs/RELEASE-CHECKLIST-0.1.1.md。

当前状态与下一步

- 0.1.1 已发布到 npm / GitHub / Release;26 个测试全绿,31 个文件。
- 市场 PR #9672 等 1 天仓库年龄 gate,之后等维护者合并。
- 下一项主任务:0.2.0 Host 侧 overview + 分页 sessions,为 1000–10000 条会话设计;详细任务、验收标准、环境坑见 接手说明。

文档索引

- 接手说明(下一步任务)
- 实施计划(批准时原样归档)
- 0.1.0 发布检查清单
- 0.1.1 实施计划
- 0.1.1 发布检查清单
- 设计与实现说明
- 开源、发 npm 与市场收录记录
- 路线图
- 变更记录

License

MIT © 2026 ZilongYang
预览分享卡片长什么样 ↓ZilongYang/dsh-session-mng
分享 · DeepSeek Harness Hub
ZilongYang/dsh-session-mng

统一整理会话,生成标题、归档迁移与彻底删除

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部