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

@qt4798/dsh-sidebar-groups

v1.0.2

Published

DSH web GUI sidebar enhancement: a toggle button between the workspace search and the view-options (sort) controls switches the sidebar into a grouped view — single-project dropdown plus Pinned/Today/Yesterday/Older accordions — and adds hover actions (pi

Readme

@qt4798/dsh-sidebar-groups

给 DeepSeek Harness Web GUI 的标准对话页面侧边栏加一个可切换的分组视图插件

在工作区区头的搜索和排序中间新增一个切换按钮,点击后将侧边栏切换为 单个项目下拉 + 置顶/今天/昨天/更早 四组手风琴的展示;每个会话行 右侧悬停显示 置顶/生成标题/修改备注/归档 四个小按钮。

状态(置顶、备注、选中项目、显示模式)全部持久化在 host 端:同一台 DSH 主机下的所有设备(桌面 Web、移动端抽屉)自动同步。

截图

分组视图总览 —— 区头切换按钮(搜索与排序之间)、项目下拉(标题 + 地址)、置顶/今天/昨天/更早 手风琴:

分组视图总览

项目下拉展开 —— 每个项目显示标题 + 完整地址,底部"未分组"虚拟桶,当前项带 ✓ 高亮:

项目下拉展开

会话行悬停操作 —— 悬停时右侧浮现 置顶/生成标题/修改备注/归档 四个动作按钮;运行中的会话行前置旋转加载动画 + 脉冲描边:

会话行悬停操作

功能

| 区域 | 功能 | | --- | --- | | 切换按钮 | 位于工作区区头"搜索"和"排序(视图选项)"之间,点击在 原生视图分组视图 之间切换。深色/浅色/自定义主题自动跟随。 | | 项目下拉 | 顶部单个项目下拉切换,每个项目显示 标题 + 项目地址,底部包含"未分组"虚拟桶。菜单通过 position: fixed 渲染进 body,绝对不放裁剪;滚动窗口时自动跟随重定位。 | | 未分组 | 收纳不属于任何已注册工作区的会话(虚拟桶,无实际目录)。选中后正常浏览,不提供新建会话入口(新建必须有目录)。 | | 分组手风琴 | 选中项目的会话按 置顶 / 今天 / 昨天 / 更早 四组展示(按 updatedAt 分日;置顶会话在置顶组和原时间组双显示)。每组可折叠。 | | 会话行按钮 | 默认完整显示会话标题(支持换行),悬停时标题省略、右侧浮现四个动作按钮:置顶(Pin)—— 已置顶的会话在时间分组里右侧常驻实心图钉、置顶组内隐去生成标题(Regenerate)—— 调用官方 sessionTitle.refresh,显式重生成覆盖自动标题修改备注(Edit note)—— 行内编辑备注文本归档(Archive)—— 复用 DSH 原生归档接口 | | 左侧选中条 | 只有当前打开的会话左侧显示一条笔直的 3px 主题色竖条,点击切换后条跟随移动。 | | 运行中动画 | 正在执行任务的会话行左侧显示旋转加载动画,整行呼吸脉冲描边。 | | 消息统计 | 每行下方显示"X 前 · N 条消息"(会话级 user + assistant 消息总数,pi-web 风格语义)。Host 侧实时统计。 | | 搜索联动 | 分组视图下区头的搜索关键字会即时过滤手风琴中的会话标题。 | | 多端同步 | 置顶 / 备注 / 选中项目 / 视图模式 存 host(~/.dsh/sidebar-groups/state.json),客户端每 5s 轮询 + 聚焦时刷新 + 本地操作后立即刷新。 | | 移动端 | 同一套注入在移动端侧边栏抽屉(dsh-client-ui-mobile-adapt)内同样生效;触屏设备按钮常显。 | | 样式隔离 | 所有 class 使用 dsg-* 前缀,配色全部走 DSH 官方 --dsw-alias-* 主题 token,不破坏任何已有插件(data-plugin 标记 + 反认领自愈)。 |

安装

# 推荐:从 npm 一键安装
dsh plugin --profile web add @qt4798/dsh-sidebar-groups@latest

# 本地开发(link 安装)
dsh plugin --profile web add link:/path/to/dsh-sidebar-groups

装完完整重启 dsh web,打开标准对话页面,工作区侧边栏区头的搜索和排序中间即出现切换按钮。

要求 dsh >= 0.1.1-rc.1

更新日志

版本记录见 CHANGELOG.md

开发

pnpm install
pnpm build        # tsc 声明 + tsdown 构建 → lib/index.js + lib/client.js
pnpm typecheck    # 类型检查

架构

src/
├── index.ts           # host 半区(cordis 插件)
│                      #   - SidebarGroupsStore(JSON 持久化、串行变更队列、防抖原子写)
│                      #   - /api/sidebar-groups/* 路由(state / pin / note / select / view-mode / prune / title-regenerate / counts)
│                      #   - title-regenerate 调官方 sessionTitle.refresh
└── client/
    └── index.tsx      # client 半区(浏览器闭包产物)
                       #   - DOM 注入切换按钮(锚点 aria-label="视图选项" / "View options",中英文通用)
                       #   - React 渲染分组视图(portal 下拉、手风琴、会话行、悬停按钮)
                       #   - 订阅 ctx.sessions.list / ctx.workspaces.list(实时同步原生浏览器)
                       #   - 样式标签预带 data-plugin + 反认领(防 HMR 卸载误删其它插件样式)

License

MIT