🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

ericsantos/dsh-rush-hour

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
未验证

一个 DeepSeek Harness Web 插件,在模型选择器中于 DeepSeek…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/20 · 已提供中文文档

DeepSeek Harness Web 插件在模型选择器中的 DeepSeek 提供商旁边显示一个 UTC 高峰时段状态点(绿色/琥珀色/红色),基于 AI 使用高峰时段。

综合分
26.3
GitHub 分
26.3
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ericsantos/dsh-rush-hour
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · ui
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 37 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/25(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-rush-hour

一个 DeepSeek Harness Web 插件,在模型选择器中于 DeepSeek 提供商旁显示一个高峰时段状态圆点,严格按照 UTC 时间对照 AI 使用高峰窗口进行评估。概念来自
ericsantos/ai-rush-hour。

- 🔴 高峰(繁忙) — 当前 UTC 时间处于 AI 使用高峰窗口内
(默认“中国”预设:UTC 01:00–04:00 和 06:00–10:00)。
- 🟡 警告 — 不在窗口内,但 30 分钟内将开启一个窗口。
- 🟢 非高峰 — 其他所有时间。

该圆点出现在聊天的模型选择器中:菜单分组标题里每个提供商名称旁,以及编辑器触发器上当前模型旁(仅当当前提供商为 DeepSeek 时)。路由 id 或显示名称不匹配 deepseek(不区分大小写)的提供商不会显示指示器。

截图占位符:添加一张展示模型菜单中 DeepSeek 分组旁圆点的图片

工作原理

该徽标纯粹是浏览器端的展示。它每 30 秒将当前 UTC 时间与内置的高峰窗口进行比对,并使用 harness 语义状态令牌(--dsw-alias-state-*)为一个小圆点着色。它计算的任何内容都不会进入模型请求或会话日志。

该插件向模型座位的 conversation.input.model.providerBadge 槽位贡献一个条目——这是由 ui-model-selection 声明的一个新的 list 类型、会话作用域的槽位——因此其他提供商状态插件可以共享同一个位置。

仓库结构

dsh-rush-hour/
├── README.md               # 本指南
├── LICENSE                 # MIT
├── package/                # 插件包(复制到 packages/client/)
│   ├── package.json        #   @deepseek-ai/dsh-client-ui-rush-hour
│   ├── tsconfig.json       #   继承 tsconfig.base.client.json
│   ├── tsdown.config.ts    #   客户端打包(clientBundle)
│   ├── src/
│   │   ├── index.ts        #   node 部分(有意留空)
│   │   ├── invariant.ts    #   invariant 配套文件
│   │   └── client/         #   浏览器部分:rush.ts、RushBadge.tsx、
│   │                       #   index.ts(apply)、locales.ts、slots.ts
│   └── tests/              # 单元 + 组件 + 接线测试套件(100% 覆盖率)
└── host-patch/
└── host-changes.diff   # 插件所需的主机端更改

该插件不能独立工作:徽标渲染在 conversation.input.model.providerBadge 槽位内,而该槽位必须存在于目标 harness 的 ui-model-selection 包中。host-patch/host-changes.diff 恰好包含这些更改(6 个主机文件 + 1 个测试文件)。

安装到另一个 DeepSeek Harness

要求:一个位于 0.1.0-rc.7 的 deepseek-harness 检出(补丁基线;其他版本可能需要下方的手动回退方案)、Node
^22.19 || >=24,以及可正常运行的 pnpm install(Web 配置使用
packages/bundle/web-app)。

1. 复制该包

cd sh
cp -r /package packages/client/ui-rush-hour

2. 应用宿主补丁

从你的检出根目录执行:
sh
git apply /host-patch/host-changes.diff

该补丁仅涉及:

| 文件 | 变更 |
| --- | --- |
| packages/client/ui-model-selection/src/client/slots.ts | 在 SlotMap 中新增 conversation.input.model.providerBadge 插槽(列表,会话作用域) |
| packages/client/ui-model-selection/src/client/index.ts | 在模型座位的 register(children)上声明子插槽 |
| packages/client/ui-model-selection/src/client/ModelSelect.tsx | 在当前模型(触发器)旁以及菜单分组标题旁渲染该插槽,包裹在 SessionProvider 中 |
| packages/client/ui-model-selection/tests/model-select.client.spec.tsx | renderSlot/SessionProvider 桩 + 徽标测试 |
| packages/bundle/web-app/cordis.patch.yml | 在 web profile 的 dsh.client 名单中新增 ui-rush-hour 行 |
| packages/bundle/web-app/package.json | @deepseek-ai/dsh-client-ui-rush-hour 依赖 |
| tsconfig.client.json | 客户端聚合中的项目引用 |

3. 安装依赖
sh
pnpm install

4. 构建客户端 bundle
sh
pnpm --filter @deepseek-ai/dsh-client-ui-rush-hour bundle
pnpm --filter @deepseek-ai/dsh-client-ui-model-selection bundle

若不执行这些操作,服务器会在
/plugins/@deepseek-ai/dsh-client-ui-rush-hour/client.js 上返回 404,启动会大声失败。

5. 重新生成客户端目录(doc-sync/CI 门禁)
sh
pnpm run gen-client-catalog

仅当你的仓库运行 doc-sync/verify-client-catalog 时才严格需要。

6. 重新构建并重启 web 服务器
sh
pnpm run build:web

组合变更仅在服务器重启后才会生效(客户端插件表在启动时扫描)。如果你使用
pnpm dsh web --port 8000 --trusted-host  运行 GUI,请停止它并用相同命令重新启动,然后硬刷新页面。

7. 验证

1. 打开一个会话以及 composer 的模型选择器。
2. 打开模型菜单:名称/id 包含 deepseek 的分组显示圆点;其他分组不显示任何内容。
3. 当当前 provider 为 DeepSeek 时,触发器显示圆点。
4. 通过圆点的 aria-label/title 检查状态(绿色表示非高峰,琥珀色表示距窗口 30 分钟内,红色表示处于高峰窗口内)。

快速 HTTP 检查(启动图必须包含该行,且 bundle 必须返回 200):
sh
curl -s http://127.0.0.1:8000/ | grep -c rush-hour        # 预期为 1
curl -s -o /dev/null -w '%{http_code}\n' \
http://127.0.0.1:8000/plugins/@deepseek-ai/dsh-client-ui-rush-hour/client.js  # 200

测试
sh
pnpm run test:gui    # 客户端 + 宿主测试套件
pnpm exec vitest run packages/client/ui-rush-hour packages/client/ui-model-selection

两个包均达到 100% 覆盖率(语句/分支/函数/行)。如果你的 CI 运行 web 快照(test:web),此变更会改变可见输出
(触发器上的徽章)——有意刷新 goldens:
sh
DSH_SNAPSHOT=refresh pnpm run test:web

该补丁还更新了 apps/web/tests/scaffold.ts 中的 normalizeAria,加入了一个
{{rush}} 令牌,这样阶段标签(会随挂钟时间变化)就不会让 goldens 对时间敏感。

卸载

1. 从 packages/bundle/web-app/cordis.patch.yml 中移除 ui-rush-hour 行,
并从 packages/bundle/web-app/package.json 中移除该依赖。
2. rm -rf packages/client/ui-rush-hour。
3. 还原宿主补丁:git apply -R /host-patch/host-changes.diff。
4. pnpm install && pnpm run gen-client-catalog。
5. 重启服务器并重新加载。

已知限制

- 时间窗口固定为中国预设。 客户端插件启动接线尚未将 cordis.yml 中的
config 传递到浏览器端,因此时间窗口是常量。评估已经接受任何
RushInterval[];只是缺少配置接口(us/自定义间隔会在配置接线存在后加入)。
- 徽章仅存在于模型选择器内部。 其他界面上的提供商名称(例如
设置 → 模型)尚未承载该插槽;在那里添加它意味着要在该界面上声明相同的洞。
- 无后端或状态:该插件是纯客户端的(挂钟时间 + 时间窗口)。

如果补丁失败

host-changes.diff 是针对 0.1.0-rc.7 生成的。如果 git apply 被拒绝,
请手动重新创建更改:

1. ui-model-selection/src/client/slots.ts —— 追加:
ts
export interface ProviderBadgeOwnerProps {
provider: string
name: string
}

declare module '@deepseek-ai/dsh-client-ui-slots' {
interface SlotMap {
'conversation.input.model.providerBadge': {
kind: 'list'
scope: 'session'
owner: ProviderBadgeOwnerProps
}
}
}

2. ui-model-selection/src/client/index.ts —— 在 conversation.input.model
座位的 slots.register 上,添加子项:
ts
children: {
'conversation.input.model.providerBadge': { kind: 'list', scope: 'session' },
},

3. ui-model-selection/src/client/ModelSelect.tsx —— 从
@deepseek-ai/dsh-client-ui-slots 导入 PropsRenderSlots,将
& PropsRenderSlots 添加到 props,
并解构 renderSlot/SessionProvider。在两处渲染包裹在
SessionProvider 中的插槽:触发器上 modelLabel 旁边(使用
currentChoice 组),以及菜单中每个组标题内部(使用
group.id/group.name 作为 { provider, name } 所有者)。

4. packages/bundle/web-app/cordis.patch.yml —— 在 insert 块内,
紧挨着 ui-model-selection 行,添加:
yaml
- id: ui-rush-hour
name: '@deepseek-ai/dsh-client-ui-rush-hour'

5. packages/bundle/web-app/package.json —— 在 dependencies 中:
json
"@deepseek-ai/dsh-client-ui-rush-hour": "workspace:^",

6. tsconfig.client.json —— 在 references 中:
json
{ "path": "./packages/client/ui-rush-hour" },

故障排除

- 启动失败 / 错误页面 — 插件包未构建。请运行第 4 步中的两个
bundle 命令并重启服务器。
- 徽章未出现 — 确认启动图中包含该行
(curl ... | grep rush-hour);确认当前会话已选择 DeepSeek
提供商/模型;并确认你正在查看模型选择器
(而非设置 → 模型,后者尚未承载该插槽)。
- Web 快照在不同时间点中断 — 应用 {{rush}} 规范化(在
补丁中)并运行 DSH_SNAPSHOT=refresh。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群