Introduction

The session list on the left side of the DeepSeek Harness (DSH) Web interface only offers Rename, Fork, and Archive actions by default, and these actions must be invoked by clicking the ⋯ button at the end of the row. The dsh-session-actions plugin adds shortcut actions to this list without modifying the DSH source code.

Core Features

The plugin provides three core operations for the session list in the DSH Web interface:

  1. Double-click to rename: Double-click a session row (excluding the button) to directly invoke DSH’s built-in rename dialog.
  2. Copy session ID: Select “Copy Session ID” in the row menu to write the ID to the clipboard. The menu closes automatically; if copying fails, it remains open.
  3. Permanently delete a session: Select “Delete Session” (highlighted in red) in the row menu to permanently delete the session and its stored data after a confirmation prompt. This is different from “Archive”: archiving only hides the list item, whereas deletion wipes the data from physical storage.

Installation and Activation

The plugin is provided as a DSH bundle. After installation, its patch layer automatically inserts a Loader row at startup.

dsh plugin --profile desktop add dsh-session-actions

After installation, right-click a session row to see the new menu item.

Typical Usage

  1. Rename a session: Double-click the row in the session list; there is no need to find the ⋯ button at the end of the row.
  2. Copy ID: Right-click a session row and select “Copy Session ID”.
  3. Clean up a session: Right-click a session row and select “Delete Session”. The system shows a confirmation dialog; after confirmation, the session is removed from the list, and the log and projection cache files on disk are also cleared.

Notes

  • Running sessions cannot be deleted: If the session’s Agent status is running, the plugin rejects the deletion operation. Idle sessions that are open but not running can be deleted normally.
  • Attachments are not deleted: The plugin only deletes session logs, projection caches, and workspace records. It does not delete shared attachment objects under $DSH_HOME/attachments/v1/objects/.
  • Only affects the Web interface: This plugin only takes effect in the DSH Web interface. Under a headless profile, the host half is loaded as a no-op.
  • Depends on the rendered DOM: The plugin reads React fiber props to obtain the session ID. If DSH changes the prop naming of the row component, plugin functionality may degrade.
  • Workspace record rollback: Directly modifying workspace.json may be rolled back by later operations, but DSH’s session index has reconciliation logic, so the list will not retain ghost rows.

Conclusion

For developers who need to frequently organize the session list, the plugin reduces the interaction cost of managing sessions by providing right-click menu and double-click actions. All operations are performed through DSH’s built-in APIs and do not rely on external systems.