feat(schedule): add durable after reminders
This commit is contained in:
@@ -20,6 +20,10 @@ An unattended coding agent driven through the Python SDK and JSON-RPC. See the [
|
||||
|
||||
A self-referential agent that can inspect and change its in-memory Cordis plugin tree. See the [web-cordis example reference](web-cordis/README.md).
|
||||
|
||||
## web-schedule
|
||||
|
||||
An opt-in Web overlay for durable, Session-local reminders. It supports positive whole-second `after_seconds` reminders through `schedule_create`, `schedule_list`, and `schedule_delete`; active reminders persist in the original Session, resume when that Session becomes live again, and do not run while it is cold. Run `dsh web --config examples/web-schedule/cordis.yml`; see [web-schedule/README.md](web-schedule/README.md) for the delivery and recovery boundary.
|
||||
|
||||
## acp-agent
|
||||
|
||||
An Agent Client Protocol automation server for programmatic clients, with session, permission, and cancellation support. See the [ACP example reference](acp-agent/README.md).
|
||||
|
||||
@@ -20,6 +20,10 @@
|
||||
|
||||
能够检查并更改内存中 Cordis 插件树的自指 agent。详见 [web-cordis 示例参考](web-cordis/README.md)。
|
||||
|
||||
## web-schedule
|
||||
|
||||
用于持久、仅限 Session 内提醒的显式 Web overlay。它通过 `schedule_create`、`schedule_list` 和 `schedule_delete` 支持正整数秒的 `after_seconds` 提醒;活动提醒保存在原 Session 中,该 Session 再次 live 时恢复,而 cold 期间不会运行。使用 `dsh web --config examples/web-schedule/cordis.yml` 启动;交付与恢复边界详见 [web-schedule/README.md](web-schedule/README.md)。
|
||||
|
||||
## acp-agent
|
||||
|
||||
面向程序化客户端的 ACP(Agent Client Protocol)自动化服务器,支持会话、权限和取消操作。详见 [ACP 示例参考](acp-agent/README.md)。
|
||||
|
||||
6
examples/web-schedule/README.i18n.yaml
Normal file
6
examples/web-schedule/README.i18n.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write examples/web-schedule/README.md
|
||||
README.md: 98ba3c78cfff2c6db62487db727f08825077f150
|
||||
README.zh.md: e36b12acc97313d7feaa3af55e5dc46294d7e8da
|
||||
17
examples/web-schedule/README.md
Normal file
17
examples/web-schedule/README.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Durable Web Schedule
|
||||
|
||||
English | [中文](README.zh.md)
|
||||
|
||||
This overlay opts one `dsh web` process into durable Schedule reminders without changing the shipped default Web composition:
|
||||
|
||||
```sh
|
||||
dsh web --config examples/web-schedule/cordis.yml
|
||||
```
|
||||
|
||||
The current overlay supports one-shot reminders created with a positive whole-number `after_seconds`. The model manages them through `schedule_create`, `schedule_list`, and `schedule_delete`; every result identifies the delivery mode as `session-local`.
|
||||
|
||||
The original Session log owns each reminder. A live root Agent waits, retries after it becomes idle, and records a durable dispatch receipt in the Web conversation. Closing the process or leaving the Session cold stops its in-memory timer without deleting the record; reopening that same Session restores the wait and delivers an overdue reminder. Merely reading cold history never activates it, and a fork does not inherit its parent's reminders.
|
||||
|
||||
Create and actual delete operations acknowledge success only after Session persistence confirms their event prefix. A reminder receipt likewise appears only after its dispatch is durable. Schedule does not provide browser, operating-system, email, SMS, or other external notification, and the best-effort model follow-up is not a delivery acknowledgement.
|
||||
|
||||
Absolute-time, fixed-interval, and cron rules are not accepted by this layer.
|
||||
17
examples/web-schedule/README.zh.md
Normal file
17
examples/web-schedule/README.zh.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# 持久 Web Schedule
|
||||
|
||||
[English](README.md) | 中文
|
||||
|
||||
此 overlay 让一个 `dsh web` 进程显式启用持久 Schedule 提醒,同时不改变交付的默认 Web 组合:
|
||||
|
||||
```sh
|
||||
dsh web --config examples/web-schedule/cordis.yml
|
||||
```
|
||||
|
||||
当前 overlay 支持使用正整数 `after_seconds` 创建的一次性提醒。模型通过 `schedule_create`、`schedule_list` 和 `schedule_delete` 管理它们;每个结果都会把交付模式标为 `session-local`。
|
||||
|
||||
每条提醒由原 Session 日志拥有。live 根 Agent 会等待,在恢复 idle 后重试,并在 Web 会话中记录持久 dispatch 回执。关闭进程或让 Session 保持 cold 会停止内存 timer,但不会删除记录;重新打开同一个 Session 会恢复等待并交付逾期提醒。仅查看 cold 历史不会激活提醒,fork 也不会继承父 Session 的提醒。
|
||||
|
||||
创建和实际删除操作只有在 Session persistence 确认对应事件前缀后才会确认成功。提醒回执同样只在 dispatch 持久化后出现。Schedule 不提供浏览器、操作系统、邮件、短信或其他外部通知,best-effort 模型 follow-up 也不构成交付确认。
|
||||
|
||||
本层不接受绝对时间、固定间隔或 cron 规则。
|
||||
10
examples/web-schedule/cordis.yml
Normal file
10
examples/web-schedule/cordis.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
# Opt-in Schedule patch over the shipped Web composition. The Schedule owner
|
||||
# only observes roots published after this overlay loads, so this remains an
|
||||
# explicit capability rather than changing the default Web tree.
|
||||
|
||||
- insert:
|
||||
- id: tool-schedule
|
||||
name: '@deepseek-ai/dsh-tool-schedule'
|
||||
|
||||
- id: ui-schedule
|
||||
name: '@deepseek-ai/dsh-client-ui-schedule'
|
||||
Reference in New Issue
Block a user