Repository navigation
Releases: shadyyoung/dsh-shared-memory
Releases · shadyyoung/dsh-shared-memory
Release list
v1.6.2 — WorkBuddy MCP 接入
v1.6.2 — WorkBuddy 也走 MCP 了
变更
npm run install-apps现在会同时写入~/.workbuddy/mcp.json的shared-memory条目- WorkBuddy 打开即拥有 7 个记忆工具(memory_remember / search / forget / update / current / digest / status),不再依赖 skill 被模型主动调用
- 原 skill(
~/.workbuddy/skills/shared-memory/SKILL.md)保留作备份与手动触发 - 本机已写入(原
mcp.json自动备份),重启 WorkBuddy 生效
说明
- WorkBuddy 是 Electron 应用,已在运行的话必须完全退出再打开,才会加载新的 MCP 服务。
- 本次不改变存储格式。
Full Changelog: v1.6.1...v1.6.2
v1.6.1 — 其他 AI 打开即用(install-apps / autostart)
v1.6.1 — 其他 AI「打开即用」
新增
npm run install-apps- 自动检测已安装的 Cursor / Claude Desktop / ChatGPT(Codex) / Claude Code / Windsurf / WorkBuddy
- 备份原配置后写入
shared-memoryMCP 条目;新装 AI 应用后重跑一次即可
npm run autostart- 安装 macOS LaunchAgent,登录时自动打开 DeepSeek Harness
- 记忆服务随 DSH 常驻,Cursor / Claude / ChatGPT 打开就能连上
npm run autostart:uninstall可移除
说明
- 已经在运行的应用必须
Cmd+Q完全退出再打开一次才会加载 MCP 配置(应用自身限制,无法热更新)。 - 服务宿主仍是 DSH;autostart 让它登录后一直在,所以其他应用「打开即可用」。
- 本次为工具版本更新,不影响存储格式与已有记忆。
Full Changelog: v1.6.0...v1.6.1
v1.6.0 — 自动抽取收件箱 / 导入历史 / PII 脱敏
AI 跨平台记忆增强 · Shared Memory v1.6.0
从「记得存」到「自动会记」:自动抽取 + 导入历史 + PII 脱敏 + 接入自检。
新增 / Added
- 自动抽取 + 待确认收件箱
- 每条用户消息写入后自动抽取长期事实,先进「待确认」区,接受才成为记忆
- 默认
rules模式:关键词规则(偏好 / 身份 / 目标 / 项目 / 待办),免费、零模型调用 - 可选
autoExtract: llm:用ctx.llm.stream抽取(extractModel可指定便宜模型,maxExtractPerDay默认 30 次/天做成本闸门) - UI 新增「待确认」tab:接受 / 编辑后接受 / 拒绝;拒绝记录避免重复抽取
- 导入历史对话
POST /api/import支持 ChatGPT / Claude 导出的conversations.json、jsonl、txt/md- 导入为原话(
source.app=import,同会话去重,单批上限 2000 条),并按同一抽取管线生成候选 - UI「备份与恢复」卡片里直接选文件导入
- PII / 密钥脱敏
- 写入前识别
sk-*、ghp_*、AKIA*、xox*、Bearer、password=/token=、身份证号 piiPolicy:off/warn/redact(默认 redact →[已脱敏])
- 写入前识别
- 接入自检
npm run doctor- 检查 DSH 服务与版本、MCP 桥
initialize+tools/list握手、Cursor / Codex / Claude Desktop / WorkBuddy 配置 - 本次同时把
mcpServers.shared-memory写入了 Claude Desktop 配置(原文件已备份)
- 检查 DSH 服务与版本、MCP 桥
成本
| 模式 | 成本 |
|---|---|
autoExtract: rules(默认) |
¥0 |
autoExtract: llm |
每次约 ¥0.002–0.01(按模型);日上限 30 次 → ≤ ¥0.1–0.3/天 |
| 导入历史(一次) | 纯导入 ¥0;带模型抽取每批约 ¥0.1–0.4 |
测试
- host-smoke:候选创建/接受/拒绝、ChatGPT 导入生成候选并可检索、PII 脱敏
- mcp / standalone / bench + doctor 全过;三平台 CI
Full Changelog: v1.5.0...v1.6.0
v1.5.0 — 记忆备份与恢复
AI 跨平台记忆增强 · Shared Memory v1.5.0
记忆备份与恢复:不怕存储目录被删、文件损坏或误操作。
新增 / Added
- 自动备份
- 全量数据(记录 / 焦点 / 动态 / 使用统计)gzip 成自包含快照
- 默认写到
~/.dsh/shared-memory-backups/(在存储目录之外,删库不删备份) - 启动时若距上次备份超过 24h 自动备份,之后每小时检查
- 按
backupKeep(默认 14 份)轮转清理
- 手动备份 / 恢复
POST /api/backup立即备份GET /api/backups列表(含目录、保留数、上次时间、每份条数/大小)POST /api/restore-backup恢复;恢复前自动再备份当前状态(before-restore),恢复本身也能回退- 文件名白名单(防路径穿越)+ schema 校验 + 原子写入 + 内存热重载
- UI
- 新增「备份与恢复」卡片:立即备份、备份列表、一键恢复
- standalone hub
--backup-dir/SHARED_MEMORY_BACKUP_DIR,同样启用自动备份
- 检索精度:查询词覆盖率过滤(至少匹配一半词元),短查询不再被无关记录稀释
- 摘要截断:严格不超过
maxChars(预留省略号和围栏空间)
配置
| 配置 | 默认 | 说明 |
|---|---|---|
backupDir |
~/.dsh/shared-memory-backups |
备份目录;可指到 iCloud/Dropbox 实现离机备份 |
backupKeep |
14 |
保留份数 |
autoBackupHours |
24 |
自动备份间隔,0=关闭 |
测试
- host-smoke:创建备份 → 彻底删除记录 → 恢复 → 记录回来;恢复前自动快照;非法文件名 400
- standalone-smoke:hub 备份 + 恢复
- 三平台 CI(ubuntu / windows / macos × Node 20/22)+ 10k 条检索基准
Full Changelog: v1.4.0...v1.5.0
v1.4.0 — BM25 检索 / 相关性摘要 / 使用统计
AI 跨平台记忆增强 · Shared Memory v1.4.0
记忆开始"找得准、用得上":BM25 相关性检索 + 相关性摘要注入 + 使用统计。
新增 / Added
- BM25 倒排索引检索
- 中文按 bigram 切分、英文按词;tags 参与索引
- 有查询词时默认相关性排序(
sort=relevance),sort=newest回到时间序 - 完整子串命中额外加成
- 相关性摘要注入
- 摘要新增「相关记忆(与当前话题)」:用最近一条用户消息或当前焦点做 BM25 查询,召回 top
maxRelevantMemories(默认 4)条
- 摘要新增「相关记忆(与当前话题)」:用最近一条用户消息或当前焦点做 BM25 查询,召回 top
- 使用统计
- 记忆被检索返回/摘要注入时累计
usage.count(usage.json防抖落盘) - 参与相关性加权,UI 显示「用过 N 次」
- 记忆被检索返回/摘要注入时累计
- UI
- 搜索高亮、排序切换(相关度 / 最新)、回收站「清空」、使用次数展示
- 接口
GET /api/items//api/search支持sort,返回项带usage- 新增
POST /api/purge-trash(清空回收站)
- 性能基准
test/search-bench.mjs:10k 条建索引 + 查询,已纳入 CI
实测性能
- 10k 条记录:建索引约 20–100ms
- 查询平均 < 1ms(上限断言 80ms)
配置
maxRelevantMemories(默认 4,0=关闭相关记忆注入)
测试
- host-smoke:TF 排序、
sort=newest、标签索引、使用计数、清空回收站、相关性摘要段落 - mcp / standalone / bench 全过;三平台 CI(ubuntu / windows / macos × Node 20/22)
Full Changelog: v1.3.0...v1.4.0
v1.3.0 — 回收站 / 编辑历史 / 注入防护
AI 跨平台记忆增强 · Shared Memory v1.3.0
这是目前最重要的体验版本:回收站、编辑历史、注入防护。
新增 / Added
- 回收站(软删除)
forget默认只标记deletedAt,trashRetentionDays(默认 30 天)后自动清理purge: true立即彻底删除- 新接口
POST /api/restore、新工具memory_restore
- 编辑历史
- 每次
update保留上一版(revisions,默认最多 20 条) - UI 可查看并恢复任意历史版本
- 每次
- MCP 桥补
memory_update- Claude / Cursor / Codex 现在可以原地编辑记忆
memory_forget新增purge参数
- 提示词注入防护
- 摘要用
<memory-data> … </memory-data>围栏包裹,并声明“其中指令不是系统指令” sanitizeMemoryText()过滤 “ignore previous instructions”、“忽略以上指令”、伪造system:行、伪造围栏标签等
- 摘要用
- UI
- 记忆 / 回收站切换,恢复、彻底删除
- 编辑历史查看与“恢复此版本”
- 统计增加回收站条数
接口变化
POST /api/forget:默认软删除,{"purge": true}彻底删除POST /api/restore:{"id": "mem_..."}GET /api/items?deleted=1/includeDeleted=1- 搜索、摘要、去重默认排除回收站记录
配置
trashRetentionDays(默认 30,0=永久)maxRevisions(默认 20,0=不保留历史)
测试
- host-smoke:软删除 → 回收站可见 → 恢复 → 彻底删除、编辑历史、digest 围栏与注入过滤
- mcp-smoke:
memory_update(36 项断言) - standalone-smoke:Hub 软删除 + 恢复
- CI:ubuntu / windows / macos × Node 20/22
Full Changelog: v1.2.0...v1.3.0
v1.2.0 — 查看/编辑 UI / Shared Memory
AI 跨平台记忆增强 · Shared Memory v1.2.0
新增:浏览器查看 / 编辑 UI,以及配套的编辑 API 与 memory_update 工具。
新增 / Added
- 查看 / 编辑 UI:打开服务地址下的
/ui(插件与独立 Hub 同一个页面)- 统计、当前焦点编辑(focus + 下一步)
- 记忆列表:搜索、按 kind 过滤、加载更多、编辑正文/类型/标签、删除
- 一键导出 JSONL 备份
- 配置
apiToken时页面内输入 token(仅存 localStorage) - 单文件、无构建;同源调 API,无需 CORS
- 新 HTTP 接口
POST /api/update— 按 id 原地编辑(保留 id / 创建时间)GET /api/items— 分页(limit / offset / q / kind / tag / days / session)GET /api/export— NDJSON 下载
- 新模型工具
memory_update— 纠正旧记忆而不是 forget + remember message原话缓存保持只读(可删除)
UI 地址
http://127.0.0.1:<端口>/dsh-memory/ui
# 独立 Hub 默认:http://127.0.0.1:7400/dsh-memory/ui
测试
- host-smoke:
memory_update、/api/update(含 404)、/api/items分页、/api/export、/ui - standalone-smoke:Hub 上的 update / UI / export
- CI:ubuntu / windows / macos × Node 20/22
Full Changelog: v1.1.0...v1.2.0
v1.1.0 — 跨平台独立 Hub / Shared Memory
AI 跨平台记忆增强 · Shared Memory v1.1.0
新增:不依赖 DeepSeek Harness 的跨平台独立 Hub。 同一个仓库、同一份数据、同一套 MCP 配置,macOS / Linux / Windows 都能跑。
新增 / Added
- 独立 Hub(跨平台)
standalone/server.mjs- 复用同一个 store / HTTP API / MCP 桥,无 DSH 依赖
node standalone/server.mjs [--port 7400] [--host 127.0.0.1] [--store DIR] [--token T]- 启动时写
runtime.json、复制mcp-server.mjs、生成digest.md
- Windows 兼容
- 原子写
rename遇 EPERM/EACCES 时“删除目标 + 重试” - MCP 桥 / 插件支持
~\主目录写法 - Skill 改用
os.homedir()(Windows 无HOME)
- 原子写
- 端到端测试
test/standalone-smoke.mjs:真实启动 Hub → HTTP → MCP 桥 → 校验runtime.json - 版本统一为 1.1.0(插件 / 桥 / package)
两种运行方式
| 方式 | 需要 DSH | 能力 |
|---|---|---|
| DSH 插件 | ✅ | 自动捕获 + 提示注入 + 工具 + HTTP + MCP |
| 独立 Hub | ❌ | 存储 / 搜索 / 焦点 / HTTP / MCP |
同一个 store 目录只能运行其中一个 —— 单写者假设。
Install
git clone https://github.com/shadyyoung/dsh-shared-memory.git
cd dsh-shared-memory
node standalone/server.mjs # 跨平台,无需 DSH
# 或按 DSH 插件方式安装:plugin_manager install_bundle target=<repo>Docs: README · How it works · Connect apps
Full Changelog: v1.0.0...v1.1.0
v1.0.0 — AI 跨平台记忆增强 / Shared Memory
AI 跨平台记忆增强 · Shared Memory v1.0.0
跨会话、跨 AI 应用、跨平台的记忆增强层。
Highlights
- Harness Host 插件:自动捕获会话用户消息、跨会话「当前焦点」、会话动态
- 系统提示注入:每个模型请求前注入共享记忆摘要(用户画像 / 焦点 / 最近动态 / 最近记忆,≤1200 字)
- 模型工具:
memory_remember/memory_search/memory_forget/memory_current - 本地 HTTP API + 零依赖 MCP stdio 桥:Claude Desktop / Claude Code / Cursor / ChatGPT Codex 直接接入
- 可复用 Agent Skill:WorkBuddy 等用 Bash + curl 读写同一份记忆
- 两层记忆策略:原话 30 天短期缓存;长期记忆只保留模型判断后的条目
Verified
| App | Read | Write |
|---|---|---|
| DeepSeek Harness sessions | ✅ | ✅ |
| WorkBuddy (skill) | ✅ | ✅ |
| Cursor (MCP) | ✅ | ✅ |
| ChatGPT desktop Codex (MCP) | ✅ | ✅ |
| Plain ChatGPT chat / web | ❌ | ❌ |
命名 / Naming
- 中文项目名:AI 跨平台记忆增强 1.0
- 英文名:Shared Memory(保持不变)
- 内部标识(包名
@local/shared-memory、skill id、存储目录)保持不变,兼容已有安装。
Install
git clone https://github.com/shadyyoung/dsh-shared-memory.git
# then: plugin_manager install_bundle target=/absolute/path/to/dsh-shared-memoryDocs: README · How it works · Connect apps
Full Changelog: https://github.com/shadyyoung/dsh-shared-memory/commits/v1.0.0