Obsidian 知识库同步 Dingpenghui-good/dsh-obsidian-sync
DeepSeek Harnessv3.4.7按需检索笔记并幂等归档会话到 Obsidian
30.3/100
综合分
1
GitHub 星标
352
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @dingpenghui/dsh-obsidian-syncnpm 源 · @dingpenghui/dsh-obsidian-sync 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 51 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@dingpenghui/dsh-obsidian-sync @ 3.4.7
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 06:02:10
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-fs@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-tools@deepseek-ai/schemastery@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 按需检索笔记
- 幂等归档会话
最近更新
在 GitHub 查看全部 →v3.4.72026-10-03
· 发布说明 v3.4.7
日期: 2026-10-03
· 修复 / Fixes
· 依赖模型重构:@deepseek-ai/schemastery 和 react 从运行时 dependencies 移到 peerDependencies(标 optional: true),仅保留已有宿主模块 peer 不变。
- 根因:本插件是 DSH 宿主扩展,运行时在宿主进程内执行。宿主已经把 schemastery 加载进同一进程作为宿主模块。本插件若再以 dependencies 携带同版本包,pnpm 会在插件树里再实例化一份,与宿主单实例不一致。
- 影响:插件自身代码行为不变,只改变了"谁提供这些包"——现在统一由 DSH 宿主提供,单实例。
· 不变 / Unchanged
· dsh-tools / dsh-fs / dsh-sandbox / dsh-util-values 等宿主模块 peer 全部保持不变(>=0.2.0-rc.1,optional)。
· Obsidian 知识库搜索、会话归档、PARA 规则匹配等核心功能全部不变。
· smoke-test 不变。
· 升级指引 / Upgrade
· 从 3.4.6 升到 3.4.7 无 breaking change,直接 pnpm update @dingpenghui/dsh-obsidian-sync 即可。
· 插件安装后宿主行为不变,但不再在插件树里携带 schemastery 副本。
v3.4.62026-10-02
· @dingpenghui/dsh-obsidian-sync v3.4.6
修复 obsidian_sync_session 的会话 ID 归一化:带 session- 前缀的完整 ID 不再把前缀字样计入短 ID。
· 修复
· session- 被误归一化为 sessionX,产生重复归档
· 现象:调用 obsidian_sync_session 并传 session_id: "session-9f10d319-…"(完整会话 ID,带 session- 前缀)时,生成的文件名短 ID 段是 session9,而非预期的 9f10d319。若同一会话此前已按裸 uuid 归档过,就会多出一份 session9 命名的重复笔记。
· 根因:normalizeShortId 直接 replace(/[^A-Za-z0-9]/g, '') 取前 8 位。"session-9f10d319-…" 去非字母数字后是 "session9f10d319…",前 8 位恰好是 session9 —— 前缀的 7 个字母把真正的 uuid 前 8 位挤掉了。
· 修复:归一化前先剥离约定的 session- 前缀(/^session-/i),再取 uuid 前 8 位。
- session-9f10d319-… → 9f10d319
- 9f10d319-…(裸 uuid)→ 9f10d319(不变,向后兼容)
- 带前缀与裸 uuid 现在落到同一幂等键(date + shortId),不再产生重复。
· 短 ID 补位 hash 也改用剥离前缀后的字符串,保证确定性不变。
· 测试
· scripts/test-idempotent.mjs 同步新逻辑,新增断言:session-9f10d319-… → 9f10d319、session-905ba53a-… → 905ba53a、带前缀与裸 uuid 幂等键一致。
· scripts/test-sync-session-date-idempotent.mjs 新增第 9 组:端到端验证 session- 与 落到同一归档文件。
· pnpm build、pnpm typecheck、smoke-test、client-smoke-test、contract-test(ALL PASS)、test-tokenize、test-idempotent、test-index-boundary、test-sync-session-date-idempotent 全部通过。
· 升级
dsh plugin --profile web add @dingpenghui/dsh-obsidian-sync@3.4.6
v3.4.52026-10-01
· @dingpenghui/dsh-obsidian-sync v3.4.5
新增归档日期回填能力,并修复「摘要未变则跳过」长期失效的缺陷。
· 新增
· obsidian_sync_session 支持可选参数 date
· 传 date: "YYYY-MM-DD" 时,该日期同时决定四件事:文件名前缀、frontmatter date、正文「基本信息」表格日期、归档索引挂载的日期段。
· 省略该参数,或值不符合 YYYY-MM-DD 格式时,回退为运行当天(UTC),行为与旧版本完全一致。
· 典型用途:回填历史会话。此前插件只能把历史会话归档到「同步执行日」,导致索引日期与实际发生日不符。
{
"session_id": "0c0c4b4e-361d-440b-ab58-948a2ee43a26",
"title": "Proton VPN 单机逐步诊断",
"summary": "…",
"date": "2026-09-12"
}
· 修复
· 「摘要未变则跳过」实际从未生效
· 现象:同一会话重复同步时,每次都返回 skipped: false 并重写笔记、追加一次 git 提交,幂等只在文件名层面成立。
· 根因:判断逻辑把 ## 摘要 之后的全部剩余内容与本次摘要比较,而这段内容还包含 ## 关联 区块与 > 📎 原始日志 落款,因此永不相等。
· 修复:比较范围截取到摘要区块末尾 —— 取「下一个 ## 标题」「\n---\n 分隔线」「空行起的 > 落款行」三者中最早出现的位置;三者都不存在时截到文末。
· 边界细节:只判断前两种边界是不够的 —— 未传 related 时摘要后直接跟落款,仍会带上落款,故补入第三种边界。
· 测试
· 新增回归脚本 scripts/test-sync-session-date-idempotent.mjs(8 组断言):显式 date 的四处落点、同摘要跳过、摘要变化重写、5 种非法 date 回退且仍幂等、不传 date 保持旧行为、含 ## 关联 / 含落款 / 噪声过滤三种场景。
· pnpm typecheck、pnpm build、node smoke-test.mjs、node client-smoke-test.mjs、node contract-test.mjs(ALL PASS)、scripts/test-tokenize.mjs、scripts/test-idempotent.mjs、scripts/test-index-boundary.mjs 全部通过。
· 升级
dsh plugin --profile web add @dingpenghui/dsh-obsidian-sync@3.4.5
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成DSH Obsidian Sync
DSH Cordis 插件:按需搜索 Obsidian 知识库 + 幂等归档 DSH 会话(零 token 注入)
设计理念
纯模型 Tool 按需调用,不注入系统提示词。默认 token 成本 ≈ 两个 Tool 的 schema。
- 进程内 fs 服务(resolve/stat/listDir/readText/writeText),不起子进程
- 倒排索引 + 60s 增量重建(dirty 标记,跳过 .obsidian/.git)
- CJK bigram 分词 + 全文索引 + IDF 加权排序
- 按 date + shortId 幂等 upsert(标题变更不影响去重)
- 笔记写入 vault/04-Archive/,YAML frontmatter + Obsidian 原生标签
- 自动挂 DSH-会话归档-索引.md 的按日期段(双井号边界 + 同 shortId 去重)
提供的 Tool
obsidian.search
在 Obsidian 知识库中按关键词搜索相关笔记(中英文均可,自动 CJK bigram 分词)。
展开完整文档(README 剩余 1 节)
DSH Obsidian Sync
DSH Cordis 插件:按需搜索 Obsidian 知识库 + 幂等归档 DSH 会话(零 token 注入)
设计理念
纯模型 Tool 按需调用,不注入系统提示词。默认 token 成本 ≈ 两个 Tool 的 schema。
- 进程内 fs 服务(resolve/stat/listDir/readText/writeText),不起子进程
- 倒排索引 + 60s 增量重建(dirty 标记,跳过 .obsidian/.git)
- CJK bigram 分词 + 全文索引 + IDF 加权排序
- 按 date + shortId 幂等 upsert(标题变更不影响去重)
- 笔记写入 vault/04-Archive/,YAML frontmatter + Obsidian 原生标签
- 自动挂 DSH-会话归档-索引.md 的按日期段(双井号边界 + 同 shortId 去重)
提供的 Tool
obsidian.search
在 Obsidian 知识库中按关键词搜索相关笔记(中英文均可,自动 CJK bigram 分词)。
// 输入 { "topic": "npm 发布 2FA", "limit": 5 }
// 输出 { "ok": true,
"matches": [
{
"file": "04-Archive/2026-09-12-3073121a-…", "score": 3.72, "snippet": "npm 2FA 查证:TOTP 已废弃…", "size": 4200, "matchReason": "npm pub lis 2fa" } ], "count": 5, "vaultPath": "E:/dsh-workspace/obsidian-vault" }
obsidian.sync_session
把当前 DSH 会话幂等归档到 Obsidian vault。摘要未变则跳过写盘。
// 输入 { "session_id": "session-76bb60db-bdde-…", "title": "dsh-obsidian-sync 优化与发布", "summary": "用户需求:… 过程要点:… 交付物:…",
"tags": ["dsh", "obsidian", "cordis"],
"related": ["2026-09-11-a9095879-dsh-tool-agnes工具升级与发布.md"],
"raw_log": "C:\\Users\\dph\\.dsh\\sessions\\--E-dsh-workspace--\\session-76bb60db\\session.v3.jsonl.zstd"
}
// 输出(首次写入) { "ok": true, "skipped": false, "file": "04-Archive/2026-09-13-76bb60db-…", "index": "updated" }
// 输出(摘要未变) { "ok": true, "skipped": true, "file": "…", "reason": "summary unchanged", "index": "unchanged" }
// 输出(失败) { "ok": false, "error": "writeText failed: …", "code": "WRITE_FAILED" }
安装
方式一:从 npm 安装(推荐)
dsh plugin --profile web add dsh-obsidian-sync
方式二:从本地路径安装
cd dsh-obsidian-sync
pnpm install
pnpm build
dsh plugin --profile web add .
配置
在 ~/.dsh/settings.yaml 中添加:
obsidian-sync:
vaultPath: "E:/dsh-workspace/obsidian-vault"
searchEnabled: true
indexRefreshMs: 60000
所有字段均有默认值,可不配置直接挂载。
开发
pnpm install
pnpm build # tsdown 构建 → lib/
pnpm typecheck # tsc 类型检查
测试
node scripts/test-tokenize.mjs # CJK bigram 分词
node scripts/test-idempotent.mjs # 幂等 upsert
node scripts/test-index-boundary.mjs # 索引边界插入
发布
pnpm version patch
git push origin main --tags
npm publish
.npmrc 不入版本库(含 npm access token),发布前需本地配置。
许可证
MIT
作者: Dingpenghui-good 仓库: https://github.com/Dingpenghui-good/dsh-obsidian-sync预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Dingpenghui-good/dsh-obsidian-sync
按需检索笔记并幂等归档会话到 Obsidian
相关插件 · 对话 / 记忆
上下文中枢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
这是你的仓库?认领条目