Introduction

The core capability of DeepSeek Harness (DSH) is interactive sessions and agent execution. When dealing with deployment-level scheduled tasks, or when running fixed operational workflows silently in the background, the existing interactive mode is not direct enough. The syncended/deepseek-harness-automations plugin is designed for this purpose, providing DSH with persistent, configurable Cron job scheduling capabilities.

Plugin Positioning

This is a DSH plugin maintained by syncended, aiming to provide standard Cron scheduling support for the DeepSeek Harness plugin ecosystem. Each task trigger starts a new, persistent Harness Agent and connects it to the specified workspace, model routing, agent preset, and permission preset.

Core Features

The plugin provides a complete set of scheduling and execution control mechanisms:

  • Scheduling Support: Supports standard five-field Cron expressions, with UTC or IANA time zones.
  • Fine-Grained Configuration: Each task can independently configure workspace, provider/model, reasoning effort, agent preset, and permission preset.
  • Task Management: Supports enable/disable, run now, edit, delete, cancel, and viewing recent run history.
  • Overlapping and Misfire Policies:
    • Overlap Policy: skip, queue, allow concurrent execution.
    • Misfire Policy: skip (mark as skipped), run-once (coalesce execution).
  • State Management: Uses atomic operations to manage owner-private state files (default located at $DSH_HOME/automations/state).
  • Execution Snapshots: Provides immutable execution snapshots and Occurrence Key, ensuring replay-safe admission control.
  • Extensible Executors: Supports extensible executor registry (MVP version includes agent).

Installation and Enablement

Before installation, ensure the following environment requirements are met:
* Node.js 22 or newer.
* DeepSeek Harness version 0.1.1-rc.2 or a compatible version, with a working dsh web profile.

Install using the official npm package:

dsh plugin --profile web add @syncended/dsh-automations

After installation or upgrade, restart the dsh web process, refresh the page, and then enter the management interface via Automations or Settings → Automations in the main sidebar.

Configuration and Usage

When creating a task, it is recommended to first create a small disabled task, save it, and then use the Run now feature to verify the selected model, workspace, and permission preset.

Scheduling Settings

  • Simple Mode: Supports Minutes, Hourly, Daily, Weekdays, Weekly.
  • Custom Mode: Select Custom to expose the raw five-field Cron expression (minute hour day-of-month month day-of-week).
  • Time Zone: Supports UTC or IANA time zones (e.g., Europe/Berlin).

Task Configuration

  • Workspace: Select an existing workspace or manually enter an absolute path. This path will serve as the Agent’s current working directory and the workspace-write root.
  • Agent & Access: Configure Prompt (user message), model selection, reasoning effort, agent preset, and permission preset.
  • Advanced Settings: In the collapsed Advanced section, you can configure timeout, overlap policy, and misfire policy.

Plugin Configuration

For a local Web profile, the default configuration is usually sufficient. If adjustments are needed, edit the automations configuration item in $DSH_HOME/profiles/web/cordis.patch.yml. Restart the Host after making changes.

- id: automations
  config:
    maxConcurrentRuns: 2
    historyLimit: 1000
    misfireGraceMs: 60000
    maxOutputChars: 65536
    allowedProjectRoots:
      - /home/me/projects
    # 可选:指定状态文件路径
    # statePath: /absolute/private/path/state.json

Configuration Item Description:
* allowedProjectRoots: If left empty, any directory resolvable by the Harness host account is accepted. If the Web interface is exposed outside trusted machines, it is recommended to configure specific root directories. Paths are normalized via realpath.
* Value Ranges: maxConcurrentRuns 1-32, historyLimit 10-10,000, misfireGraceMs 0-86,400,000, maxOutputChars 1024-1,048,576.

Notes

  • Version Compatibility: The MVP stage is compatible with @deepseek-ai/dsh 0.1.1-rc.2 and 0.1.2-rc.1.
  • Single-Host Limitation: The current Worker operates in single-host mode.
  • Crash Handling: Cron entries and run history are persisted. If the host crashes during a run, an already-started run task will not be retried (it will be marked as interrupted) to avoid silent duplicate side effects caused by network or file operations.
  • Exactly-once: This plugin does not provide Exactly-once execution semantics. External side effects that require Exactly-once semantics must implement idempotency within the task itself or the target system.
  • Permission Control: danger-full-access is only available when the job author selects a preset that is configured with this permission.
  • API Access: The management API requires JSON-formatted data and a custom Same-Origin Mutation Header. It inherits the trust boundary of the DSH Web server and does not have an independent authentication layer.

Conclusion

syncended/deepseek-harness-automations provides a reliable scheduling infrastructure for DeepSeek Harness. It addresses the need to start new workspace tasks when no active session is present, and with fine-grained permission and state control, it is well suitable for building automated operations or data processing workflows.