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

会话历史修复 jiayuxuan123/dsh-session-history-fix

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

修复历史会话加载报错,让旧记录正常打开

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 15 处,展示前 15 条)
  • 读取本地文件
    apply-patch.mjs:64
    const src = readFileSync(path, "utf8");
  • 写入本地文件
    apply-patch.mjs:80
    writeFileSync(path, replaceSet(src, knownSpan, sorted, indent, quote));
  • 执行外部命令固定命令
    cli/bin/cli.mjs:50
    const out = execFileSync("reg", [
  • 读取本地文件
    cli/bin/cli.mjs:87
    if (!existsSync(libPath)) {
  • 读取本地文件
    cli/bin/cli.mjs:102
    if (existsSync(sessionsDir)) {
  • 读取本地文件
    cli/lib/patch.mjs:62
    const src = readFileSync(file, "utf8");
  • 写入本地文件
    cli/lib/patch.mjs:81
    writeFileSync(file, replaceSet(src, knownSpan, sorted, indent, quote));
  • 读取本地文件
    cli/lib/patch.mjs:94
    if (!existsSync(file)) {
  • 读取本地文件
    cli/lib/verify.mjs:99
    const workspaceDirs = readdirSync(sessionsRoot, { withFileTypes: true })
  • 读取本地文件
    cli/lib/verify.mjs:108
    try { sessionDirs = readdirSync(ws, { withFileTypes: true }).filter((d) => d.isDirectory()); }
  • 读取本地文件
    cli/lib/verify.mjs:112
    if (!statSync(log, { throwIfNoEntry: false })) continue;
  • 读取本地文件
    cli/lib/verify.mjs:115
    try { buf = readFileSync(log); } catch { failed += 1; failures.push(`${s.name}: read failed`); continue; }
  • 读取本地文件
    verify-all-sessions.mjs:66
    for (const dir of readdirSync(sessionsDir, { withFileTypes: true }).filter((d) => d.isDirectory())) {
  • 读取本地文件
    verify-all-sessions.mjs:68
    if (!statSync(log, { throwIfNoEntry: false })) continue;
  • 读取本地文件
    verify-all-sessions.mjs:70
    const buf = readFileSync(log);
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 修复历史会话加载报错
  • 正常打开旧记录

README

由 DeepSeek 最新模型翻译生成
DSH 会话历史修复 修复 DSH Desktop(myYangyunfan/dsh_desktop 个人打包版)的历史会话加载失败问题。 修复 DSH Desktop(DeepSeek Harness 的 myYangyunfan/dsh_desktop 打包版)中出现的 “history unavailable for session ... SessionFormatUnsupportedError”。 问题 / Problem 打开历史会话时报错: history unavailable for session "...": SessionFormatUnsupportedError: session "..." contains event type "agent-teams/team-created" (seq 3211) unknown to this harness and not marked ignorable; refusing to interpret the log — it was likely written by a newer harness (raw log: .../session.jsonl.zstd) 根因 / Root cause
展开完整文档(README 剩余 1 节)
DSH 会话历史修复

修复 DSH Desktop(myYangyunfan/dsh_desktop 个人打包版)的历史会话加载失败问题。

修复 DSH Desktop(DeepSeek Harness 的 myYangyunfan/dsh_desktop 打包版)中出现的 “history unavailable for session ... SessionFormatUnsupportedError”。

问题 / Problem

打开历史会话时报错:

history unavailable for session "...":
SessionFormatUnsupportedError: session "..." contains event type
"agent-teams/team-created" (seq 3211) unknown to this harness and not
marked ignorable; refusing to interpret the log — it was likely written by a newer harness (raw log: .../session.jsonl.zstd)

根因 / Root cause

1. 会话读取器(dsh-session-persistence → @deepseek-ai/dsh-session)只接受生成词汇表 KNOWN_SESSION_EVENT_TYPES 中的事件类型,其余类型必须带 ignorable: true 标记,否则拒绝解释整个日志(防止因不认识的事件而错误重建会话)。
2. 仓库外插件写入的持久化会话事件不在该词汇表中:
- dsh-agent-teams → agent-teams/team-created | member-added | member-removed | task-created | task-updated | message-sent | team-deleted
- dsh-message-edit → message-edit/version
- dsh-web-search-exa → web/exa-search-request
3. 核心的 Session.append(type, data, opts) 没有 ignorable 选项,核心也没有给仓库外插件提供事件类型注册面,插件无法自行标记(上游讨论:deepseek-ai/deepseek-harness#802)。

影响范围 / Scope

本修复仅针对 myYangyunfan/dsh_desktop 打包版 DSH Desktop(0.3.x,内置官方核心 @deepseek-ai/dsh-session@0.1.0-rc.6):

- 只要会话里出现过上述插件事件,历史就无法加载。
- 官方 npm 当前发布的核心(@deepseek-ai/dsh-session@0.0.1-rc.1)尚未包含词汇表检查机制,因此官方原版(dsh CLI)暂不会遇到此问题;这是官方
npm 发布滞后于仓库最新代码所致,与打包作者无关(打包版使用的是官方
发布的核心包,版本号与 repository 均可验证)。
- 不装这些插件的安装不受影响。

修复原理 / Fix

向 @deepseek-ai/dsh-session 的两份 KNOWN_SESSION_EVENT_TYPES 副本(lib/index.js 与 lib/types/known-event-types.js)加入上述 9 个事件类型(44 → 53 项)。事件数据本身不被改动、不会被丢弃,Web 端插件卡片渲染不受影响。脚本按内容定位词汇表(绝不误改 SURFACE_EVENT_TYPES),且幂等,可重复执行。

使用方法 / Usage

一条命令(npm,无需克隆仓库)

npx dsh-session-history-fix

自动定位 DSH Desktop 安装目录 → 打补丁(幂等)→ 校验全部会话日志。
详见 cli/(npm 包 dsh-session-history-fix 源码)。

一键(Windows)

双击 fix-dsh-history.bat(自动请求管理员权限):

1. 重打补丁(幂等)
2. 校验全部会话日志
3. 提示重启 DSH Desktop

手动

默认安装路径 C:\Program Files\DSH Desktop
node apply-patch.mjs

其它安装路径
DSH_APP_DIR="D:/MyDSH" node apply-patch.mjs

校验

校验某个工作区全部会话日志能否被读取器接受
node verify-all-sessions.mjs
或指定会话目录
node verify-all-sessions.mjs "C:/Users/xxx/.dsh/sessions/--my-workspace--"

改完后必须重启 DSH Desktop(运行中进程内存里仍是旧词汇表)。

重要提醒 / Caveats

- DSH Desktop 有自动更新器,更新会覆盖打包文件,更新后需重新运行本修复(脚本幂等,直接重跑即可)。
- 这是对已安装程序的本地补丁,治本方案在上游:为核心提供仓库外插件的事件注册面,或让插件事件带 ignorable 标记。

关联项目 / Related

- myYangyunfan/dsh_desktop —— 本修复所针对的 DSH Desktop 打包版(DeepSeek Harness Windows 桌面客户端)
- deepseek-ai/deepseek-harness —— 官方上游(词汇表检查机制的来源)
- deepseek-ai/deepseek-harness#802 —— 上游关于“仓库外插件无法安全持久化自己的 Session 事件”的讨论

许可证

MIT
预览分享卡片长什么样 ↓jiayuxuan123/dsh-session-history-fix
分享 · DeepSeek Harness Hub
jiayuxuan123/dsh-session-history-fix

修复历史会话加载报错,让旧记录正常打开

这是你的仓库?认领条目

回到顶部