dsh-deepseek-status-pill:在 DSH Desktop 顶栏挂一盏服务状态指示灯

前言

在 DSH 上开发或运维智能体时,常遇到一种情况:任务跑不动了,才想起来去看 DeepSeek 服务状态。浏览器打开状态页是一步额外操作,而且状态页是网页,不适合常驻。dsh-deepseek-status-pill 把这件事前置到 Desktop 顶栏:菜单右侧常驻一个圆角胶囊,长期显示 DeepSeek 服务是否正常,需要细节时悬停或键盘聚焦即可展开。它不抓取状态页 HTML,只订阅官方公开的 Atom 源,零依赖、装完即用。

本文按「先讲是什么,再讲怎么装、怎么用,最后说限制」的顺序介绍这个插件。资料来自其 GitHub README 与 package.json,以及社区目录条目页;涉及版本、接口、配置的地方均以原文为准。

这是什么

dsh-deepseek-status-pill 是一个 DeepSeek Harness Desktop 顶栏的状态指示插件,由 Vip4pt 维护,分类为客户端。它在「应用」「编辑」菜单右侧显示一盏指示灯与当前状态文字;悬停或键盘聚焦时展开详情面板,展示最新故障、影响组件、数据来源与读取错误。

它解决的是一个「看见」的问题:状态异常时不需要切窗口查网页,直接看顶栏即可;状态读取失败时也有明确的降级表现,不会把「没读到」误显示成「正常」。

社区目录条目显示该插件星标为 0,许可证为 MIT。

核心能力

  • 状态指示:正常为绿色,故障或状态读取失败为黄色并带呼吸光晕,首次加载为灰色。
  • 详情面板:胶囊与面板之间无空隙,指针移动不会中断展开;Esc 立即关闭。
  • Atom 订阅:数据来自 DeepSeek 状态服务的公开 Atom 源(https://status.deepseek.com/feed.atom),不抓取状态页 HTML,不调用私有接口。
  • 失败降级:上游不可达时仍显示上一次成功快照,面板同时给出错误信息与上次成功时间。
  • 宿主一致:只使用 --dsw-alias-* 主题令牌,明暗主题跟随宿主;prefers-reduced-motion 下关闭光晕。
  • 零依赖:无第三方运行时依赖,不 import 任何 Harness Client 包,也不依赖 React。
  • 无配置:不用填 API Key、地址或轮询间隔。

状态模型

判定依据是 Atom feed 最新一条条目的 Status: 字段,插件只以最新一条判定,resolved 视为已恢复。

胶囊状态 指示灯 胶囊文字 判定条件
正常 绿色 服务正常 最新条目 Status: 为 resolved,或 feed 为空
故障 黄色(呼吸光晕) 服务异常 最新条目仍为 investigating / identified / monitoring / scheduled 等未结束状态
读取失败 黄色(呼吸光晕) 状态获取失败 Host 拉取或解析失败,或页面无法访问 Host 路由
首次检查 灰色 检查中… 首个快照尚未返回

Status: 字段缺失时,条目更新时间在 12 小时内按「故障」处理,否则按「正常」处理:宁可短暂偏黄,也不把未结束的故障显示为绿色。

安装与启用

插件市场与 npm 入口依赖社区目录收录;目录尚未检索到时,README 提供了插件市场、插件发现、命令行和源码安装四种方式。下面列出前三种。

插件市场(Desktop),在 Desktop 内操作:

1、打开 插件 页,进入 插件市场(dshmarket)。
2、搜索 DeepSeek 服务状态。
3、在卡片上安装。

插件发现(Discover),当市场没收录时使用。先添加索引源,再搜索同一张卡片安装:

1、进入 插件 → 发现 → 索引源。
2、添加 https://cdn.jsdelivr.net/npm/dsh-plugin-catalog/index.json。
3、再搜索并安装。

命令行,用于写进目标 profile(<profile> 按实际替换)。注意 dsh plugin 写入的是目标 profile,不影响 Desktop 应用自身管理的 profile:

dsh plugin --profile <profile> add dsh-deepseek-status-pill

源码安装方式在 README 的「安装」一节给出,包含克隆地址与 {"action": "install_bundle", "target": "..."} 的 Plugin Manager 操作。环境要求:宿主为 DeepSeek Harness / DSH dsh >= 0.2.1-rc.5(见 package.json 的 engines.dsh),操作系统为 Windows Desktop,且网络可访问 https://status.deepseek.com/feed.atom。

典型用法

装完后顶栏立即出现状态胶囊,无需额外配置。日常操作如下:

操作 结果
悬停胶囊 展开详情面板
键盘 Tab 聚焦胶囊 展开详情面板
指针移出 / 失焦 收起详情面板
Esc 立即关闭详情面板

详情面板包含:整体状态、最新事件标题、事件状态、事件更新时间、影响组件、事件说明、数据来源与更新时间;读取失败时额外显示错误信息与上次成功时间。

工作原理与安全

插件分 Host 半与浏览器半。Host 半由 index.js 承担:只读订阅 Atom feed,解析 <entry> 的 title / updated / id / link / summary,从 summary 提取 Status: 与 Affected components:;上游请求 10s 超时、响应体上限 512 KiB,45s 快照缓存并通过 single-flight 合并并发请求,失败时保留上次成功快照,响应携带 state: "error"、error.message 与 lastSuccessAt。数据流如下:

GET https://status.deepseek.com/feed.atom   ← Host 半拉取并解析(Atom)
        │
        ▼
GET /deepseek-status/feed                    ← 同源路由,Host 半缓存 45s
        │
        ▼
顶栏胶囊 + 悬停/聚焦详情面板

浏览器半由 client.js 承担:每 60s 轮询 Host 路由,失败后 15s 重试;页面不可见时暂停,重新可见时立即刷新。胶囊定位到 Desktop preload 的 [data-windows-menu] 宿主右边缘右侧 10px,语言切换、侧栏收起与窗口缩放时重新定位,右侧空间不足时自动隐藏。胶囊与面板均声明 -webkit-app-region: no-drag,不阻塞窗口拖动。

安全方面,同源路由由 dsh-host-webserver 承载,该服务器本身不带来源策略,校验在插件内完成。请求必须同时满足:携带自定义头 x-dsh-deepseek-status: 1(非简单头,跨站请求会触发预检);以及来自本来源,即存在 Origin 时其 host 必须等于 Host,同源 GET 不发送 Origin 时校验 Sec-Fetch-Site,并由 SameSite=Strict 的 dsh-auth-* 会话 Cookie 兜底。不满足条件的请求返回 403,非 GET/HEAD 返回 405,响应带 Cache-Control: no-store;上游请求只访问固定的 Atom 地址,服务器只绑定 127.0.0.1。

适用场景与注意事项

适合在 Windows Desktop 上常驻运行、希望第一时间感知 DeepSeek 服务异常的用户。它适合「常驻看状态」而不是「告警通知」的用法。

需要注意几点。插件以当前 dsh 进程的权限运行,安装前应先检查源码与 MIT 许可证。状态胶囊仅适用 Windows Desktop;macOS Desktop 与浏览器页面不存在 Windows 顶栏,插件在这些环境保持静默,不渲染任何元素,也不报错。状态判定完全依据第三方 Atom 源,源本身未签名,也不提供组件级实时可用性;事件时间按浏览器本地时区显示。插件市场当前不支持原地升级,新版本会显示可更新,用户需卸载后重新安装。修改已安装插件的 index.js / client.js 后,需要先移除再安装或重启应用,仅覆盖文件不会热更新。

目录页与仓库

插件目录页:https://www.skillhub.cn/plugins/Vip4pt/dsh-deepseek-status-pill

源码仓库:https://github.com/Vip4pt/dsh-deepseek-status-pill

社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜