中文EN

dsh-gitnexus-plus

git已测通过npmMIT

在 DSH 侧栏读取 GitNexus 索引,报告被跳过的文件、索引新鲜度与语言覆盖,支持符号搜索和最近的 Git 活动审查。

下载量 / Downloads
2,369
依赖体积 / node_modules
1.92 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-gitnexus-plus

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-gitnexus-plus

![Listed on dsh-plugin.org](https://dsh-plugin.org/plugins/moowningstar/gitnexus-plus) ![dsh.so install · dsh 0.2.1-rc.2](https://www.dsh.so/artifact/gitnexus-plus/) ![Listed on DSH Get](https://dshget.com/plugins/Moowningstar/gitnexus-plus)

English · [简体中文](README-CN.md)

Current release: 0.1.12 ·

npm ·

Issues

[What it does](#what-it-does) · [Install](#install) · [Troubleshooting](#troubleshooting) ·

[Upstream GitNexus docs](#upstream-gitnexus-documentation)

A DeepSeek Harness plugin: see what a GitNexus index covers and what it leaves out,

decide whether a refresh is worth running, browse the graph, read the repository's own

commit graph — each commit's files and patches included — open GitNexus's own 3D view for

the full picture, refresh the index from the sidebar, and search its symbols — and the

source text the index recorded — by keyword.

It does not fork GitNexus, rewrite its parser, or bundle/redistribute it. gitnexus is a

peer; you provide it.

What it does

  • Refresh gate (Tier 0) — before offering a refresh, the panel compares the working

tree with the sha256 hashes the index recorded in .gitnexus/gitnexus.json and reports

what actually differs: modified / added / deleted, plus files the index's own policy

excludes. A clean tree answers in milliseconds without starting the analyzer, and the

button says so instead of running a minutes-long rebuild. The verdict is only called

"up to date" when it is anchored to the commit the index recorded; an index that

recorded none falls back to comparing the working tree with HEAD and says it cannot

confirm instead of claiming freshness.

  • Storage state, not just "indexed or not" — GitNexus 1.6.13 inspects .gitnexus before

writing and distinguishes six states, not two, so "no index" was the wrong answer for the

four that are neither owned nor absent. The panel now names the state it found: unowned (data with no ownership manifest),

foreign (the manifest names another repository or storage directory — a moved checkout,

or a directory copied together with its .gitnexus), invalid_storage (a manifest exists

but does not parse) and unknown (the bytes could not be read — this plugin's own state,

so an unreadable store is not called malformed). Only owned counts as a usable index;

the blocked screen says which state it is and offers 全量重建, withholding 初始化索引

because upstream rejects that write in all four. The text output follows the same rule:

GitNexus index: BLOCKED (<state>) instead of NOT FOUND.

  • Read paths ask the same question as the panel — search and the three graph tools

(impact, context, query) used to check only that a manifest existed, then open

.gitnexus/lbug; for a moved or copied checkout that returned another repository's

graph. They now consult the storage state first and answer 409 index-not-usable with

the sentence the blocked panel shows (409 no-index for a project that never had an

index). The check runs before the manifest is parsed, because that parse does not

validate ownership. Routes that read git objects — a commit's files, file history,

checkout — still answer without an index, since they never touch the graph.

  • Graph view — the index's communities drawn on a canvas, with aggregated

cross-community edges; click a community to see its member symbols and the relations

among them, click a symbol to open its file at the line. Node and edge budgets are

applied by the host, and the view states what it left out. A Symbol view button

switches to a bounded all-symbol projection when a symbol outside the current

communities matters; it is explicitly truncated by file order, and the community view

remains the structural overview. Single click selects a community; Expand opens a

centered dialog with the same projection and a community sidebar, not a full-screen

mode. The card defers its fetch until it is scrolled near the viewport.

  • 3D view — the full, rotatable graph is GitNexus's own web UI, embedded instead of

reimplemented. The panel starts gitnexus serve (one process per plugin host, stopped

when the plugin unloads) and shows the SPA in an overlay iframe, with **open in a new

tab and stop the server** beside it. The server is spawned with the same CLI the

analyzer uses, against the GITNEXUS_HOME registry that actually holds this

repository, so the URL opens this project rather than another indexed one. A failed

start surfaces the process's own output — a version-mismatched index shows

Trying to read a database file with a different version instead of a blank frame. An

existing server on the port is adopted (and never killed) when it can see the

repository. The dialog opens at 86% of the usable viewport, has 紧凑 / 标准 / 铺满

presets, and can be dragged to any size from the bottom-right corner; the size is

remembered in localStorage and clamped whenever the window shrinks. Port and

embedding are configurable; see webViewPort.

  • AI settings, pre-filled — the SPA keeps its provider settings in sessionStorage,

which a cross-origin iframe cannot be written to. The plugin therefore serves it a

generated index.html (through GITNEXUS_WEB_DIST) that seeds gitnexus-llm-settings

before the app boots, taking provider, key and model from

GITNEXUS_PLUS_AI_PROVIDER / GITNEXUS_PLUS_AI_API_KEY /

GITNEXUS_PLUS_AI_MODEL (plus optional GITNEXUS_PLUS_AI_BASE_URL for

OpenAI-compatible endpoints, Azure endpoints and Ollama hosts), so chat works witho

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:13,最后更新 2026-11-06

链接

GitHub · Homepage · npm

同类插件