dsh-jj-panel
Identified★ 1Jujutsu (jj) version-control panel in the DSH web GUI: a Jujutsu tab renders the jj log change graph with change details, changed files and file diffs, a revset input, and jj-native history edits (dra
dsh-jj-panel
English | 简体中文
A Jujutsu history panel for the DeepSeek Harness web GUI. It reads jj directly — no git translation — and shows the change graph, change details, changed files and diffs in its own Jujutsu tab, and shapes history through the same jj-native workflow.
Features
- Change tree —
jj logrendered as lanes: change IDs, commit IDs, bookmarks, tags,empty/conflict/divergentmarkers, the@working-copy commit, and themain(ormaster) trunk lane highlighted. - Change details — full description, author and timestamp, changed files with their status (
M/A/D/R). - Diffs — click a changed file to load its
jj diff --gitoutput with+/-colouring. - Revset box — the panel loads
all()by default (switch to::@to focus the current stack); type any revset (all(),bookmarks(),description("…")) and press Enter. - Structural editing — right-click (or the
⋯button) for new change here, edit, describe, squash into parent, abandon (or the whole subtree), duplicate, revert before@, split by file, copy change id, and push a bookmark. - Drag to rebase — drag one row onto another to rebase it; hold Alt to insert the change before the target (reorder a stack). Drops onto the change itself or its descendants are ignored.
- Split by file — toggle split mode in the change details, tick files, then "Split into new change": the ticked files move into a new child of the current
@change, and the original keeps its description. - Undo / Fetch — toolbar actions; destructive operations (abandon, subtree abandon, revert, undo, push) open an inline confirmation naming the action and target change before any write.
- Keyboard —
j/kmove the selection,Enteredits,ncreates a new change on the selection,uasks to undo,/focuses the revset box.
Requirements
- DSH
0.2.1-rc.2or newer within the0.2.xline (web profile). jj0.44+ onPATH, or configurejjPath.- The workspace must be a Jujutsu repository (
jj git init --colocatein an existing git repo works).
Install
dsh plugin --profile web add dsh-jj-panel
Or from a checkout:
dsh plugin --profile web add file:D:\path\to\dsh-jj-panel
After installing, open the Jujutsu tab next to the other conversation views. Host-side changes need a DSH restart; the browser half hot-reloads.
Plugin market source
This repository ships a format-1 market index at market/index.json. Add this URL as a market source under Plugins → Discover to install the pinned version:
https://raw.githubusercontent.com/wzciczw/dsh-jj-panel/master/market/index.json
The index is validated against @deepseek-ai/dsh-plugin-market-index in the test suite.
Configuration
The plugin accepts an optional config block (profile cordis.patch.yml or the plugin settings page):
- id: jj-panel
name: "dsh-jj-panel"
config:
jjPath: 'C:\path\to\jj.exe' # default: PATH, then the winget install location
timeoutMs: 8000 # per jj command
maxBytes: 4194304 # stdout cap
defaultLimit: 120 # commits per load (1..500)
How it works
- Host half: a Cordis plugin registering a
TypertRemoteServicenamedjjPanelwith five Remote methods —snapshot,log,show,diffandop. Every command is spawned as an argv array, never through a shell. - Browser half: a React panel registered on
conversation.view, talking to the host throughconnection.rpc.call(rpc, "/api", "jjPanel", …). - Data comes from a
jj log --no-graph -T …template (change id, commit id, parents, bookmarks, tags, flags, description first line); details usejj show --no-patch -T 'json(self)'. - Every structural edit goes through
jjPanel/opwith an action plus params; the host builds the argv and returns stdout, which the panel shows in its status line.
Safety
- Writes are limited to the allowlisted
opactions; the browser half never constructs jj commands. - Abandon, subtree abandon, revert, undo and push require
confirm: true; the panel asks first and the host rejects unconfirmed calls. - Revsets are validated (no
--/ global flags); paths must stay inside the repository. - Output is capped and commands time out; failures surface verbatim in the panel, and
Undo(jj undo) is always one toolbar click away.
Development
npm install
npm run build # tsc (host) + tsc (client) + bundle lib/client.js
npm test # build + unit/integration tests (real jj when available)
The integration tests use JJ_TEST_REPO when set, otherwise D:\agent-research.
License
MIT
Comments
Loading…
Similar plugins
by yangdongzhen590
KNJ version-control workbench for DSH: local changes, per-file and multi-file staging, confirmed commit/update/push, and readable Git failure output.
★ 0
MIT
JavaScript
Sep 27, 2026
dsh plugin --profile web add dsh-knj-version-controlby xbzbing
IDE-style Git panel in the DSH Web GUI: a resident tab with a three-column overview (branch/tag list, searchable commit-history graph, commit detail with changed-file tree and message) and a changes p
★ 26
MIT
TypeScript
Oct 27, 2026
dsh plugin --profile web add @xbzbing/dsh-git-panelby bitxeno
Sidebar Git panel for the DSH web GUI: Local Changes and All Commits views, branch, tag and stash management with fetch, pull and push dialogs, merge with conflict handling, and a zsh-style branch mar
★ 0
TypeScript
Oct 28, 2026
dsh plugin --profile web add dsh-git-plusby leanderli
DSH Web UI 的文件与变更面板插件:为当前会话的工作区目录提供一体化的 文件浏览 / 搜索 / 预览 / 编辑与 Git 操作(状态、暂存、提交、拉取、推送、 分支、历史、diff 等),在浏览器里以居中模态面板呈现,无需离开 WebUI 即可完成 日常文件与版本控制操作。
★ 2
MIT
JavaScript
Oct 10, 2026
dsh plugin --profile web add dsh-files-gitby xing-shuyin
Developer tools panel for the DSH web UI: file browser with preview, edit, and path-only file mentions; multi-tab terminals with quick commands; Git panel with commit, push, pull, and branch switching
★ 6
JavaScript
Aug 19, 2026
dsh plugin --profile web add dsh-ui-toolsby konnga
Read-only Git panel for the current workspace: branch, changed files and diffs, plus which files this session changed, what has been reviewed, and which tools and skills it ran.
★ 3
MIT
JavaScript
Oct 27, 2026
dsh plugin --profile web add @konnga/dsh-hud