修复历史会话加载报错,让旧记录正常打开
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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jiayuxuan123/dsh-session-history-fix
修复历史会话加载报错,让旧记录正常打开
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目