Bundle
@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.
- Source
- ShiraGawaAnri
- License
- MIT
- Updated
- Updated 14 days ago
Readme
[中文](README.zh.md) | [English](README.md) # 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). ```powershell # 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. ```powershell # 3. Restart dsh web # 4. Open Settings → Sessions清理 / 归档清理 ``` ## Uninstall ```powershell 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.
Install
dsh plugin --profile web add github:ShiraGawaAnri/dsh-session-cleanup
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-external-dsh-session-cleanup from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.