DeepSeek Harness Plugin: dsh-job-stop (Stop Background Jobs from the Session Header)

Introduction

The background job list in DeepSeek Harness (dsh-client-ui-jobs) was initially designed to be read-only. This was because canceling a job requires not only notifying the model but also involves protocol changes (kill marks reported=true, which may cause the model to keep waiting). Although the backend ctx.jobs already has the capability to stop jobs, the frontend lacked an actionable entry point. The dsh-job-stop plugin solves this pain point by adding an interactive area to the job list in the session header, allowing users to stop a job after confirmation and ensuring that the model receives a termination notification.

Plugin Purpose

This is an MIT-licensed plugin maintained by David Bruck, intended to turn the background job list in the DeepSeek Harness session header from “read-only” into “actionable”.

Core Features

  • Hover interaction: Hovering over a running job row in the background job list overlays the status indicator dot and displays a stop button with a tooltip.
  • Confirmation dialog: Clicking the stop button opens a confirmation dialog. The dialog reuses the style of session rename and deletion, and restates the full command, job type, current status, running time, and job ID.
  • Job termination and notification: After confirmation, the host kills the job via ctx.jobs; the row status changes to stopping and then to killed, and the associated Agent is notified via inject (when the Agent is busy) or followup (when the Agent is idle).
  • Fault tolerance: If the job has already ended, the plugin does not call kill; instead, it returns already-finished to avoid swallowing the completion notification that the model should have received.
  • Accessibility and localization: Supports English and Simplified Chinese; buttons support keyboard focus and Escape to close the dialog.

Installation and Activation

Installing this plugin requires DeepSeek Harness version 0.1.2-alpha.1 or later.

dsh plugin --profile web add @gorban/dsh-job-stop

Typical Usage

  1. In the background job list in the session header, find the running job row.
  2. Hover over the row and click the stop button that appears.
  3. Confirm the action in the dialog that appears; the job will be terminated.

Configuration

The plugin supports configuring the notification policy and maximum wake-up count to prevent frequent operations from interrupting the Agent’s workflow.

- id: job-stop
  name: "@gorban/dsh-job-stop"
  config:
    notice: wakeup          # 选项:wakeup(唤醒 Agent)或 quiet(静默)
    maxConsecutiveWakes: 3  # 限制单个 Agent 在收到插件输入之间最多打开的对话轮数

Notes

  • The plugin requires dsh >= 0.1.2-alpha.1.
  • On the browser side, it overrides built-in list entries by registering a low-priority slot (job-list) rather than creating a new list, so the session header still displays only one control item.
  • The plugin does not declare peerDependencies; all dependencies are provided by the runtime DSH environment.
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye