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

会话 PR 状态标 N-o-c-t-i-s/dsh-pr-chip

DeepSeek Harness
N-o-c-t-i-s15 天前有提交已提供中文文档扫描:含敏感能力

在每条会话行旁显示对应拉取请求的实时状态

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add N-o-c-t-i-s/dsh-pr-chip
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 17 处,展示前 13 条)
  • 读取本地文件
    lib/index.js:102
    raw = JSON.parse(await readFile(join(dshHome(), 'storages', 'workspace.json'), 'utf8'))
  • 读取本地文件
    lib/index.js:150
    slugs = await readdir(root)
  • 读取本地文件
    lib/index.js:361
    await access(path)
  • 读取本地文件
    lib/index.js:387
    const parsed = JSON.parse(await readFile(linksPath(), 'utf8'))
  • 写入本地文件
    lib/index.js:398
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    lib/index.js:400
    await writeFile(temporary, JSON.stringify({ version: 1, links: linksCache ?? {} }), 'utf8')
  • 写入本地文件
    lib/index.js:401
    await rename(temporary, linksPath())
  • 读取本地文件
    lib/index.js:528
    slugs = await readdir(root)
  • 读取本地文件
    lib/index.js:539
    bytes = await readFile(path)
  • 写入本地文件
    lib/index.js:816
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    lib/index.js:825
    await writeFile(path, `${prior}${JSON.stringify(entry)}\n`, 'utf8')
  • 写入本地文件
    lib/index.js:865
    await mkdir(dir, { recursive: true })
  • 发起网络请求
    lib/client.js:102
    fetch(`${ROUTE}status?sessionId=${encodeURIComponent(sessionId)}`, {
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

每个 DeepSeek Harness 会话行都带一个拉取请求状态标签。

README

由 DeepSeek 最新模型翻译生成
dsh-pr-chip 每条 DSH 会话行上显示拉取请求状态——一个小图标,告诉你聊天背后的工作还处于 open、停在 draft、已经 merged,还是 closed。 一个 DeepSeek Harness(DSH)插件:宿主端负责解析状态,浏览器端在侧边栏的会话行里画出这个标记。图标形状沿用 Codex 桌面应用的徽标,颜色取自 GitHub。 中文文档见下方「中文」一节。 工作原理 会话记录从不保存 PR 状态。它保存的是一个身份标识,状态每次都实时查询: sessionId ──resolve cwd──> (ownerRepo, branch) ──gh pr list --head──> state cwd 分两步解析:先找 storages/workspace.json 里拥有该会话的工作区;找不到时,再用会话自己在磁盘上的目录名(--Users-me-proj--,其中 ~XXXX 转义和连字符按磁盘上真实存在的切分点逐个尝试拆开)。第二条路径确实会用到:会话的 cwd 并不总是它的工作区路径,而且旧会话会比它的工作区记录活得更久。 状态只缓存在内存里(有结果缓存 30 秒,「没有 PR」缓存 60 秒),以 cwd 为键,所以共享同一工作区的会话共用一次查询。查询在飞行中去重,并发子进程上限为四个。
展开完整文档(README 剩余 1 节)
dsh-pr-chip

每条 DSH 会话行上显示拉取请求状态——一个小图标,告诉你聊天背后的工作还处于 open、停在 draft、已经 merged,还是 closed。

一个 DeepSeek Harness(DSH)插件:宿主端负责解析状态,浏览器端在侧边栏的会话行里画出这个标记。图标形状沿用 Codex 桌面应用的徽标,颜色取自 GitHub。

中文文档见下方「中文」一节。

工作原理

会话记录从不保存 PR 状态。它保存的是一个身份标识,状态每次都实时查询:

sessionId ──resolve cwd──> (ownerRepo, branch) ──gh pr list --head──> state

cwd 分两步解析:先找 storages/workspace.json 里拥有该会话的工作区;找不到时,再用会话自己在磁盘上的目录名(--Users-me-proj--,其中 ~XXXX 转义和连字符按磁盘上真实存在的切分点逐个尝试拆开)。第二条路径确实会用到:会话的 cwd 并不总是它的工作区路径,而且旧会话会比它的工作区记录活得更久。

状态只缓存在内存里(有结果缓存 30 秒,「没有 PR」缓存 60 秒),以 cwd 为键,所以共享同一工作区的会话共用一次查询。查询在飞行中去重,并发子进程上限为四个。

身份标识的来源,按优先级排列

1. 活动工作树 —— 会话 cwd → git 分支 → gh pr list --head
2. 记住的身份(links.json)—— 检出目录已被归档或删除
3. 实时事件 —— 在会话事件总线上看到的 gh pr create,与同一次调用的输出配对
4. 一次性回填 —— 对安装之前就存在的会话,扫描一次对话记录;结果记录下来,之后不再重扫

第 3 和第 4 条只接受 gh pr create 自身的输出形态——一个裸的 PR URL——所以仅仅打印 URL 的命令,或者引用了 URL 的普通文本,都无法匹配。

安装

from a local checkout
dsh plugin --profile <profile> add link:/path/to/dsh-pr-chip

from git
dsh plugin --profile <profile> add github:OWNER/dsh-pr-chip

之后重启宿主:插件包列表在启动时组装。

在 DSH 桌面应用上,配置档由应用管理,dsh plugin 会拒绝操作;请手动添加依赖和 dsh.profile.bundles 条目,再加上 node_modules 符号链接。

要求

- DSH ≥ 0.2.1(sidebar.session.row.leading 座位会传入 { sessionId })
- PATH 中有 git 和 gh,且 gh auth status 正常

什么都不画的情况

- 目录不是 git 工作树(临时路径没关系——只看是不是工作树)
- 分支处于 detached HEAD
- 分支没有 PR,也没有记住的身份
- gh 缺失或未认证

接口返回 state: null 并附带 reason(no-branch、no-pull-request、workspace-missing、gh-failed),会话行照原样渲染。

写入的文件

所有内容都在 $DSH_HOME/pr-chip/ 下:

| 文件 | 内容 |
| links.json | 会话 → (ownerRepo, branch, number) 身份,原子写入,最多 500 条 |
| scanned.json | 已经回溯过一次对话记录的会话 |
| host-loaded.jsonl | 每次宿主启动一行(诊断用) |

离线

图标保留最后一次观察到的状态。gh 连不上 GitHub 时,接口返回已存的状态并标记 stale: true,而不是返回 null,所以连接断了也不会藏住信息——查询失败也绝不会覆盖磁盘上已有的正常状态。重连后第一次查询成功就会替换它。

从未解析出 PR 的会话没有存任何东西,所以也不会凭空编造:它继续不显示图标。

显示位置

sidebar.session.row.leading —— 会话标题前那个 16px 单元格。DSH 只在行空闲时渲染这个单元格,归档行和空白行永远不渲染。

DSH 没有「标题后常驻可见」的位置:sidebar.session.row.hover 在悬停卡片内部,sidebar.workspaces.session.row.action 只在悬停时出现。leading 单元格是唯一的常驻位置,所以图标放在这里。

会话行上的 PR 状态图标:open / draft / merged / closed 四态,颜色沿用 GitHub 配色(#1f883d / #6e7781 / #8250df / #cf222e)。

- 状态从不落盘,只记身份;每次查询,带缓存。
- 三条兜底:落盘的身份、会话事件里的 gh pr create、一次性日志回溯。
- 只认真实输出:必须是 gh pr create 自己返回的裸 URL,正文里提到的 URL 不算。

安装后重启宿主生效。没有 PR 的会话行外观完全不变。

License

MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓N-o-c-t-i-s/dsh-pr-chip
分享 · DeepSeek Harness Hub
N-o-c-t-i-s/dsh-pr-chip

在每条会话行旁显示对应拉取请求的实时状态

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