DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Harzva /

Harzva/dsh-session-context-menu

Verified

Lifecycle-safe Codex-style Session context actions for DeepSeek Harness.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@b4a1f2fd

dsh-session-context-menu

English | 中文

Lifecycle-safe, Codex-style Session context actions for DeepSeek Harness. It extends the official Session-row registry and accessory Slot; it does not patch installed packages, inspect React Fiber, query private DOM, or replace the Workspace browser.

Actions

  • Pin or unpin a chat. Pinned rows lead while preserving their existing relative order.
  • Mark a chat read or unread, with an accessible row indicator.
  • Show the Workspace directory with DSH's native path opener.
  • Copy the working directory, Session id, or a browser deep link.
  • Open the deep link in a new browser window.
  • Use DSH's built-in Rename, Fork, and Archive actions in the same menu.

The ellipsis button, native right click, Shift+F10, and the Menu key all open one shared action model. Deep links use ?session=<id> and are resolved only after the Session list contains that id.

Compatibility

DSH version Status
0.1.0-rc.6 Unsupported: no official Session-row extension point
0.1.0-rc.7 Unsupported without the upstream sessionRows change
Upstream with ctx.sessionRows and sidebar.workspaces.session.accessory Supported

The plugin intentionally refuses to load when the required service is absent. This avoids silently falling back to private UI attachment.

Install

After the compatible upstream release and this repository's first public release:

dsh plugin --profile web add github:Harzva/dsh-session-context-menu

For isolated local development:

DSH_HOME=/path/to/throwaway-dsh-home dsh plugin --profile web add /absolute/path/to/dsh-session-context-menu
DSH_HOME=/path/to/throwaway-dsh-home dsh web

Do not point development commands at a production profile. Removing the dependency cleanly removes the Host route, registry actions, accessory component, and deep-link listener:

dsh plugin --profile web remove dsh-session-context-menu

Persistence and privacy

Pin/read state is stored as boolean-only JSON under $DSH_HOME/storages/dsh-session-context-menu/state.json, or under an explicit storeRoot supplied in the Cordis config entry. Writes are serialized and atomically renamed; files are created mode 0600. Session transcripts, prompts, Workspace paths, credentials, and clipboard contents are never persisted by this plugin.

The Host exposes one same-origin, no-store JSON route at /dsh-session-context-menu/state. Request bodies are bounded to 32 KiB and accept only a bounded Session id plus boolean pinned/unread fields. Native path opening uses DSH's existing ctx.workspaces.openPath() capability instead of adding another filesystem endpoint.

Development

npm test
npm pack --dry-run

The test suite covers state validation, concurrent atomic persistence, Cordis route disposal, client contribution registration, priority, deep-link opening, clipboard actions, native path delegation, and client cleanup. Release validation additionally uses a throwaway DSH profile for install, cold-start, light/dark visual checks, right-click/keyboard interaction, unload, and rollback.

Marketplace submission

The awesome-dsh-plugin catalog currently requires an installable dsh.bundle, the dsh-plugin topic, a repository at least one day old, and at least ten commits. This repository keeps those requirements in its release checklist; the catalog entry is submitted only after the upstream extension ships and the isolated composition passes.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit b4a1f2fde706

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout