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

Obsidian 知识库同步 Dingpenghui-good/dsh-obsidian-sync

DeepSeek Harnessv3.4.7
Dingpenghui-good51 天前有提交已提供中文文档扫描:未发现敏感能力

按需检索笔记并幂等归档会话到 Obsidian

30.3/100
综合分
1
GitHub 星标
352
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @dingpenghui/dsh-obsidian-sync
npm 源 · @dingpenghui/dsh-obsidian-sync 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功(非静态推断);本次验证针对插件 v4.0.0,当前版本为 v3.4.7
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 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
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 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
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按需检索笔记
  • 幂等归档会话
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
预览分享卡片长什么样 ↓Dingpenghui-good/dsh-obsidian-sync
分享 · DeepSeek Harness Hub
Dingpenghui-good/dsh-obsidian-sync

按需检索笔记并幂等归档会话到 Obsidian

这是你的仓库?认领条目

回到顶部