Repository navigation
Releases
v0.3.3 - viz mark greys out until the graph is built
The viz mark greys out until the graph is built
The viz button's mark carried the graft-red accent even in workspaces that never had an index, so a repo that graft had not touched looked grafted. The mark now greys out with the status chip whenever no index is resolved - the accent collapses into the mark's own label colour at the chip's muted opacity - and returns to the graft red the moment an index exists, whether it is synced, stale or rebuilding.
No other changes. Existing profiles: pnpm add dsh-graft-plugin@0.3.3 in the profile dir.
v0.3.2 - graft mark keeps its red
The graft mark keeps its red
The viz button's accent was tied to the theme's brand-primary colour with the graft red only as a fallback - themes that set brand-primary to white washed the mark out entirely. The accent is now pinned to the graft red (matching the plugin icon and banners), with a new --dsh-graft-accent variable for themes that want to restyle the mark deliberately.
No other changes. Existing profiles: pnpm add dsh-graft-plugin@0.3.2 in the profile dir.
v0.3.1 - new graft mark: plugin icon, composer logo, banner
New graft mark
The project has a proper identity now — the same node-and-edge glyph the composer chip has always used, redrawn with weight: a thick trunk with a leaf, thin branches, and the accent node. It ships everywhere the mark appears.
- dsh Settings → Installed plugins shows the icon —
package.jsondeclares"icon": "assets/icon.png"(1024×1024 PNG, 88 KB) and dsh base64-embeds it at boot. - The dshmarket tile reads the same file from GitHub (~96px).
- The composer button and the viz tab use the redesigned mark — thick trunk, leaf, accent node — still re-tinting with your dsh theme.
- The README opens with a banner (light + dark, auto-switched by GitHub) and is now also available in Chinese.
Install
| File | Use it if |
|---|---|
dsh plugin add dsh-graft-plugin |
normal install — npm latest after publish |
releases/latest/download/plugin.tgz |
the marketplace's direct-tarball path |
github:adithyanraj03/dsh-graft-plugin |
install from source |
No behaviour change — icon, logo and docs release. Existing profiles: pnpm add dsh-graft-plugin@0.3.1 in the profile dir (the lockfile pin, not the range, is what holds you back).
v0.3.0
Compatibility with dsh 0.1.7+/0.2.1, git worktree support and themed UI — by @cr1cr1 in PR #1, audited and tested before merge.
- Model guidance restored on dsh 0.1.7+ — it now rides
agent/created, the event dsh actually emits (the oldagent/session-startwas removed upstream, which had silently dropped the guidance from every prompt) - Unhandled-rejection fix — a failed
graft vizspawn reports instead of taking the process down - graft installed via bun (bare shim on PATH) is detected
- git worktree support
- Theme-following UI — chip, hover card and sidebar tab
- Popup Build/initialise
- Tool-use blink — the chip's dot pulses violet while a graft_* tool runs
BREAKING-ish: dsh-better-sidebar is now an optional peer dependency — dsh no longer downloads it for you. On dsh 0.1.0–0.1.2 run dsh plugin add dsh-better-sidebar to keep the viz sidebar tab; on dsh 0.1.5+ the graph opens in dsh's built-in right sidebar instead.
v0.2.1
dsh 0.2 compatibility: the remote descriptor codecs now carry both shapes. dsh 0.2's typert validator requires every strict codec to expose a create() schema factory - without it the plugin fails to activate with 'strict codec has no create() factory'. dsh 0.1 reads the schema field directly, which is kept, so 0.2.1 loads on both. Eight new harness checks evaluate the shipped descriptors against the 0.2 contract.
v0.2.0
graft viz now opens in dsh's built-in right sidebar (0.1.5+): page-type registration with keyed body, click path better-sidebar -> right sidebar -> browser tab, Graft entry on the sidebar guide page. README/site updated; seven new harness checks (99 total).
v0.1.2
README audit fixes: pnpm build-gate install flow, tested-against requirements, dsh-better-sidebar compatibility note, two-identifier note, troubleshooting section. Code: dropped the dead dsh-client-runtime client inject. No client or host behaviour change.
dsh-graft-plugin v0.1.1
dsh-graft-plugin v0.1.1
Fixes a client-mounting bug in 0.1.0: the browser bundle registered itself with window.__ModuleLoader__.load({ id: "graft-status" }) — the cordis row handle — but the client loader keys modules by the package name and arrive() asserts factories.has("dsh-graft-plugin"). The factory landed under the wrong key, so the assert fired on boot and the client half (composer chip + viz tab) never mounted.
src/client.jsnow registers underdsh-graft-plugin. The row idgraft-statusis untouched everywhere it belongs (storage keys, prompt section, effect labels).- The test suite carries a source-level regression guard for the module key (two new checks; 93 total).
Asset note: this release's tarball is attached under the stable name plugin.tgz, so the marketplace entry's tarball: key can point at releases/latest/download/plugin.tgz and stay valid across versions.
dsh-graft-plugin v0.1.0
dsh-graft-plugin v0.1.0
First release. Puts graft — a prebuilt graph of every symbol, its file:line span, and who calls what — in front of both you and the model.
What's in it
- A chip in the composer naming the graft index the session is actually serving, whether it still matches the code, and how many tokens graft has saved in the repo.
- Five tools for the model —
graft_ask,graft_grep,graft_callers,graft_skeleton,graft_map— resolved per session, so one dsh can serve several workspaces at once. - The
/graftcommand — manual sync,status,viz,rebuild. - Auto-sync — the index rebuilds in the background when the code changes.
- A viz tab — one click opens
graft vizon a free local port.
Install
dsh plugin --profile web add github:adithyanraj03/dsh-graft-pluginOnce published to npm, the bare dsh plugin --profile web add dsh-graft-plugin works too.
Requirements
- Node ≥ 22, dsh ≥ 0.1.2-rc.1 (web profile)
- graft CLI on PATH (installed automatically at install time, if missing)