Skip to content
dsh.fish
Bundle

offpeak-panel

错峰任务队列面板:高峰/空闲状态徽章、队列列表(拖拽排序/删除)、高峰区间与冗余量设置。宿主侧通过 webServer 提供 /offpeak/api JSON 接口,客户端同源 fetch 展示。

Source
GoldenShit233
License
MIT
Updated
Updated 19 days ago

Readme

# offpeak-panel — 错峰任务队列(DeepSeek Harness 插件)

高峰时段收到较大的非即时任务时不直接执行:先 `ask_user_question` 核对任务细节、细化拆分后自动存入错峰队列,空闲时段由全局调度器自动派发回原会话执行。附右上角可拖拽的悬浮队列面板。

## 功能

- **任务入队工具**(全局注册,任何会话可用):
  - `offpeak_queue_task` — 存入细化后的任务计划
  - `offpeak_queue_status` — 查看队列 / 按 id 删除
- **错峰策略提示词**:收到任何需要执行的工作任务(无论大小、无论高峰与否)→ 先 `ask_user_question` 确认细节 → 拆分子任务 → 自动入队(无需用户声明「排队」)。例外:执行调度器派发的排队任务、用户明确要求立即执行、纯问答无需产出的交互。
- **全局调度器**:每分钟检查,空闲时段(北京时间非高峰窗口,可自定义)自动把 `waiting` 任务批量派发回 owner 会话执行(`[OFF-PEAK QUEUED TASK EXECUTION]`)。
- **悬浮面板**:
  - 会话头「错峰队列」开关按钮(显示等待数)
  - 右上角可拖拽悬浮窗:高峰/空闲徽章、北京时间、队列列表(拖拽排序 / ↑↓ / 删除)、高峰区间与冗余量设置(生效窗口 = 区间 ± 冗余,重叠自动合并)

## 安装

```bash
dsh plugin --profile web add github:GoldenShit233/offpeak-panel
```

本地安装:

```bash
dsh plugin --profile web add file:/path/to/offpeak-panel
```

安装后**重启 `dsh web`** 生效(需要 pnpm 可用;`dsh plugin` 会将其加入 `dsh.profile.bundles`)。

## 数据文件(会话工作区内)

- `.offpeak-queue.json` — 队列(只含等待任务,派发后自动清理)
- `.offpeak-config.json` — 高峰区间与冗余量配置(面板「设置」中修改)

## 结构

```
offpeak-panel/
├── package.json          # dsh.bundle.patch + dsh.client(web) 声明
├── cordis.patch.yml      # 插件行挂载
└── lib/
    ├── index.js          # 宿主半部:工具 + 策略 + 调度器 + /offpeak/api/* JSON 路由
    └── client.js         # 浏览器半部:会话头开关 + 悬浮面板(手写 module-loader bundle)
```

## 许可

MIT

Install

dsh plugin --profile web add github:GoldenShit233/offpeak-panel

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source