Skip to content

0.1.4

Choose a tag to compare

@Moowningstar Moowningstar released this 20 Oct 08:37
· 6 commits to main since this release

亮点

0.1.4 回答三个问题:要不要刷新、索引里有什么、最近改了什么。

新增

  • 刷新门禁(Tier 0 差量):新增 GET /api/gitnexus/delta。只对 git diff <索引提交> 的候选文件算 sha256,与 manifest 的 fileHashes 比对;工作区干净时直接给出「无需刷新」,并保留「仍然刷新」作为逃生舱。结论带 certain 字段——索引没有提交基线时如实显示「无法确认」,不再冒充「已是最新」。
  • 图视图:社区总览与下钻两个视图,服务端有界投影(默认 220 节点 / 800 边,超出明确标注);客户端零依赖 canvas 渲染,支持滚轮缩放、拖动平移、悬停标签、点社区下钻、点符号在文件查看器中定位。
  • 文件时间线 + 提交改动:活动卡片里点文件,时间线在该行下方就地展开;再点任一提交,展开该次提交对这个文件的 patch(+/- 行级着色 + 语法高亮)。
  • FTS 修复入口:索引报告 FTS 不可用时,维护区提供 analyze --repair-fts(只修搜索索引,不重跑分析),并在按钮旁写明前置条件(Windows 需 VC++ 2015-2022 x64 与 OpenSSL 3)。

面板体验

  • 卡片改为平台主题 token(--dsw-alias-*)、13px 正文、响应式网格:宽面板两列、窄侧栏单列;
  • 长列表改为卡内滚动,不再把整页越拉越长;
  • 索引概览重排:环形覆盖与扫描摘要同行,文件/图谱/查询能力进网格,各指标带色点;
  • Git 活动:范围选择器移到卡片头,提交时间线默认折叠但保留计数;
  • 失败的原始堆栈默认收进「查看原始输出」,首屏只留结论。

性能

  • coverage 结果缓存 15s,并加上限(8 个仓库),不再按访问过的仓库无限累积;
  • 搜索:60s 结果缓存(键含索引 mtime)+ 并发合并——同一查询的第二次提交复用第一次的进程,不再冷启动;
  • 图投影缓存(键含索引 mtime,刷新即失效);
  • GitNexus 根解析记忆化;PATH 中带 shim 的安装优先(避免新旧版本混用);
  • Git 活动 7 次串行 git 改为两轮并行;Diff 分词按 (路径, patch) 缓存;运行计时移入卡片,不再每秒重渲染整份报告。

修复

  • 面板刷新失败(EPERM)的真正根因:无 session 的路由拿到的工作区根是 DSH 应用目录,沙箱按该路径派生写权限 SID,仓库的授权对它无效。现在宿主把部署解析出的策略原样传递,只替换 workspaceRoot;模式从不由插件改写。
  • EPERM 三类区分:解析缓存目录删除、lbug.init.lock 瞬时占用、worker 建目录被拒——分别给出重试 / 清理后重试 / 直接说明并指向终端。
  • Windows 上 PATH 的 Path 拼写,以及多安装时的 shim 优先(修复 Database file version: 42 vs 41)。
  • 缺图/差量路由时明确提示「重启 DSH」,不再表现为一直「读取中」或静默无门禁。

已知限制

  • 全文检索(FTS)依赖系统原生运行时;缺失时搜索按名称/路径匹配并明示。
  • 受限沙箱内分析器起不了 git,刷新成功但 manifest 无 lastCommit,门禁只能给「无法确认」;在普通终端跑一次即可补上。
  • 图是社区级投影,不是全图;单社区超过节点预算会截断并标注。

升级

npm i -g dsh-gitnexus-plus@0.1.4