🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Jujutsu 历史面板 wzciczw/dsh-jj-panel

DeepSeek Harness
wzciczw12 天前有提交已提供中文文档扫描:含敏感能力

在独立标签页查看 jj 变更图并改写历史

30.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wzciczw/dsh-jj-panel
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/10/28·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 12 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
  • 执行外部命令来自配置/变量
    scripts/build.mjs:9
    execFileSync(process.execPath, [tsc, "-p", project], { stdio: "inherit", cwd: root });
  • 删除本地文件递归
    scripts/build.mjs:12
    rmSync(join(root, "lib"), { recursive: true, force: true });
  • 读取本地文件
    scripts/build.mjs:21
    for (const file of readdirSync(buildDir)) {
  • 写入本地文件
    scripts/build.mjs:24
    renameSync(join(buildDir, file), join(buildDir, cjs));
  • 读取本地文件
    scripts/build.mjs:25
    modules.set(file.slice(0, -3), readFileSync(join(buildDir, cjs), "utf8"));
  • 写入本地文件
    scripts/build.mjs:56
    mkdirSync(join(root, "lib"), { recursive: true });
  • 写入本地文件
    scripts/build.mjs:57
    writeFileSync(
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-plugin-market-index@deepseek-ai/dsh-typert-protocol
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 网页界面的 Jujutsu(jj)历史面板:变更图、详情和差异,直接读自 jj。

README

由 DeepSeek 最新模型翻译生成
dsh-jj-panel 给 DeepSeek Harness Web GUI 用的 Jujutsu 历史面板。直接读 jj(不经过 git 转译),在独立的 Jujutsu 标签页里展示 change 图、change 详情、改动文件与差异,并通过 jj 原生的方式改写历史。 功能 - change 树:jj log 渲染为分道图,含 change ID、commit ID、bookmark、tag、empty/conflict/divergent 标记、@ 工作副本标记,并突出 main(缺失时回退 master)主干道; - change 详情:完整描述、作者与时间、改动文件及状态(M/A/D/R); - 差异:点击文件加载 jj diff --git,按 +/- 着色; - revset 输入框:默认 all()(可切到 ::@ 只看当前栈),可输入 all()、bookmarks()、description("…"); - 结构化编辑:右键或 ⋯ 按钮可在此新建、编辑、修改描述、压缩进父 change、放弃(或整棵子树)、复制、回滚到 @、按文件拆分、复制 change id、推送 bookmark; - 拖拽 rebase:把一行拖到另一行即 rebase;按住 Alt 拖放则 插入到目标之前(栈内重排)。
展开完整文档(README 剩余 1 节)
dsh-jj-panel

给 DeepSeek Harness Web GUI 用的 Jujutsu 历史面板。直接读 jj(不经过 git 转译),在独立的 Jujutsu 标签页里展示 change 图、change 详情、改动文件与差异,并通过 jj 原生的方式改写历史。

功能

- change 树:jj log 渲染为分道图,含 change ID、commit ID、bookmark、tag、empty/conflict/divergent 标记、@ 工作副本标记,并突出 main(缺失时回退 master)主干道;
- change 详情:完整描述、作者与时间、改动文件及状态(M/A/D/R);
- 差异:点击文件加载 jj diff --git,按 +/- 着色;
- revset 输入框:默认 all()(可切到 ::@ 只看当前栈),可输入 all()、bookmarks()、description("…");
- 结构化编辑:右键或 ⋯ 按钮可在此新建、编辑、修改描述、压缩进父 change、放弃(或整棵子树)、复制、回滚到 @、按文件拆分、复制 change id、推送 bookmark;
- 拖拽 rebase:把一行拖到另一行即 rebase;按住 Alt 拖放则 插入到目标之前(栈内重排)。拖到自身或自身的后代会被忽略;
- 按文件拆分:在详情里切换拆分模式,勾选文件后点击「拆分到新 change」;
- 撤销 / 拉取:工具栏操作;破坏性操作(放弃、放弃子树、回滚、撤销、推送)会先弹出内联确认框,显示操作名与目标 change,确认后才执行;
- 键盘:j/k 移动选择,Enter 编辑,n 在选择处新建,u 确认撤销,/ 聚焦 revset 输入框。

环境要求

- DSH 0.2.1-rc.2 及以上(0.2.x 线,web profile);
- jj 0.44+ 在 PATH 中,或在配置里指定 jjPath;
- 工作区必须是 jj 仓库(已有 git 仓库可 jj git init --colocate)。

安装

dsh plugin --profile web add dsh-jj-panel

或从本地检出安装:

dsh plugin --profile web add file:D:\path\to\dsh-jj-panel

安装后打开会话视图里的 Jujutsu 标签页。host 半改动需要重启 DSH,浏览器半会热更新。

插件市场源

仓库自带 format-1 市场索引 market/index.json。在 Plugins → Discover 里把下面的地址加为 market source,即可安装索引中钉住的版本:

https://raw.githubusercontent.com/wzciczw/dsh-jj-panel/master/market/index.json

索引在测试中用 @deepseek-ai/dsh-plugin-market-index 校验。

配置

- id: jj-panel
name: "dsh-jj-panel"
config:
jjPath: 'C:\path\to\jj.exe' # 默认依次为 PATH、winget 安装位置 timeoutMs: 8000 maxBytes: 4194304 defaultLimit: 120 # 每次加载的提交数(1..500)

实现

- host 半:Cordis 插件,注册 TypertRemoteService(命名空间 jjPanel),暴露 snapshot / log / show / diff / op 五个 Remote 方法;所有命令以 argv 数组 spawn,不经过 shell。
- browser 半:React 面板注册到 conversation.view,通过 connection.rpc.call(rpc, "/api", "jjPanel", …) 调 host。
- 数据来自 jj log --no-graph -T … 模板(change id、commit id、parents、bookmarks、tags、标记、描述首行);详情用 jj show --no-patch -T 'json(self)'。
- 所有结构化编辑都走 jjPanel/op(action + params),由 host 构造 argv 并返回 stdout,面板在状态行里展示。

安全边界

- 写操作只限于 op 的 action 白名单,browser 半不自行拼接 jj 命令;
- 放弃、放弃子树、回滚、撤销、推送需要 confirm: true:面板先弹确认框,host 也会拒绝未确认的调用;
- revset 校验(拒绝 -- 与全局参数),路径必须落在仓库内;
- 命令有超时与输出上限,失败会在面板里原样展示;撤销(jj undo)始终在工具栏一步可达。

开发

npm install
npm run build # tsc(host) + tsc(client) + 打包 lib/client.js
npm test # 构建 + 单元/集成测试(有 jj 时跑真实仓库)

集成测试默认仓库为 D:\agent-research,可用 JJ_TEST_REPO 覆盖。

许可证

MIT
预览分享卡片长什么样 ↓wzciczw/dsh-jj-panel
分享 · DeepSeek Harness Hub
wzciczw/dsh-jj-panel

在独立标签页查看 jj 变更图并改写历史

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部