Foreword

The DeepSeek Harness (DSH) web client makes it possible to run sessions in browser tabs. When a tab is switched to the background, you cannot directly see the current state of the session and must switch back to it to confirm. The dsh-favicon-status plugin visualizes the state of background sessions by modifying the browser tab’s Favicon: it draws a ring with a rotation animation based on the status in the session list projection, allowing you to track the progress of background tasks without clicking into the tab.

Plugin Overview

This is a browser-only DSH web plugin used as a status indicator for background tabs.

  • Maintainer: bf185003
  • License: MIT
  • Core functionality: Reads status from the session list projection, renders the document Favicon as a segmented ring, and adds a rotation animation.
  • Model interaction: None. The plugin does not involve model calls, prompt assembly, or KV Cache.
  • Client requirements: DSH web client version must be >= 0.1.6-alpha.2. This version provides the ctx.uiSession.sessionStatus interface for obtaining session status snapshots.

Installation and Enablement

The plugin is installed through DSH plugin commands. After installation, the dsh web service must be restarted for the configuration to take effect.

  1. Run the installation command:
    dsh plugin --profile web add dsh-favicon-status
  1. Restart the dsh web service to load the new plugin configuration.

Core Behavior

After the plugin is installed and running, the browser tab’s Favicon changes according to the current session status:

  • Blue (Running): When a session is executing, the ring is blue and rotating.
  • Amber (Waiting): When a session is waiting for user interaction (such as approval or plan review), the ring is amber.
  • Green (Completed): When a session has completed in the background, the ring is green.
  • Reverted: When no session is in any of the three states above, the Favicon reverts to the document’s original icon.

The ring has a fixed 30° trailing gap, ensuring that the rotation remains visually clear even when the background tab is scaled down to 16px. When mixed statuses are present, the ring is divided proportionally, but the color order is fixed (Running, Waiting, Completed) to preserve readability.

Limitations and Notes

  • Background tab throttling: Browsers throttle setInterval in background tabs (approximately 1 Hz in Chrome), so the ring’s rotation animation appears jerky rather than smooth in the background.
  • Completed status visibility window: The green (completed) state is only visible while the tab is in the background and only remains for a default duration (30 seconds, adjustable via the doneVisibleMs setting). Once the tab becomes active, the state is cleared.
  • Status aggregation: The plugin reflects the aggregated status of the session snapshot, not the detailed status of individual tasks. Multiple icon manifests or apple-touch-icon are not supported, and the plugin only processes the first rel~="icon" link in the document.

Conclusion

dsh-favicon-status provides DSH web users with a lightweight visual feedback mechanism that leverages native browser capabilities to display background task status without any model-level overhead.

  • Directory: https://www.skillhub.cn/plugins/bf185003/dsh-favicon-status
  • Source code: https://github.com/bf185003/dsh-favicon-status