Repository navigation
0.1.4
亮点
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