dsh-pr-panel
在界面常驻展示当前会话相关PR的CI与合并状态面板。 适合在研发会话中需要实时跟踪和评审GitHub PR状态的开发者。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zengxiaolou/dsh-pr-panel說明文件
閱讀完整 README ↗dsh-pr-panel

本会话 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 |
|---|---|---|
![]() | ![]() | ![]() |
- 功能:按分支链把同一个功能的 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 也能发)、合并后删除源分支开关 |

窄面板(。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。


