Introduction

In daily use of DeepSeek Harness, managing multiple workspaces and a large number of sessions is a common scenario. When the conversation list becomes too long, quickly locating an ongoing conversation or key reference content can become time-consuming. To solve this problem, a mechanism is needed to pin a specific session to the top of the sidebar, so that it remains instantly accessible when switching workspaces.

Plugin Positioning

dsh-session-pin is a DeepSeek Harness web plugin maintained by OpenSaozi. Its core feature is providing global session pinning capability, allowing users to “pin” important conversations to the top of the sidebar. This creates an independent pinned area, keeping it visible across all workspaces.

Core Features

This plugin optimizes the session management experience in the following ways:

  1. Cross-workspace persistence: Pinned sessions remain in the top area of the sidebar, and this list stays visible no matter how the user switches workspaces.
  2. Codex-style interaction: Provides Codex-like quick actions. Clicking the session menu allows users to perform “Pin/Unpin”.
  3. Archive lifecycle integration: The pinned state is retained along with session archiving. When a session is unarchived, its pinned position is automatically restored.
  4. Lightweight local storage: Data is stored in the ui-session-pin.pinnedSessionIds field of $DSH_HOME/settings.yaml, recording only session IDs, with no need to manually edit the configuration file.
  5. Clean uninstall: Removing the plugin does not modify conversation records, workspace paths, or credentials. After uninstallation, all sessions will return to the default list order.

Installation and Usage

This plugin does not run on the standard Harness, and specific conditions must be met before installation.

Prerequisites

You need to apply patches/harness-session-pin.patch to the checked-out version of dsh-v0.1.1-rc.2. An unpatched installation will cause the entrypoint to hang and the Web UI to fail to load.

Installation Steps

Use the official installation command to add the reviewed version to the Web configuration file:

dsh plugin --profile web add github:OpenSaozi/dsh-session-pin#<commit-sha>

Usage

  1. Refresh the page after installation is complete.
  2. Hover over any conversation row in the left sidebar, and an action menu will appear.
  3. Click “Pin Session” in the menu to pin that conversation. Newly pinned sessions will automatically move to the top of the list.

Compatibility and Privacy

Compatibility Requirements

  • Host environment: The host owner must expose the ui-session-pin configuration item through the settings API. If it is not exposed, the plugin will not display pinning controls and will not create a local storage copy.
  • DeepSeek Harness version: The @deepseek-ai/dsh-client-ui-workspace package must expose the ctx.sessionPins provider registry.

Privacy and Model Interaction

  • Data storage: The plugin only persists a list of session IDs. It does not store prompt text, model responses, credentials, workspace paths, or provider requests.
  • Model visibility: The model cannot perceive the pinned state. The request assembly process does not read the pinnedSessionIds field.
  • Resource consumption: This plugin does not cause token consumption, nor does it affect KV cache performance.

Limitations and Notes

  • Sorting limitation: Manual drag-to-reorder sorting is not supported within the pinned area. Pinning automatically moves a session to the top of the list. Normal drag-to-reorder sorting only applies to workspace folders and ordinary list rows.
  • Version dependency: Because this involves injection into the underlying UI, the plugin has specific Harness version requirements. Upgrading Harness may require rechecking compatibility.

Summary

dsh-session-pin addresses the challenge of locating sessions in multi-project and multi-session management with a lightweight approach. It focuses on UI-level assistance, does not interfere with the model inference process, and is suitable for users who frequently need to switch between specific conversations.