返回目录
其他 插件

dsh-archived-sessions

hashdiana/dsh-archived-sessions

该仓库暂未提供项目说明。

Stars
0
Forks
0
Issues
0
更新
5 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:hashdiana/dsh-archived-sessions

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

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

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-sessionsdsh --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

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。