npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-pr-board

v0.11.14

Published

Maintainer PR review queue board for DeepSeek Harness: five-state tracking (waiting on me / waiting on author / ready to merge / merged / inbox), sidebar counters, fullscreen kanban, polling, and back-to-you transition toasts. · 维护者 PR 看板:五状态跟踪(等我行动 / 等作者

Downloads

496

Readme

dsh-pr-board

Maintainer PR review queue board for DeepSeek Harness (DSH). It answers one question: which PRs need me, right now?

一个为 DeepSeek Harness 做的维护者 PR 看板:回答一个问题——现在哪些 PR 在等我?


Why / 解决什么问题

Reviewing PRs is a queue-management problem. GitHub's native views don't tell you: "the author just pushed a fix after my change request — it's back on your plate". This board classifies every PR you're involved in into five states and detects the moment a PR moves back to you.

Review PR 本质是队列管理。GitHub 原生界面无法直接告诉你"作者刚在你 request changes 之后推了新提交,又该你出手了"。本插件把你参与的每个 PR 归入五种状态,并在 PR 回到你手上的一刻提醒你。

The five states / 五种状态

| Column / 列 | Meaning / 含义 | How it's decided / 判定依据 | | --- | --- | --- | | Waiting on me 等我行动 | Your move / 该你出手 | Review requested with no substantive word from you yet; or the author pushed/replied after your last action; or new commits landed after your approval. Your own substantive comment holds the ball with the author — emoji-only / "+1"-style comments don't count on either side | | Waiting on author 等作者行动 | Their move / 等作者 | You (or another maintainer) requested changes and the author has been quiet since; approved but draft or conflicting | | Ready to merge 可合并 | Green light / 绿灯 | reviewDecision = APPROVED, mergeable, not draft — or in a merge queue, or auto-merge armed with nothing blocking (blocked auto-merge waits on the author) | | Merged 已合并 | Done / 完成 | Recently merged PRs you reviewed | | Inbox 新 PR 待分诊 | New & unclaimed | Newest open PRs you haven't touched — one click ("我来 review") adds you as reviewer |

Transition detection: when a PR crosses author → you (author responded, or re-requested your review), you get a toast and the sidebar widget pulses. Status-quo polling keeps the board fresh (interval configurable: 1–30 min).

Issue board / Issue 看板

Each monitored repo gets a second sidebar row (indented, iss tag) with issue counters; clicking it opens a three-column issue board: Waiting on me (the reporter replied after your last comment, or you're assigned/mentioned with nothing from you yet), Waiting on reporter (you hold the last word), and Recently closed (closed within 14 days, regression watch). Third-party comments don't pull a thread back to you — only the reporter's do. Card clicks open or start a review conversation exactly like PR cards.

每个监控仓库在侧边栏多一行缩进的 issue 计数(iss 标签),点开是三列 issue 看板:等我行动 / 等报告者 / 最近关闭。只有报告者的回复会把线程拉回 "等我";第三方评论不会。点卡片同样进入/新建对应会话。

状态迁移检测:当 PR 从"等作者"切到"等你"(作者回复 / 重新 request 你 review)时弹 toast 提醒、侧边栏小部件闪烁;轮询间隔 1–30 分钟可配。

Requirements / 依赖

  • The DSH host machine has the GitHub CLI (gh) installed and authenticated (gh auth login). The plugin shells out to gh for search + GraphQL queries, so it respects your gh token scopes and GitHub's rate limits. If gh is missing or logged out, the board shows a setup hint instead of raw errors.
  • DSH web profile (GUI). This plugin is a web-profile client plugin.

DSH 宿主机上需安装并登录 gh;插件通过 gh 的 search + GraphQL 查询取数, 速率限制遵循你 gh token 的配额。若 gh 缺失或未登录,看板会显示安装/登录 指引而不是原始报错。

Install / 安装

dsh plugin --profile web add github:delock/dsh-pr-board

(or publish to npm and dsh plugin --profile web add dsh-pr-board)

Then restart the web profile and refresh the page.

Configure / 配置

  1. Click the PR Board widget at the bottom of the sidebar (or press Alt+P). On first open you're prompted to add a repository (owner/name, e.g. octocat/hello-world).
  2. Multiple repositories: the widget lists every monitored repo with its own Me / Author / Ready / Inbox counters. The + button in the widget header (or on the board's tab bar) adds another repo; hovering a tab in the board shows an × to stop monitoring it (removal lives inside the board only). Repos are identified by short name, falling back to the full owner/name when two monitored repos share a name.
  3. GitHub username — set via Settings; leave blank to auto-use the gh login account (one identity across all repos).
  4. Review workspaces — also in Settings, configured per repo with no global default: every repo carries an explicit workspace, and repos without one open their cards on GitHub. When set, clicking a PR card jumps into the matching conversation inside DSH. Sessions are matched through a local PR→session binding table first, then by title search (repo#N, which works once a session's LLM-generated title exists); a miss creates a new session in the configured workspace, binds it, and — unless auto-prompt is off — sends it a first message naming the PR plus the board's own snapshot (state, CI, flags), asking it to summarize what has recently happened on the PR (events and standing, not a code walkthrough) and then ask what you'd like to do. That first message is also what generates the session title. With no workspace set (or via the per-card ↗ button) cards open GitHub.
  5. Config is shared across devices: account-wide fields (repos, username, review workspace, auto-prompt, inactivity window) sync to the host (~/.dsh/pr-board.config.json); each browser keeps only its poll interval. A new device picks the config up on first load; edits converge on every poll.

配置跨设备共享:账号级字段(仓库列表、用户名、review workspace、自动 prompt、不活跃天数)同步到 host(~/.dsh/pr-board.config.json),每个浏览器 只保留自己的轮询间隔。新设备首次打开即继承配置,改动在每次轮询时收敛。

How states are computed / 状态如何计算

For every open PR you have reviewed / commented on / been requested on, the host fetches via GraphQL: reviewDecision, mergeable, draft flag, last commit time, and the full review + comment timeline. Then:

  • Your last action time vs the author's last activity time → who moved last
  • Your approval timestamp vs the last commit timestamp → did new code land after your OK
  • Other maintainers' change requests count as "waiting on author" too

对每个你参与过的 open PR,host 端经 GraphQL 取 reviewDecision、mergeable、 draft 标记、最后提交时间及完整 review/评论时间线,据此计算"双方最后动作"、 "批准后有无新提交"、"其他 maintainer 是否提过修改意见"等,得出最终分类。

Privacy / 隐私

All queries run locally through your own gh CLI. No third-party service, no telemetry, no data leaves your machine except GitHub API calls.

所有查询经本机 gh CLI 完成,无第三方服务、无遥测。

License / 许可

MIT