DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-quit-idle-fix

s

dsh-quit-idle-fix

Identified

Clears four kinds of idle-only system notices (approval policy, working directory, plan mode, plugin changes) that DeepSeek Harness counts as active work, so quitting with no running tasks no longer w

dsh-quit-idle-fix

Stop the DeepSeek Harness desktop app from warning that running tasks will be interrupted when the only thing left in the idle inbox is a system notice.

The false alarm

The desktop quit check in @deepseek-ai/dsh-desktop-host counts any pending next-step inbox message as active work:

agent.status === "running" ||
agent.inbox.nextTurn.length > 0 ||
agent.inbox.nextStep.length > 0

But several host features queue purely informational messages with agent.inject(), which does not wake an idle agent. When the approval policy, working directory, plan mode, or a Cordis plugin changes while a conversation is idle, the notice waits in next-step forever. The quit check then sees a pending message and warns about interrupted work even though no turn and no job is running.

This is an interaction bug in the harness itself (the official dsh-desktop-host predicate plus the official notice producers), not a conflict caused by another installed plugin.

What this plugin does

While an agent is idle, it consumes next-step messages whose source.kind is one of:

  • user-approval — approval policy changed
  • working-directory — working directory changed or recovered
  • cordis-host-runner — plugin add/remove/run result
  • plan-mode — plan mode switched

The approval policy and working directory are already stated in the runtime context, and plan mode is reflected in the prompt. Cordis plugin state can be inspected again with the plugin tools. Running agents are never touched, so a notice queued mid-turn still reaches the next step. If a user turn is already queued, the sweep backs off and lets that turn consume the notices.

It checks every 500 ms, does an immediate sweep on load, and keeps no state. Agents with a queued next-turn user message are skipped.

Install

From npm (recommended once published):

dsh plugin --profile desktop add dsh-quit-idle-fix

From GitHub:

dsh plugin --profile desktop add github:shuaichewang/dsh-quit-idle-fix

Or install it from the plugin marketplace. Restart the desktop app if the change does not take effect immediately.

Uninstall

dsh plugin --profile desktop remove dsh-quit-idle-fix

Restart the app afterwards.

Verify

node test.mjs
# ok: idle notices removed, running agent untouched, timer disposed

Then make sure no conversation is running and no background job is active, and quit the desktop app. The interrupt warning should no longer appear. If a real job or turn is running, the warning still appears — that is intended.

Scope and limitations

  • Desktop only. The web profile has no quit-confirmation dialog.
  • Only the four notice kinds above are cleared. A future feature (or a third-party plugin) that injects a different kind while idle can still trigger the false alarm; open an issue if that happens.
  • It does not touch next-turn, real user messages, running agents, jobs, or scheduled tasks.
  • It reads the in-memory agent list and inbox only. No network, no file access, no credentials.

Upstream fix

The cleaner fix belongs in dsh-desktop-host: do not count notice-shaped next-step messages as active work, or avoid leaving non-waking notices in the inbox. This plugin is a workaround that survives app signature checks because it installs as a profile bundle instead of modifying app.asar.

中文说明

DeepSeek Harness 桌面端退出前会把任何待处理的 next-step 消息都当成“有任务”。 但切换审批策略、工作目录、计划模式或增删插件时,官方功能用 agent.inject() 投递的只是提示消息,并不会唤醒空闲会话,于是提示永远留在队列里,退出时就会 误弹“当前正在运行的任务将会中断”。

这个插件只在 agent 空闲时清掉上述四类提示;正在运行的会话完全不受影响。 真实任务、后台作业和已排程提醒仍会正常触发退出警告。

安装:

dsh plugin --profile desktop add dsh-quit-idle-fix

卸载:

dsh plugin --profile desktop remove dsh-quit-idle-fix

License

MIT. Not affiliated with DeepSeek.

Comments

Loading…

Similar plugins

dsh-job-stop

by gorban

DeepSeek Harness (dsh) plugin: stop a running background job from the session-header job list, behind a confirmation dialog.

UI & ExperienceDevelopment & InfrastructureTerminal & ClientsManifest valid

★ 1

↓ 276/wk

MIT

TypeScript

Sep 20, 2026

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

by niubi6668889595

Scheduled idle-gated auto-update for DeepSeek Harness: DSH itself + installed plugins. Four schedule modes, bidirectional whitelist, web panel.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 1

MIT

JavaScript

Oct 26, 2026

dsh plugin --profile web add dsh-autoupdater

by liaoyuqing

Runs a chosen power action (shutdown / restart / hibernate / sleep / lock / logoff) once every Agent session and background job has gone idle: the plugin samples in-process sessions once per second, c

UI & ExperienceManifest valid

★ 0

MIT

JavaScript

Oct 26, 2026

dsh plugin --profile web add dsh-shutdown-idle

by xchannel1987

Browser notification plugin for DeepSeek Harness - system toasts when a task finishes, a run errors, or your input is needed (question / approval / plan review), click to open the session, per-type to

Workflow & AutomationNotifications & IntegrationsDevelopment & InfrastructureManifest valid

★ 1

↓ 298/wk

MIT

JavaScript

Oct 22, 2026

dsh plugin --profile web add dsh-notify-xc

by Eason-22

DeepSeek Harness plugin: restart without losing work, with an idle-aware graceful restart and automatic session resume after the host comes back. Built-in restart supports the Windows desktop app only

Tools & CapabilitiesTerminal & ClientsSessions & MessagesManifest valid

★ 2

MIT

JavaScript

Nov 11, 2026

dsh plugin --profile web add dsh-autorestart

by FoyonaCZY

Quality-of-life plugins for DeepSeek Harness: workspace rewind, desktop notifications, auto-format, live git context, secret redaction, and a done-means-green verify gate.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Sep 2, 2026

dsh plugin --profile web add dsh-kit