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

@ulabe/dsh-conversation-nav

v0.2.0

Published

Conversation position navigator (flat list): a right-edge tick rail with a hover panel listing every user message, click to jump (DeepSeek web-style).

Readme

@ulabe/dsh-conversation-nav

DeepSeek Harness (DSH) 客户端插件:对话位置导航

右侧悬浮按钮打开一个暗黑大纲式导航抽屉,列出当前会话的全部用户消息(打开时自动加载完整历史)。点击任意条目平滑滚动(ease-out)定位到对应消息;Scroll Spy 随对话滚动实时高亮当前可视位置对应的导航项(品牌蓝 + 呼吸动效)。实时更新:AI 生成新内容时底部自动追加条目。

目录结构

dsh-conversation-nav/
├── package.json       # 插件元数据:dsh.bundle(bundle 层)+ dsh.client(浏览器半)
├── cordis.patch.yml   # bundle 层(被 dsh plugin add 识别并应用)
└── lib/
    ├── index.js       # Node 侧入口(no-op apply)
    └── client.js      # 浏览器侧 bundle(唯一实现,手写无构建)

安装(唯一方式:dsh plugin

插件是标准 DSH bundlepackage.json 声明 dsh.bundle.patch),通过官方 CLI 安装:

# 从 npm 安装(正式发布)
dsh plugin --profile web add @ulabe/dsh-conversation-nav

# 或本地 checkout 安装(开发调试,在插件目录内)
dsh plugin --profile web add .

dsh plugin add 会把包加进 profile 的 dsh.profile.bundles(自动 reconcile),随后加载本包的 cordis.patch.yml 层激活插件条目,并通过 dsh.client 声明向浏览器服务 UI bundle。装完重启 dsh 生效

卸载:

dsh plugin --profile web remove @ulabe/dsh-conversation-nav

兼容性与已知限制

  • API 版本耦合:使用 DSH 客户端 API ctx.slotsshell.overlay 注入)、ctx.sessions.binding()Session.loadOlder()ConversationSnapshot.nodes。DSH 大版本升级后若这些 API 变化,插件可能失效,需按新版本适配。
  • 事件窗口:快照只包含已加载的事件窗口,插件会在抽屉打开时自动 loadOlder() 直到加载完整历史。
  • 跟随当前会话:导航仅反映当前打开的会话;切换会话自动跟随。
  • 无需构建lib/client.js 是手写的 bundle(window.__ModuleLoader__.load 格式),改完直接生效(重启)。

常见问题

| 问题 | 处理 | |---|---| | 改了代码/样式但重启后没变化 | 完全退出 Harness(含托盘)再启动;或 Ctrl+Shift+R 强刷 | | dsh plugin add 后按钮没出现 | 确认包声明 dsh.bundle 且已进入 profile bundles;dsh --profile web --dump-config 应看到插件层;重启 | | 需要 dsh CLI | npm install -g @deepseek-ai/dsh 或源码版 pnpm dsh;桌面打包版不内置 CLI | | DSH 升级后按钮消失 | 检查控制台错误;确认 dsh-client-runtime API 未变,必要时适配 lib/client.js | | 想要不跟随当前会话/调整样式 | 编辑 lib/client.js(样式在文件顶部 css 数组,逻辑在 makeNavPanel),重装后重启 |