Skip to content

dsh-mneme v0.3.7 — 启动竞态修复

Latest

Choose a tag to compare

@Anans-Ivresse Anans-Ivresse released this 16 Aug 11:52
· 8 commits to main since this release

🩹 v0.3.7 — 启动竞态修复(issue #6 跟进)

heptaspirit 验证发现的启动竞态 bug:人工编辑 md 镜像 → 重启 → 向量重建失败(embeddedCount 减 1)。

根因

mergeHumanEdits 回灌在插件 apply 同步段执行,而 embedder.init() 是异步的(模型加载 0.3-0.9s)——回灌触发 embedSingle 时 extractor 未就绪,抛错被吞,向量重建静默失败。

修复(三层)

  1. index.js:回灌移入 embedder.init().then() 内执行,extractor 就绪后再重建向量;init 失败走 keyword 降级
  2. service.jsscheduleEmbed 加就绪门——embedder 带 ready 标志时,未就绪的写进入 pending 队列,init 完成后 flush(上限 100,~3s 轮询封顶,fail-safe)——顺带覆盖运行中热写入的同类竞态
  3. local-embedder.jsinit 幂等保护(已初始化直接返回)+ ready 标志

测试

  • 443 / 443 全绿