dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
给 DSH 加上定时提醒与延迟发送:一句话到点送达——/later 以你的身份发出,定时面板或 /schedule 发提醒行;关掉网页也准时触发。(定时发送 / 定时提醒 / 延迟发送 / 提醒)
在 DSH 里给自己设提醒:用户自己设、当前对话收到、服务端驱动、跨设备——到点准时送达,即使你关掉了网页。
/later 延迟发送 —— 不开面板,在输入框敲一行就以你的身份稍后发出(演示:逐字输入 /later +5s / +3m / +1h20m,回车后进入倒计时;+5s 那条到点真实送达):
点输入框右侧的 「定时发送」 打开面板。面板以输入框内容作为提醒内容,选好时间后点 「加入 · HH:MM 发送」(未选时间时该按钮不可点)即可;输入框上方随即出现倒计时条。
| 能力 | 说明 |
|---|---|
| 快捷芯片 | 10分钟后 / 1小时后 / 工作时间 一键填充(智能时段可在设置里改) |
| 自定义时间 | 「自定义…」展开日期 + 时间输入框 |
| 发送预览 | 确认前预览到点后收到的样子 |
| 任务列表 | 已设定任务,可单个删除 |
| 取消全部 | 芯片上的取消操作一键清空本会话所有提醒 |
以下写法都认(/schedule、/later 与面板自定义时间共用):
| 类型 | 示例 |
|---|---|
| 相对时长 | +30m · +1h30m · +90s · +1w · 30分钟后 · 半小时后 |
| 当天时刻 | 15:32 · 9点 · 9点半 · 1532 |
| 相对日 + 时刻 | 明天9点 · 后天 10:00 |
| 日期 + 时刻 | 8月21日 15:32 · 2026-08-21 15:32 · 0821-1532 |
只写时刻(如 1532)时,若今天已过会自动顺延到明天(最多 7 天);写了 明天/后天 则按字面理解,该时刻已过会提示改用具体日期;只写月日(如 8月21日)时,今年已过则顺延到明年。
| 命令 | 作用 |
|---|---|
/schedule <时间> <内容> | 创建一条定时提醒(到点出现在对话里) |
/later <时间> <内容> | 延迟发送:到点以你的身份发出该内容 |
/schedule every <周期> <内容> | 周期性提醒(周期 ≥ 5 分钟) |
/schedule 明天9点 提交周报
/later 1532 提醒团队同步进度
模型也可以直接调用用户工具为你创建/查询/修改提醒(user_schedule_create / user_schedule_list / user_schedule_delete / user_schedule_edit)。
输入框上方的倒计时条,每行行尾三个按钮:编辑提醒(就地改内容)、删除提醒(取消该条)、插话发送(立即推给 agent,不等倒计时)。
⚠️ 「插话发送」不是「确认」,点了会马上把提醒内容发给 agent 并唤醒模型;只想取消请点删除。
有活动提醒的会话,行内会出现像素时钟(与「进行中」orb 并存):
| 图标 | 含义 |
|---|---|
| 紫 · 有定时中提醒 | |
| 琥珀 · 下次触发 ≤ 5 分钟 | |
| 红 · 已到期(等待会话空闲派发) |
鼠标悬停可见「下次 15:32 · 3 条任务」;已到期时显示「已到期 · 3 条任务(等待会话空闲发送)」。
定时面板 —— 快捷时段 / 自定义时间 / 已设定任务列表:
待发送 dock —— 输入框上方倒计时条(行内编辑 / 取消;下方即输入框):
到期真实触发 —— 到点后对话里出现「⏰ 定时提醒」消息(关网页也照常触发):
动图演示:
| 创建定时提醒(输入 → 面板 → 加入 → dock) | 到期触发(倒计时 → 收到消息) |
|---|---|
![]() | ![]() |
/later 快捷命令 —— 不打面板,直接在输入框敲一行就以你的身份延迟发送:
/later 延迟发送:把「你现在打的这句话」稍后以你的身份发出去(和定时提醒的区别见这里)。| 动作 | 什么时候生效 | 谁发出 | 你看到 |
|---|---|---|---|
| 输入框 Enter 直接发 | 立即 | 你 | 普通用户气泡 |
定时面板 / /schedule <时间> <内容> | 到点 | 定时提醒 | 定时提醒 · HH:MM · 内容 提醒行 |
/later <时间> <内容> | 到点 | 以你的身份 | 普通用户气泡 |
/schedule不是「延迟发送」:输入框里那行/schedule …一按回车就会立刻发出去(作为一条用户消息),被推迟的只是提醒本身。如果你想要的是「把我现在打的这句话,过会儿当作我亲口发的」,请用/later。
npm 安装(推荐,预构建产物,无需授权):
dsh plugin --profile web add dsh-later
# 重启 dsh web 后生效
或者从源码构建后装入 DSH Web profile:
cd dsh-later
npm install
npm run build
dsh plugin --profile web add "file:/path/to/dsh-later"
# 重启 dsh web 后生效
开发提示:
npm run watch监听src/自动重建并跑形状回归测试,改动即时生效。
提醒内容默认上限 1000 字符。需要更长时,在 DSH 设置 → 插件 → Session Scheduler 开启 allowLongPrompts 并设置 maxPromptChars。
默认开箱即用。可在 DSH 设置 → 插件 → Session Scheduler 调整(保存即时生效,无需重启):
| 字段 | 说明 | 默认 |
|---|---|---|
| 显示定时按钮 | 输入框右侧是否显示定时按钮(隐藏不影响已创建的提醒触发与 dock 显示) | 显示 |
| 单会话任务上限 | 一个会话内最多允许的提醒数 | 100 |
| 允许长文本 | 解除 1000 字符默认下限 | 关闭 |
| 自定义上限 | allowLongPrompts 开启时的字符上限 | 1000 |
| 工作时间 / 午休 / 晚间静默 | 智能时段 5 个 HH:mm 字段,决定快捷芯片与智能排期 | 见设置页 |
进阶:也可以用
cordis.patch.yml在启动期覆盖默认值(如maxSchedules),见docs/与 schema。
dsh-later 把「全会话定时任务摘要」作为公共数据面暴露出来
(issue #17),其它客户端插件
(如 dsh-group-status)据此在分组/侧栏聚合显示定时状态,无需自己解析
userSchedules 投影,也不会与行内 badge 漂移。
消费方先在 package.json 声明外部模块:
{ "dsh": { "client": { "platform": "web", "external": ["dsh-later"] } } }
然后在客户端 factory 里 require('dsh-later/client'):
const { getScheduleSummaryStore, summarizeScheduleGroup, useScheduleSummary } = require('dsh-later/client')
// 1) 直接读 store:会话 id → { count, pausedCount, nextAt, state }
const store = getScheduleSummaryStore() // dsh-later 未加载时为 undefined
const summary = store?.getSnapshot() ?? new Map()
// 2) 按分组聚合(折叠分组徽标直接用它)
const group = summarizeScheduleGroup(summary, groupSessionIds)
// → { sessions, count, pausedCount, nextAt?, state? }
// 3) React 组件内订阅(store 迟到也会自动重渲染)
const live = useScheduleSummary()
| 字段 | 含义 |
|---|---|
count | 任务数(含暂停项) |
pausedCount | 暂停项数量(暂停项计入 count,但不参与 nextAt) |
nextAt | 最早触发时刻(epoch ms);全部暂停时为 undefined |
state | scheduled / urgent(≤5 分钟)/ overdue(已到期未派发),按快照时刻判定 |
契约要点:
sessionIds 查表即可。sessions.list 订阅、30s 状态 tick 与 60s session.list 读 RPC(仅页面可见时)。undefined(dsh-later 未安装/未启用时静默降级)。以下内容面向开发者与维护者,已移出本 README:
prd.md、docs/../references/dsh-schedule-analysis.md../references/dsh-sleep-send-analysis.mdMIT