DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

hashdiana /

dsh-archived-sessions

Verified

This repository has no description yet.

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

dsh-archived-sessions

An "Archived sessions" page in the DeepSeek Harness settings — reopen the sessions the sidebar hides.

GitHub stars License: MIT DSH Plugin

🌐 中文 · English

A DSH plugin adding an Archived sessions page to the Settings panel: it lists every session in the registry-global archive set (normally hidden from the sidebar grouping surfaces and search), and clicking a row reopens that session and closes the settings panel.

🎯 Archiving shouldn't be a one-way door — every archived session stays one click away.

Contents
  • Why
  • Install
  • Develop
  • Architecture
  • Verification matrix
  • License

Why

In DSH 0.1.0-rc.6 archiving is one-way: workspace.archiveSession moves a session into the registry-global archive set, all grouping surfaces and search hide it, and this version ships no unarchive API. This plugin closes that gap — session logs and workspace accounting survive archiving, so an archived session can always be reopened from here.

Install

From GitHub (recommended):

npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hashdiana/dsh-archived-sessions

From a local checkout:

npx -p @deepseek-ai/dsh dsh plugin --profile web add <path-to-this-repo>

Restart the target profile afterwards. The plugin is a pure client plugin: an empty host half plus a browser half registering one settings.section entry. (lib/ build artifacts are committed, so Git installs never build.)

Develop

pnpm install
pnpm typecheck   # tsc -b
pnpm build       # tsc -b && tsdown → lib/index.js (host) + lib/client.js (browser)
pnpm test        # vitest run --pool=threads
  • The client bundle is emitted as window.__ModuleLoader__.load({id, factory}) by tsdown; CSS Modules go through lightningcss hashing plus <style data-plugin> injection.
  • After changing sources, run pnpm build and commit lib/ (Git installs use the committed artifacts; they do not build).

Architecture

  • Seam: settings.section (list slot; typed by dsh-client-ui-settings, declared at runtime by ui-settings-general), entry id=archived-sessions, order=100, thunked label: () => t('nav') — the shell re-resolves it on every locale revision, so language switches apply automatically.
  • Data: ctx.workspaces.list (WorkspaceListState.archivedSessionIds, in archive order) and ctx.sessions.list (SessionListState.byId for titles, timestamps, running state), passed into the component through the register inject factory and subscribed via useSyncExternalStore.
  • Behavior: clicking a row calls ctx.sessions.open(id) plus the section owner's close(); archived sessions stay in the session list store, so they open directly.

Verification matrix

  • pnpm typecheck / pnpm build / pnpm test
  • Fresh scratch profile: dsh plugin --profile <scratch> add github:hashdiana/dsh-archived-sessions → dsh --profile <scratch> --dump-config must show the dsh-archived-sessions layer
  • GUI: open Settings in a web profile → the nav shows Archived sessions → archive a session and it appears in the list → click to reopen

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 1a2b9dba8d01

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