← 返回列表
未验证
一个 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