插件目录 / Developer / deepseek-harness-automations
deepseek-harness-automations
未验证 syncended
功能简介
Developer 类别的 DeepSeek Harness 插件。
未验证 — 尚未实测
Developer 类别的 DeepSeek Harness 插件。 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
DeepSeek Harness Automations
A DeepSeek Harness plugin for durable, configurable cron jobs. Each occurrence starts a fresh persisted Harness Agent in a selected workspace with an explicit model route, agent preset, and permission preset.
Status: MVP for
@deepseek-ai/dsh0.1.1-rc.2. The current worker is single-host. Cron admission and run history are durable; an already-started run is deliberately not retried after a host crash.
What works
- Standard five-field cron expressions with
UTCor IANA timezones. - Per-job workspace, provider/model, reasoning effort, agent preset, permission preset, and timeout.
- Enable/disable, Run now, edit, delete, cancel, and recent run history from a full center workspace opened by the main Automations sidebar action, or from Settings → Automations.
- Automation-created chats use the automation name as their durable session title and show a compact Auto badge in regular and searched history.
- Overlap policies:
skip— record and skip an occurrence while the job has queued/running work.queue— serialize occurrences for the same job.allow— permit concurrent occurrences, bounded by the global concurrency limit.
- Misfire policies:
skip— record an overdue occurrence as skipped.run-once— coalesce missed occurrences to the latest due time.
- Atomic owner-private state under
$DSH_HOME/automations/state.jsonby default. - Immutable execution snapshots and occurrence keys for replay-safe admission.
- Extensible executor registry: the MVP ships
agent; futureworkflowand task-graph executors do not need scheduler changes.
The in-box @deepseek-ai/dsh-schedule plugin remains the right tool for reminders attached to one live Session. This plugin owns deployment-level jobs that can start a fresh workspace Session while no chat is open.
Install
Requirements: Node.js 22+ and a working dsh web profile.
From npm:
dsh plugin --profile web add @syncended/dsh-automations
Or from this checkout:
pnpm install
pnpm check
pnpm build
dsh plugin --profile web add .
The package declares a DSH bundle, so dsh plugin appends it to the Web profile automatically. Restart the running Web Harness after the initial install, then refresh the page. Open the full Automations workspace from the main sidebar, or use Settings → Automations.
To remove it:
dsh plugin --profile web remove @syncended/dsh-automations
Configure a job
| Field | Meaning |
|---|---|
| Name | Human-readable job name. |
| Schedule | Choose Minutes, Hourly, Daily, Weekdays, or Weekly and adjust its simple controls. Custom exposes the raw five-field cron (minute hour day-of-month month day-of-week) with an inline field guide. |
| Time zone | Search by city or region in the picker, or enter UTC / an IANA name such as Europe/Berlin. Current UTC offsets are shown; DST is handled by cron-parser. |
| Workspace | Choose an existing Harness workspace or enter an absolute directory manually. Its canonical filesystem identity becomes the Session cwd and workspace-write root. |
| Prompt | The user message sent to a fresh Harness Agent. |
| Model | Choose from one searchable model list grouped under provider titles, or enter an unlisted provider/model route. Leave blank to resolve the current Harness default at dispatch time. |
| Reasoning effort | Choose Default or an exact-model effort advertised by the adapter. If capability lookup is unavailable, common IDs are shown as advisory fallbacks; custom IDs remain editable and are validated when the run starts. |
| Agent preset | Leave blank for the current Harness default, or select a specific composition. |
| Permission preset | Bundles DSH sandbox and approval policies. Default: workspace-write. |
| Timeout | Wall-clock run limit. Cancellation is cooperative through the Agent loop. |
| Overlap / misfire | Admission behavior described above. |
The form groups common settings into Task, Schedule, and Agent & access. Job ID, timeout, overlap, and misfire stay available in the collapsed Advanced section. A paused job may still be started with Run now.
Plugin configuration
Defaults are suitable for a local Web profile. Override the bundle row in the profile's cordis.patch.yml when needed:
- id: automations
config:
maxConcurrentRuns: 2
historyLimit: 1000
misfireGraceMs: 60000
maxOutputChars: 65536
allowedProjectRoots:
- /home/me/projects
# Optional; otherwise $DSH_HOME/automations/state.json
# statePath: /absolute/private/path/state.json
allowedProjectRoots: [] means the plugin accepts any existing directory the Harness host account can resolve. Configure one or more roots when the Web surface is exposed beyond a trusted local machine.
Durable semantics
- The scheduler claims an occurrence and advances its durable
nextRunAtwatermark in the same atomic state mutation. - The admitted run pins the complete job version and gets a unique occurrence key.
queuedruns are dispatched after restart.- A run is marked
runningbefore any Agent work starts. - On restart, orphaned
runningrecords becomeinterruptedand are not retried automatically, avoiding silent duplicate file/network effects. - Harness Session persistence remains the source of truth for the Agent transcript; the automation state stores orchestration metadata and a bounded final-text summary.
This is not exactly-once execution. Exactly-once external side effects require idempotency in the task itself or in the target system.
Security
- State files are replaced atomically with mode
0600; created directories use0700. - Workspace paths are resolved through
realpath; optional allowed roots are checked against that canonical identity. - Background work uses a normal DSH permission preset.
workspace-writecannot silently widen itself; unattended approval failures remain fail-closed. danger-full-accessis intentionally available only when the job author selects a configured preset that grants it.- The management API requires JSON plus a custom same-origin mutation header. It inherits the trust boundary of the DSH Web server, which has no standalone authentication layer.
- Prompts, run metadata, final summaries, and Session transcripts are local sensitive data.
See docs/security.md for the threat model.
Development
pnpm typecheck
pnpm test
pnpm check
The Host plugin is TypeScript in src/. The browser half is deliberately plain JavaScript in lib/client.js, matching the external DSH Client Plugin loader format and avoiding a dependency on monorepo-only frontend build tooling.
Architecture and roadmap
See docs/architecture.md. In short, cron is only a trigger. Durable runs call an executor selected by task.kind; the next implementation stage adds a workflow executor over ctx.workflowEngine, followed by a persisted task graph with leases, retries, child-agent references, and resumable code steps.
License
MIT
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 deepseek-harness-automations」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:syncended/deepseek-harness-automations Headless(CLI)profile:
dsh plugin --profile headless add github:syncended/deepseek-harness-automations 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。
2026-08-27 · 标记 webonly 备注:验证: web-only;待 L4 web CDP;L4 web CDP runtime-fail on dsh 0.1.0-rc.8. 浏览全部待验证失败 →