DeepSeek Harness 插件

jira-tasks-dsh-plugin

JIRA open tasks panel for DeepSeek Harness (DSH): shows the current user's open/reopened issues below the composer, per-workspace project key, persistent profile bundle.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
liu3734/jira-tasks-dsh-plugin
最近更新
2026年8月17日
分类
界面增强
GitHub stars
1
载体类型
plugin
包路径
profile-package
目录证据
上游声明已找到 dsh.bundle
证据路径
profile-package/package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/liu3734/jira-tasks-dsh-plugin/tree/HEAD/profile-package
插件名:jira-tasks-dsh-plugin
作者:liu3734

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

JIRA 开启任务面板(DeepSeek Harness 插件)

![License: MIT](LICENSE)

中文 · English

在 DSH 会话输入框下方展示当前 JIRA 项目指派给当前用户的「开启 / 重新开启」任务列表。JIRA 地址与令牌从凭据读取;项目 Key 与 JQL 按工作区配置并持久化。

功能

  • 📋 新会话与活跃会话的输入框下方均展示任务面板(新会话时与输入框等宽)

<img width="1898" height="886" alt="image" src="https://github.com/user-attachments/assets/d14d0bd4-4f9f-4aa8-9af8-b8a02a2b7296" /> <img width="1972" height="746" alt="image" src="https://github.com/user-attachments/assets/9f543e04-a5ad-4b86-85c8-baa2de26f44e" />

  • 👤 默认仅显示当前用户(assignee = currentUser())的「开启 / 重新开启」任务
  • ⚙️ 项目 Key 与 JQL 按工作区保存;未配置的工作区显示"未配置"
  • 🔄 打开新会话自动查询,面板内支持一键刷新(⟳)
  • 🔗 任务可点击,在新标签页打开 JIRA 详情
  • 🎨 颜色使用 DSH 主题令牌,浅色 / 深色主题自适应

安装

包已发布到 npm:

dsh plugin --profile desktop add dsh-jira-tasks

重启 DSH 后生效。

<details> <summary>手动安装(不使用 npm)</summary>

1. 将仓库 profile-package/ 复制为 ~/.dsh/profiles/desktop/packages/dsh-jira-tasks/ 2. 编辑 ~/.dsh/profiles/desktop/package.json: - dependencies 增加:"dsh-jira-tasks": "file:./packages/dsh-jira-tasks" - dsh.profile.bundles 追加:"dsh-jira-tasks" 3. 在 profile 目录执行 pnpm install 4. 重启 DSH

> 注:pnpm install 会把包复制node_modules/(非符号链接),改动源码后需同步 node_modules/dsh-jira-tasks 或重跑 install。 </details>

<details> <summary>动态插件方式(临时,重启后消失)</summary>

在 DSH 会话中用 Cordis 工具执行:cordis_definekind: newidPrefix: "jira",源码见仓库 plugin/host.js / plugin/client.js)→ cordis_run 激活。动态插件只存在于进程内存,重启后消失,仅适合临时试用。 </details>

配置

1. JIRA 地址与令牌

写入 $DSH_HOME/.credentials.yaml(推荐,热加载无需重启),或启动 DSH 前导出环境变量:

JIRA_BASE_URL: "http://jira.example.com/"
JIRA_API_TOKEN: "<PAT 或 user:token>"
  • 地址别名:JIRA_BASE_URL / JIRA_URL
  • 令牌别名:JIRA_API_TOKEN / JIRA_TOKEN
  • 认证自动识别:令牌含 : 用 Basic,否则用 Bearer(JIRA PAT)

2. 项目 Key 与 JQL(按工作区)

  • 点击面板标题右侧 打开设置(表单顶部提示当前配置归属的工作区)
  • 项目 Key:如 HCPFYH1,保存后立即查询,该工作区后续新会话自动加载
  • JQL:留空使用默认查询;也可填写自定义 JQL,{projectKey}(或 {key})会被替换为项目 Key

默认查询:

project = "{projectKey}" AND status in ("开启", "重新开启") AND assignee = currentUser() ORDER BY updated DESC

> 状态名按中文工作流("开启"/"重新开启")配置;若 JIRA 用英文状态(Open/Reopened),在 ⚙ 中填写自定义 JQL 即可。

卸载

dsh plugin --profile desktop remove dsh-jira-tasks

常见问题

<details> <summary>面板显示「查询失败」</summary>

提示处理
未配置环境变量 JIRA_BASE_URL凭据未写入,见上文「配置 1」
401 …令牌无效或认证方式不对;先 curl -H "Authorization: Bearer <token>" <base>/rest/api/2/myself 验证
无法解析 JIRA 响应网络 / 代理问题,curl 无输出

</details>

<details> <summary>面板不显示</summary>

  • 确认已安装并重启 DSH;新会话面板位于输入框下方
  • 检查 DSH 启动日志中 profile 插件是否加载成功

</details>

架构与实现细节

<details> <summary>点击展开</summary>

┌─────────── 浏览器(Client) ───────────┐      ┌──────────── Host ──────────────┐
│ conversation.composer.dock(活跃会话)      │      │ webServer 路由 /jira/api/search │
│ conversation.input.dock(新会话, order:99)│      │   ↓                            │
│   ↓ 挂载时/刷新时 fetch POST               │      │ credentials.resolve(JIRA_*)     │
│ 渲染:任务列表 / 错误 / 未配置               │      │ subprocess.spawn(curl …)        │
│ localStorage 按工作区存取配置                │      │   ↓ stdout JSON                 │
└────────────────────────────────────────────┘      │ 解析 issues → 返回 {ok,issues}  │
                                                    └────────────────────────────────┘
  • Host:注册 webServer 路由 POST /jira/api/search;凭据经 credentials 服务解析(环境变量 / $DSH_HOME/.credentials.yaml,热加载);查询用 subprocess 直接 spawn curl,认证头经 stdin(--config -)传入,令牌不进入命令行参数。
  • Clientwindow.__ModuleLoader__.load({ id, factory }) 标准 web bundle;注册 conversation.composer.dock(活跃会话)与 conversation.input.dock(新会话,flex order: 99 置于输入框下方、与输入框等宽)。
  • 为什么不用 shell 服务shell 会套 sandbox-exec,部分 macOS 上不可用(sandbox_apply: Operation not permitted);subprocess 是原始进程缝,无此问题。
  • 新会话显示:DSH 壳在 hero(空白会话)阶段不渲染 composer.dock,故额外注册 input.dock,并用「会话是否已有消息」去重,避免双份面板。

与动态插件版的差异

维度动态插件正式安装(本包)
持久性重启丢失重启保留
Client→Host 通信host.call / harness.handlewebServer 路由 + fetch
客户端 bundle会话内注入/plugins/dsh-jira-tasks/client.js
配置 / 凭据同一 localStorage 键、同一 .credentials.yaml完全相同

</details>

License

MIT