Skip to content

v1.3.11 — infinity ready 探针 + 单例池 lock 释放

Choose a tag to compare

@SliverSucks SliverSucks released this 25 Jun 02:02

bug 修复

bug A — infinity warmup 期间用户点重建被阻断

装机后 infinity 子进程 warmup 需要 30-60 秒才 LISTEN,期间用户立刻点托盘"重建向量索引",会因 strict 模式第一条 chunk embedding connection refused 而立即终止,旧索引备份同时被抹掉。

修复:

  • rebuild_runner.start 前置 embedding 就绪探针(默认 HTTP /health 2s 超时)
  • 探针失败抛 EmbeddingNotReady,runner 不进 RUNNING / 不备份 / 不置 maintenance
  • 接口 catch 转 503 + Retry-After: 5,菜单栏 App case 503 弹「请等 banner ready」明确提示

bug B — PUT /v1/system/config 后旧 VectorIndex 不释放 qdrant 锁

mode / model 切换触发 _invalidate_repo_singletons 后,旧 VectorIndex 仍持有 qdrant_local 的 portalocker 文件锁,新 VectorIndex 在同进程内 QdrantClient(path=...) 拿锁失败 → 静默 enabled=False 退化为关键词检索,用户感知不到向量索引已坏。

修复:

  • repo 单例池从 lru_cache 改成 dict + Lock,invalidate 时遍历旧实例 vector_index.pause() 释放锁
  • _repo_singleton_*.cache_clear 保留作为指向 invalidate 的 shim,既有测试无需改

测试覆盖

  • 新增单测 8 个(rebuild_runner probe + 单例池 invalidate),全过
  • 全套测试 412/413(唯一 fail 是与本次无关的预存 skill_sync drift)
  • 装机端到端验证:1.3.11 dmg 装机后立刻点重建 → 503 友好提示;等 ready 再点 → 408 chunk rebuild 完成 + 完成通知;问答 query 真走 infinity /embeddings 200

下载

  • macOS: KnowledgeBase-mac-direct-1.3.11.dmg(53MB,Apple Silicon / Intel 通用)