zengxiaolou/dsh-pr-panel ↗★ 0

dsh-pr-panel

在界面常驻展示当前会话相关PR的CI与合并状态面板。 适合在研发会话中需要实时跟踪和评审GitHub PR状态的开发者。

包名
dsh-pr-panel
兼容性
待验证
版本
0.6.47
许可证
MIT
最近更新
2026年10月24日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zengxiaolou/dsh-pr-panel

dsh-pr-panel

dsh-pr-panel

npm downloads license

dsh plugin

stars

本会话 PR 浮窗 + 右列审阅面板。 Agent 说「PR 已创建」之后,你不用切浏览器:右下角留一个入口,点开就是状态、CI、评审意见与合并按钮。

前身是 dsh-github-flow 的本地分叉;这一版只保留本会话 PR 通道与 Agent 的 github_* 工具集。从旧版裁剪掉的部分见文末「历史」。

装 / 启用

# npm
dsh plugin --profile 
 add dsh-pr-panel
# 离线 tarball
dsh plugin --profile 
 add ./dsh-pr-panel-0.1.0.tgz

装完完整重启一次 DSH:客户端 bundle 会热重载,Host 侧路由不会。重启后右下角才会出现浮窗、右列才会注册 PR 标签。

凭证零侵入:所有请求复用宿主机的 gh 登录态(gh auth status 能过就能用),不额外存 token。

三个入口

入口位置说明
浮窗右下角 shell.overlay本会话至少建过 1 个 PR 才出现;收起是 PR # 药丸,展开是 12 行卡片。可拖动(位置存 localStorage,双击把手归位),右键每行「在面板里打开 / 复制链接 / 跳转 GitHub」
右列面板右栏 PR 标签点浮窗任意一行,或以 number(+ repo)参数打开标签;容器 //pull/`

浮窗卡片:两行布局 + 目标分支色

浮窗的三个视图

浮窗顶部分三块,一次只渲染一块(藏起来的视图不发请求):

功能项目CI/CD
功能视图项目视图CI/CD 视图
  • 功能:按分支链把同一个功能的 PR 收进一条泳道。泳道头是完成度(PENDING / DONE / CLOSED),不是环境;环境在每行的 → 目标分支 上。列表先给 20 条,滑到底续 20 条。
    • 行内右侧直接给检查通过数(9/9);需要你处理的打标记:! 表示 CI 失败或有冲突,待 表示要求修改或等你评审。泳道内这些行自动排到前面。
    • 键盘:j/k(或上下箭头)选行、Enter 打开、1/2/3 切视图、Esc 收起。
  • 项目:本会话涉及的每个项目,显示它当前正在用的那个 worktree(按 PR 的 head 分支反查,git 里一个分支只属于一个 worktree),以及该仓库共有多少个 worktree。失效的 worktree 会提示可清理数量与预览命令,但不会代你执行删除。
  • CI/CD:本会话 PR 触发的 Actions。分两段:PR 校验(head 分支)与合并后(base 分支、合并后 30 分钟内)。运行中显示 3/13 与当前步骤,点整行打开该次运行。

截图取自 docs/preview 的离线预览页:用插件自己的 CSS 与组件标记渲染,数据是示例值(不含真实仓库信息)。重新生成:

node docs/preview/build-previews.mjs

面板能力

左栏四张卡(描述 / 变更 / 讨论 / 待修改意见),右栏三张卡(检查 / 评审 / 操作),每张独立边框、独立骨架屏:

卡内容
描述PR 正文 markdown,默认整段展示,超长渐变遮罩 +「展开全部」;按行边界截断,未闭合代码围栏自动补齐
变更文件清单(详情自带,零额外请求)+ 按需「加载 diff」;逐文件折叠,默认展开第一个;点行号可就地评论
讨论最近 3 条评审/评论,显示全部 N 条;提交默认 6 条;每条可 + 引用进对话框
待修改意见只收要动手的:非空正文、非 APPROVED 的评审 + 非作者本人的评论;最新在前,每行 fix,卡头 全部 fix N
检查N 项失败 / 共 M 项 汇总;失败项整行红底,逐项 fix,卡头 修复失败项 N
评审评审人与结论徽标(已批准 / 需要修改 / 待评审)
操作请求修改、发 PR 评论(自己的 PR 也能发)、合并后删除源分支开关

面板:卡片分区 + 懒加载 diff

窄面板(。corePlugins.preflight = false,避免基础重置污染宿主全局样式。客户端运行时只依赖宿主提供的 react`。

已知限制

  • Host 路由要重启才注册:session-created-prs 返 404 时,先完整重启 DSH。
  • 浮窗会自己消失:本会话没建过 PR 就不渲染,刻意如此。
  • 最多 12 条:更早的 PR 需要回 GitHub 看(按创建时间倒序,子代理建的新 PR 不会被挤掉)。
  • 单文件 diff 400 行封顶:看全量请点「在 GitHub 打开」。
  • 子代理会话按转写头还原,最深 4 层:子代理建的 PR 会带「子代理」小标一起收进来;血缘依赖子会话与主会话在同一工作区(DSH 默认行为)。
  • 跨重启回填依赖系统 zstd 命令(Node 20 的 zlib 没有 zstd API);缺了会表现为「刚提的看得见,重启后历史 PR 消失」,子代理的 PR 也不可见(血缘同样要读转写头)。
  • 实现细节见 docs/session-pr-channel.md。

历史

本仓库由 dsh-github-flow 裁剪而来:仓库面板、同步设置、Issue 工作台、使用指南与升级提示均已移除,只保留本会话 PR 通道与 Agent 的 github_* 工具集。取数、门禁与交互上的取舍记录在 PROJECT.md。