Skip to main content

dsh-task-status

9Stars0Forks0Issues0Watchers

A status bar for background tasks displayed above the conversation input, showing the count of running tasks in the current session, with an expandable option to view real-time output tail.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
JavaScript
License
MIT
Branch
main
dshdsh-pluginpluginui

Install

cmdweb profile
$ dsh plugin --profile web add @vlln/dsh-task-status

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin vlln/dsh-task-status for me: review the repository at https://github.com/vlln/dsh-task-status first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Sentence Positioning

Adds a background task status bar above the input box on DSH conversation pages, automatically displaying the number of currently running tasks in the conversation. Click on a task row to expand and view status, time spent, and real-time output tail. No modification to official baseline required—the plugin creates its own data channel to bypass the missing official API.

Core Capabilities

  • Displays a dock card above the conversation input box with the title "⚙ N background tasks running", automatically summarizing all active tasks from agents in the current conversation
  • Click on a task row to expand, showing task name, start/end time, status tag, and details (detail field)
  • When expanded, automatically polls task output every 1 second, with the output area scrolling in real-time to show the latest tail content
  • Output area caps at 10 lines (160px), scrolling appears automatically when exceeded, allowing review of historical content
  • Only displays in Chat view, automatically hides in trajectory view, task board, and other non-conversation pages
  • Mirrored patch ensures zero competition with official task_output tool and consistent view—both parties see identical incremental bytes

Technical Implementation

  • Language: TypeScript (Node half ESM + client half CJS with tsdown dual build output)
  • Key Dependencies: @deepseek-ai/cordis (peerDependency), react ^18.2 (peerDependency), @deepseek-ai/dsh-client-runtime, @deepseek-ai/dsh-client-ui-slots
  • Architecture Pattern: Official bundle plugin dual half — Node half registers services via cordis.patch.yml and applies mirror patch to ctx.jobs.read; client half registers to official conversation.input.dock slot via ctx.slots.inject; both halves connect through two HTTP read-only routes + 1-second polling
  • Entry Files: src/index.mjs (Node half) / src/client/task-status.tsx (client half)

Use Cases

After triggering background-running tools in DSH conversations (like bash with run_in_background: true), users can view all active tasks and their latest output directly above the conversation input box without switching to the task board. This suits users frequently running long-running background commands who need to observe progress in real-time. The mirror patch also avoids output cursor conflicts with the official task_output tool.

Prerequisites and Compatibility

DependencyMin VersionDescription
DSH>=0.1.0-rc.5Minimum version required by official dock slot contract and cordis 4.x service interface
Node>=22.19.0Node half runs in host Node process (ESM + es2024 target)
PlatformCross-platformOnly active under DSH web profile, no native module dependencies
Native ModulesNoneDoes not introduce node-pty, node:sqlite, or other native modules

Installation

dsh plugin --profile web add github:vlln/dsh-task-status

Configuration

This plugin requires no additional configuration.

FAQ

Q: Does it require manual activation after installation?

A: No. The plugin automatically activates on conversation pages once loaded by the web profile; simply restart the web profile after installation. It can be temporarily disabled or re-enabled in the Settings page under the "Plugins" panel.

Q: Which pages display the status bar?

A: Only the Chat view shows it. The Trajectory view, task board, and other pages hide it automatically—the plugin uses MutationObserver to detect the presence of the conversation flow column [data-chat-flow=""] and toggles visibility accordingly.

Q: The output area only shows 10 lines—what if I need to see earlier content?

A: A scrollbar appears once you exceed 10 lines (160px), allowing you to scroll up and view earlier output. The tail always keeps the latest content visible so you can track progress. The Node side buffers up to 64 KB; older output from very long-running tasks gets dropped to preserve the tail.

Q: Will the status bar compete with the official task_output tool for output?

A: No. This plugin applies a mirror patch to ctx.jobs.read—the official tool still consumes output according to its original semantics, while the plugin reads directly through rawRead (bypassing the patch). Both parties see identical incremental bytes with no duplicates or loss. The patch branch doesn't write reported status; the task's final state notification still comes from official onJobDone/wait.

Q: Where do the tasks shown in the status bar come from?

A: They come from the host task union—iterating through all agents to call ctx.jobs.list(agent) for their owned tasks, then ctx.jobs.list() for unowned tasks (deduplicated by id), and finally filtering on the frontend for active tasks (running/stopping) belonging to the current session (ownerSession === sessionId).

Q: Why isn't the status bar showing when I run background commands?

A: Check three things: whether the tool actually has run_in_background: true set, whether you're in Chat view (it won't show in trajectory/taskboard), and whether you've restarted the web profile to activate the plugin.

Q: What happens when multiple tasks run simultaneously?

A: The status bar displays the total task count with an expand/collapse button. When expanded, it renders task rows individually, and clicking a specific row shows that task's real-time output tail. When there are more than 5 tasks, the task list has its own scrollbar (maxHeight: 180px).

Difficulty Level

Beginner — single command installation, works immediately after restart with no configuration needed, no native dependencies, relies on existing official dock slot contract.

Known Issues and Limitations

No known issues at this time.

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/vlln/dsh-task-status)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory