Skip to main content
Y

dsh-archived-sessions

yuuu0109/dsh-archived-sessions

DeepSeek Harness web plugin to view, unarchive, and permanently delete archived sessions

Install

dsh plugin --profile web add github:yuuu0109/dsh-archived-sessions

README

dsh-archived-sessions

A DeepSeek Harness Web plugin that surfaces the hidden archived-session list: browse every archived conversation in Settings, restore (unarchive) sessions, and permanently delete their persisted logs — individually or in batches.

Archived Sessions

中文说明

Features

  • Adds an Archived Sessions section to DSH settings.
  • Lists all sessions in the registry-global archive set — which stock DSH hides everywhere — with title, project path, last-update time, log size, workspace names, and badges (subagent / blank / running / log missing).
  • Restore moves a session back to the active list without touching its log.
  • Delete permanently removes the session's event-log directory, detaches it from its workspace account through the public API, and drops its archive-set entry.
  • Batch delete with checkbox multi-select; two-step inline confirmation on every destructive action.
  • Ghost cleanup: stale archive records whose log file no longer exists are marked and can be removed from the set.
  • Search by title / path / id; live totals for count and disk size.
  • The sidebar updates automatically after every change: writes go through the registry's own state primitive, so the official host/archived-sessions-changed push reaches every open tab.

How it works

  • Viewing uses only public APIs (workspaceRegistry.archivedSessionIds, sessionPersistence.list(), sessionPersistence.locate() plus the client-side session.list summaries for titles).
  • Restoring and deletion write the archive set through the registry's internal requireState/setState pair (the same primitive the official archiveSession is built on), serialized through the plugin's own mutation queue to avoid lost updates.
  • Deletion refuses running sessions; resolves the physical artifact via locate(), validates the per-session directory layout before any filesystem write, then deletes the log, detaches workspace accounting (public detachSession), and finally rewrites the archive set.
  • Deleting never cascades: subagent children, forks, and produced files are kept.

Safety notes

  • Deletion is permanent. Every delete button uses a two-step inline confirm; there is no trash can.
  • A session that is currently open/running cannot be deleted — close it first.
  • If the Harness internals ever remove the registry state primitives, mutations fail loud with registry-unavailable; viewing keeps working through the public getter.

Install

dsh plugin --profile web add @yuuu0109/dsh-archived-sessions

Restart the dsh web process and refresh the browser; the section appears in Settings as「归档会话」/ "Archived Sessions".

Update

dsh plugin --profile web update @yuuu0109/dsh-archived-sessions

Restart dsh web and refresh the browser. If a configured npm mirror has not synced the latest version yet, use the official registry:

dsh plugin --profile web update @yuuu0109/dsh-archived-sessions --registry=https://registry.npmjs.org/

pnpm 11 may delay newly published versions for 24 hours. To update immediately:

dsh plugin --profile web update @yuuu0109/dsh-archived-sessions@0.1.0 --config.minimumReleaseAge=0

Install from source

git clone https://github.com/Yuuu0109/dsh-archived-sessions.git
cd dsh-archived-sessions
pnpm install
pnpm build
dsh plugin --profile web add .

Changelog

0.1.0

  • Initial release: browse, restore (unarchive), and permanently delete archived sessions.

Uninstall

dsh plugin --profile web remove @yuuu0109/dsh-archived-sessions

Development

pnpm build      # tsc + tsdown → lib/
pnpm test       # vitest unit tests
pnpm typecheck  # both tsconfigs

Compatibility: developed against DSH 0.1.x (peer packages pinned ^0.1.0-rc.8, verified on the bundled 0.1.1-rc.2 runtime).

License

MIT — © 2026 Yuuu0109

Related plugins