Skip to content

[Grok/dsh 45] 定时提示与独立执行 #177

Description

@Blackman99

Parent

#132

Ticket: 45

Status: ready-for-agent

User Stories: 46, 47(见父规格)

What to build

用户创建、查看、修改或删除循环提示,每次按参考规则在独立后台子代理中执行并返回结果。

Acceptance criteria

  • interval、立即触发、数量/有效期限制、更新保持相位等公开契约由参考清单决定。
  • 调度执行经过 dsh,权限和提供商配置受控;不偷带主会话上下文,不隐藏模型费用。
  • 删除、执行重叠、任务失败、用户插入消息和到期均有真实状态与结果。
  • 通过受控时钟及实际子代理验证触发/取消,默认不承诺持久化,跨重启由下一票处理。

Blocked by

Delivery contract

用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。

Activity

  1. Blackman99 commented on Sep 25, 2026

    @Blackman99
    OwnerAuthor

    已实现并推送到 rewrite/grok-dsh-20260920:a06632d

    内容:/loop [间隔] <提示> 通过 dsh 的参考 scheduler_create / scheduler_delete / scheduler_list 工具创建定时提示(最短 60 秒、每会话最多 50 个、7 天过期、上次未结束则跳过)。每次触发都作为独立的 dsh 后台子代理运行(经子代理规划器,类型、权限、审批与并发上限照常生效),最终状态只回报一次并唤醒空闲会话;下一次触发带着上一次的最终状态重新开始。子代理不提供调度工具。状态栏统计循环数,Ctrl+G 任务面板列出循环,x 通过控制通道删除。循环仅限当前会话,durable: true 明确拒绝(留给 #178);-p、编辑器 ACP(x.ai/scheduled_task_* 扩展列为不支持)、共享服务器和禁用子代理的会话不提供调度器。文档:帮助文本、README.md、README.zh.md、CONTEXT.md、changeset(codsh-cli minor、codsh-bundle minor)。

    检查(rebase 到 #182/#195 之后重跑):

    • pnpm run typecheck 通过
    • TMPDIR=/tmp pnpm test:94 个文件,2435 通过 / 2 失败,均为 5 秒超时:reference-evidence.spec.mjs(已有问题)和 rust-launcher.spec.mjs(机器负载高时超时,单独重跑 4/4 通过);新增 rust-scheduler.spec.mjs 17/17 通过
    • cargo fmt --check 通过
    • cargo clippy ... -D warnings:只剩已有的 2 个错误(filesystem_sandbox.rs 中未使用的 tail_marker 和多余的 return),本次没有新增
    • cargo test --workspace:1619 通过 / 4 失败 / 2 忽略;失败均为已有问题(2 个 filesystem_sandbox、privacy::drafts_stay_local…、voice::substitute_route…)
    • PTY(Linux):新增的 scheduler、background、subagent、workflow、queue 通过;turn、cancel、shell、screen、nav 用去掉 macOS 限制的临时副本运行,也通过。rebase 前跑过一次 rust-prompt-pty-test,只有已有的 CJK 换行检查失败
    • 所有 PTY 运行后,本工作区没有残留的 codsh-rust 或 dsh 进程

    未验证:macOS 和 Windows 实机、真实模型提供方(全部使用本地无密钥 mock)。
    main、npm 发布和默认启动路径都没有改动。
    已解除阻塞的后续工单:#178(它唯一的阻塞项就是 #177)。#211 还有其他未关闭的阻塞项。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions