dsh-session-cleanup
其他 活跃维护

dsh-session-cleanup

ShiraGawaAnri/dsh-session-cleanup

在工具设置面板新增两个专属页面,支持查看并清理残留会话与归档会话,操作路径直观,无需跳转其他模块即可快速完成会话资源整理。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
15 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:ShiraGawaAnri/dsh-session-cleanup
git clone https://github.com/ShiraGawaAnri/dsh-session-cleanup.git
git clone git@github.com:ShiraGawaAnri/dsh-session-cleanup.git
README.md main

中文 | 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.