Skip to content

Releases: AAAlenwow/dsh-weknora-archive

v0.4.0 · 真实入库闭环 + 本地 three.js 入库星图

Choose a tag to compare

@AAAlenwow AAAlenwow released this 30 Oct 02:38

v0.4.0 · 真实入库闭环 + 本地 three.js 入库星图

Highlights

上传成功 ≠ 入库成功。 v0.4.0 把这句话变成了可验证的机制:

  • 每篇文档上传后按真实文档 id 轮询 WeKnora 解析状态(默认观察窗 60s),以 completed / parsing / failed 落入归档清单——窗口内没完成的记 parsing,绝不高报。
  • 每次归档原子写入 archive-manifest.json(仅元数据:标题/状态/项目/KB id;无会话正文、无 API 地址、无密钥,文件权限 0600)。
  • 新工具 weknora_archive_visualize:把清单渲染成自包含的本地 three.js「知识入库星图」HTML——内嵌 three.js(无 CDN、无网络请求),file:// 直接打开;粒子按状态着色汇聚成知识核心,失败项落入独立区域。
  • 降级路径完整:无 WebGL / 系统减少动态 / WEKNORA_ARCHIVE_MOTION=false → 静态星图;报告生成失败只告警,绝不影响归档结果。整体关闭:WEKNORA_ARCHIVE_VISUALIZATION=false。

New tools

  • weknora_archive_visualize — 只读渲染归档清单为入库星图(含真实解析状态)。

New config

Field Env Default
reportDir WEKNORA_ARCHIVE_REPORT_DIR ~/.dsh/plugin-data/dsh-weknora-archive/reports
visualization WEKNORA_ARCHIVE_VISUALIZATION true
motion WEKNORA_ARCHIVE_MOTION true
parseObservationMs WEKNORA_ARCHIVE_PARSE_OBSERVATION_MS 60000
parsePollMs WEKNORA_ARCHIVE_PARSE_POLL_MS 1000

Also

  • LICENSE(MIT)正式入库,GitHub 可识别;visualizer/vendor/THREE-LICENSE 随附 three.js MIT 声明。
  • 会话仓库与 v0.3.0-work-profile 的无共同历史已通过 --allow-unrelated-histories 显式合并归档(保留双方历史,passive work-profile 实验线仍在原分支)。
  • 测试 22 → 34 项,覆盖清单计数、解析对账(completed/failed/超时/未知 id)、总览文档入账、报告自包含性(无外部 script src)、配置解析。
  • 独立审查(全新 clone 只读复核)通过:归档不高报、可视化失败不影响归档、报告注入转义、blob 内嵌方案与 CSP 自洽、幂等不破坏、宿主 engines.dsh 兼容。审查建议(总览纳入轮询/转义/死代码/临时文件名/warn 兜底)已在本版全部修复。

Full Changelog: v0.3.0...v0.4.0

v0.2.0 — 支持 dsh 0.2.x 会话格式

Choose a tag to compare

@AAAlenwow AAAlenwow released this 19 Oct 06:26

本版本的全部核心修复来自 @sadkga 的 #1 —— 感谢你高质量的开源贡献!🎉

修复内容(PR #1)

  • 适配 dsh 0.2.x:会话文件探测 session.v4.jsonl.zstd(保留 v3 回退),0.2.x 会话不再被漏掉
  • 修复多帧 zstd 读取:旧版 zstdDecompressSync 只解第一帧(只剩 header、静默丢失全部对话内容),现按 zstd 魔数逐帧扫描解压
  • 修复 session-<uuid> 目录前缀:旧的 slice(0, 8) 会把所有会话标题切成同一段前缀,标题与去重全部错乱
  • 上传路由修正:POST /knowledge-bases/{id}/knowledge/file(与 WeKnora 官方 web 前端一致),替换 404 的旧扁平路由
  • 归档幂等性:409 duplicate_file 视为跳过而非中断整轮;兼容 WeKnora「以文件名为文档标题」导致的两种拼写去重
  • 摘要质量:提取主题前剥离 harness 注入块(system-reminder / runtime context / available_skills / 插件安装模板),主题与决策不再是脚手架文本

Full Changelog: v0.1.0...v0.2.0