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

@piece-weaver/dsh-session-manager

v0.6.2

Published

DSH web plugin: session archive management (view / unarchive) and permanent session deletion, in the dsh-better-sidebar plugin style.

Readme

dsh-session-manager

为 DeepSeek Harness(dsh)补齐会话归档管理会话彻底删除的 web 插件。官方已有「归档」动作, 本插件补上缺失的另一半:查看已归档会话、移出归档,以及官方完全没有的彻底删除会话(持久化产物零残留)。 形态对齐社区范本 dsh-better-sidebar:宿主半 + 客户端半、 bundle 声明、浏览器信任围栏、i18n。

功能与用法

入口只有一处:设置 →「会话管理」(无侧边栏按钮、无弹窗、无二次点击)。界面 1:1 对齐官方「模型」分区的 排版与 token,深浅色/换肤自适应。

  • 全部会话:按工作区各自成卡(卡片头 = 折叠箭头 + 工作区名 + 会话数,可展开/折叠,状态在本次会话内保持)。 子代理会话不占顶层行,改在父行显示「N 个子代理 · M 个运行中」。
  • 已归档会话:单张卡片列出全部归档会话,行内「移出归档」恢复其原工作区位置。
  • 行操作:归档(官方动作)、移出归档、删除。点击会话行直接打开该会话并关闭设置。
  • 删除:独立确认弹窗(含会话名与「无法撤销」,Esc / 遮罩 / × 均可取消);确认后会话从所有视图即时消失、 磁盘产物零残留、重启不复现。运行中/子代理会话拒绝删除,已打开(resumed)的会话在点击前即被禁用并说明原因。
  • 能力检测:启动时探测所需运行时接缝,DSH 版本不兼容时对应操作降级为禁用 + 可见告警,绝不静默。

安装

前置:已安装 dsh(dsh web 可启动)、Node ≥ 20、pnpm ≥ 10。

dsh plugin --profile web add @piece-weaver/dsh-session-manager

然后硬刷新浏览器(Cmd/Ctrl+Shift+R)。客户端 bundle 由 dsh-client-hmr 轮询同路径文件变化并热重载; 安装新版本(node_modules 解析路径变化)或插件含宿主半改动时,重启一次 dsh web 后再刷新。

从本地源码开发:

pnpm install && pnpm build          # 在插件仓库内
# 然后在 ~/.dsh/profiles/web/package.json 写:
#   "@piece-weaver/dsh-session-manager": "link:<插件仓库绝对路径>"
cd ~/.dsh/profiles/web && pnpm install

支持版本与安全

  • 测试于 DSH 0.1.2-rc.1peerDependencies 钉住 @deepseek-ai/*@^0.1.2-rc.1)。
  • 宿主路由 /session-manager/api/* 与官方 /api 网关共用同一套浏览器信任围栏:Host 头 loopback / webRuntime.trustedHosts 通过;跨站标记(sec-fetch-site: cross-site / Origin 不匹配)一律 403
  • 运行中会话、子代理会话删除被拒绝(无公开拆解通路,强删会损坏在途状态)。
  • 插件是可运行在你权限下的三方代码,安装前请审阅源码。

开发

pnpm typecheck   # tsc --noEmit
pnpm build       # tsc 声明 + tsdown(宿主 ESM + 客户端 CJS 工厂)
pnpm test        # vitest:宿主业务逻辑 / 能力检测 / 信任围栏 / 客户端组件与图标适配 / 产物断言
src/index.ts        宿主半入口(cordis 插件,注册 /session-manager/api 路由)
src/api.ts          删除 / 移出归档 / 存活集业务逻辑(含拒绝与幂等)
src/capabilities.ts 运行时接缝能力检测
src/trust-fence.ts  浏览器信任围栏(与 better-sidebar 同源)
src/wire.ts         JSON 信封与请求体上限
src/client/         客户端半:入口注册、会话管理分区、作用域样式、导航图标适配
tests/              单元测试
docs/specs/         需求 spec(SDD;需求与验收的唯一权威)
docs/decisions/     ADR-001 运行时接缝 · ADR-002 HTTP 路由 · ADR-003 导航图标 DOM 适配 · ADR-004 删除接缝改用 stat
docs/upstream/      上游 `session.delete` 提案说明(供 deepseek-harness 采纳)

实现说明与局限

  • 不修官方包:不改写 npm root -g 下任何文件;能力经 cordis 插件装载与公开服务面实现。
  • 依赖的非公开接缝(adr-001 / adr-004):0.1.2-rc.1 无公开的「移出归档」与「删除」。宿主半用 registry 内部 方法(enqueueOperation/requireState/setState)移出归档;删除读存储头访问器(句柄式 sessionPersistence.stat(id) → { header },兼容旧 inspect(id) → { meta })+ locate(header) 定位产物 + fs 移除 + 公开 Workspace.detachSession 摘除账目。同名版本存在两种接缝形态,故两条路径都实现并在能力探针 中分别上报;全部接缝以「能力检测 + 版本钉住 + 缺失大声降级」兜底。
  • 已打开会话不可删除:打开会话即 resume agent(可同时多个),无公开 close/teardown 通路;插件用只读 liveness 提前禁用并说明。需删除时先重启一次 dsh web(重启后会话变冷,且未被重新打开即可删除)。 长期根治见 docs/upstream/
  • 投影缓存残留:删除后会话日志目录、归档集、工作区账目即时清理;投影缓存属孤儿残留,重启后自然一致。
  • 导航图标 DOM 适配(adr-003):设置壳对未知分区回落齿轮且无图标扩展点,插件在运行时隐藏齿轮并并列插入 专属 16px 图标(不删除/不替换 React 节点);结构失配时保留齿轮 + 一次性告警,纯视觉影响。

License

MIT