Old-Friends-Gathering/sedimem

dsh-sedimem

sedimem 记忆中心:把本地跨客户端记忆层 sedimem 的只读观察台装进 DSH——侧边栏一行进入中列整页(今日变化 / 可手转 3D 记忆图谱 / 卫生趋势三页,可切分库)。宿主优先复用已在运行的观察台(observerUrl 指向即纯代理、零新进程),探测不到才 spawn 内嵌副本兜底,数据始终是同一份 ~/.memo;只读、仅回环,路由再叠一层防跨站栅栏。记忆写入链路(MCP memory_* 工具)与 DSH/Codex/Claude Code 三端共用配置不受影响。零依赖。

记忆ai-memoryclaude-codecodex-cli

dsh-sedimem · 记忆中心(DSH 插件)

把 sedimem 的只读观察台(今日变化 / 记忆图谱 / 卫生洞察)装进 DeepSeek Harness 的侧边栏:一行「记忆中心」,点击进入中列整页。

DSH 侧边栏
└── 记忆中心 ──→ 中列 iframe(同源代理)
                 └── sedimem 观察台(今日 / 图谱 / 卫生,只读)

它不替换任何东西

  • MCP 记忆工具(memory_*)与本插件无关:工具仍由 dsh-mcp-client + sedimem MCP server 那行 cordis 配置提供,三端(DSH / Codex / Claude Code)共用 ~/.memo 的既有链路原样保留。
  • 插件优先复用已经在跑的观察台(配了 observerUrl 且活着就直接代理);探测不到才启动内嵌副本兜底——所以本机 launchd 常驻的那份永远是唯一事实源,不会出现第二套会漂移的代码。

安装

方式一:本仓库内插件目录(开发/自用)

cd ~/.dsh/profiles/desktop
<runtime-node> <pnpm.mjs> add file:/path/to/sedimem/plugin/dsh-sedimem
# 再把 cordis.patch.yml 的 insert 行合入 profile 的 cordis.patch.yml(见下)

然后完全退出并重启 DSH。

方式二:从 GitHub(dshmarket 的发现源就是 GitHub 仓库)

dshmarket 会扫描 GitHub 上带 dsh 元数据的包;本插件位于 Old-Friends-Gathering/sedimem 仓库的 plugin/dsh-sedimem 子路径,market 里按仓库地址即可安装。

cordis 行(手动安装时合入 profile 的 cordis.patch.yml)

- insert:
    - id: dsh-sedimem
      name: dsh-sedimem
      config:
        observerUrl: http://127.0.0.1:7788   # 可选:复用已常驻的观察台(强烈建议)
        # memoHome: /your/.memo               # 可选,默认 ~/.memo
        # scope: repo:your-project            # 可选,默认取 items/ 里 mtime 最新的分库

配置项

键默认说明
observerUrl无已常驻观察台地址(必须回环)。活着→纯代理壳;不可达→内嵌兜底
memoHome~/.memo内嵌兜底副本的数据目录(与 MCP/CLI 同一份)
scopeitems 里最新分库内嵌兜底副本的默认分库;页面里仍可随时切
port随机空闲内嵌兜底副本端口
nodePathprocess.execPath兜底副本的 node
enabledtruefalse 时不注册任何路由

安全

  • 观察台本身只读、只绑 127.0.0.1;插件代理路由再叠一层栅栏(回环 socket + 回环 Host + 无转发头 + 非跨站标记),与 skill-explorer 同款。
  • observerUrl 只接受回环目标——不会被配置成把请求代理到局域网。
  • iframe 同源(经 DSH 自己的 webServer),无跨源 cookie / X-Frame-Options 问题。

内嵌副本的同步纪律

lib/{src,ui,config} 是 versions/v0.3 的逐字节拷贝(插件必须自包含才能 npm/GitHub 分发)。改了核心代码后跑:

bash scripts/sync-from-v03.sh

test/host.test.js 有哈希一致性断言,忘了同步会红。

测试

node --test --test-force-exit test/host.test.js

覆盖:路由元数据 / 内嵌副本防漂移 / 外部模式纯代理 / 内嵌模式兜底 / 非回环 Host 与非回环 observerUrl 双拒。