ShiraGawaAnri/dsh-session-cleanup0

@dsh-external/dsh-session-cleanup

DSH profile bundle: Settings pages to list current/residual sessions and archived documents (ID, date, summary) and delete them with double confirmation.

包名
@dsh-external/dsh-session-cleanup
版本
1.0.3
许可证
MIT
最近更新
2026年8月16日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ShiraGawaAnri/dsh-session-cleanup

中文 | English

dsh-session-cleanup

A DSH profile bundle that adds two Settings pages for inspecting and cleaning up residual (persisted but not open) sessions and archived sessions.

Features

Settings → Sessions清理

  • 刷新Sessions button
  • 当前Sessions: live in-memory sessions (display only, no action buttons) with session ID / date / summary (title + first user message excerpt)
  • 残留Sessions: persisted but not currently open sessions, each with a delete button

Settings → 归档清理

  • 刷新归档 button
  • 所有归档: all archived sessions with ID / summary / date
  • Per-row delete button plus delete-all
  • Live sessions show a "运行中" badge and cannot be deleted

Every deletion requires double confirmation (arm → confirm, with cancel).

What deletion does

  1. Refuses live (running) sessions
  2. Removes the persisted session log file/directory (paths come from sessionPersistence.locate(); the client only ever submits session ids)
  3. Detaches the session from its workspace account (durable write)
  4. Removes the id from the global archive set if present (durable write + registry cache sync so later archive operations cannot resurrect it)

Deletion is not recoverable.

Installation

Prerequisites: a working DSH installation (dsh web) and pnpm on PATH (dsh plugin forwards to pnpm).

# 1. Unzip, e.g. to D:\plugins\dsh-session-cleanup

# 2. Install into the web profile
dsh plugin --profile web add file:D:/plugins/dsh-session-cleanup

# or from the parent directory of the unzipped folder:
dsh plugin --profile web add ./dsh-session-cleanup

dsh plugin add runs pnpm in the profile directory and appends @dsh-external/dsh-session-cleanup to the profile's dsh.profile.bundles layer — no manual cordis.yml edit.

# 3. Restart dsh web
# 4. Open Settings → Sessions清理 / 归档清理

Uninstall

dsh plugin --profile web remove @dsh-external/dsh-session-cleanup
# then restart dsh web

Notes

  • Host-side deletion uses Node fs.rm, restricted to paths returned by sessionPersistence.locate().
  • The API route (POST /_dsh/session-cleanup/api) rejects cross-site requests.
  • Deletion is an administrative action triggered explicitly from the Settings page; it does not interact with DSH sandbox policies or model tool calls.
  • Requires host services sessions, sessionPersistence, workspaceRegistry, storageDomain (and optional webServer), plus the client slots service.
  • Zero third-party npm dependencies.