Passer au contenu principal
S

harness-session-delete

seetraum/harness-session-delete

Corbeille pour les sessions DSH : icônes de suppression dans la barre latérale, restauration et suppression définitive multi-sélection, protection des sessions actives.

Installer

dsh plugin --profile web add github:seetraum/harness-session-delete

README

dsh-session-recycle-bin

Session recycle bin & permanent delete for DeepSeek Harness.

Move sessions into a recycle bin from the sidebar, restore or permanently delete them (single or batch), with live-session protection.

The interface automatically follows the browser language: Chinese locales use Chinese and all other locales use English.

English | 中文


✨ Features

  • Sidebar per-session delete icon — hover a session row, a small trash icon appears; click to move it into the recycle bin instantly (no confirmation; always recoverable).
  • Session-header delete button — delete the current session from the conversation header.
  • Recycle-bin manager (Settings → 🗑 会话回收站) — archived sessions with multi-select: batch restore, batch permanent delete; each item shows its ID and path.
  • True permanent delete — physically removes the session log from disk and the projection-cache record; ghost sessions (records without a log) are cleaned up so they vanish instead of lingering.
  • Live-session protection — sessions with an active agent are refused deletion.
  • Batch fault tolerance — batch operations delete per-session with error collection and reporting.
  • Light/dark adaptive UI — all colors are CSS custom properties in client.css; components follow the resolved DSH appearance (data-ds-dark-theme) with prefers-color-scheme as the OS-level fallback (no hardcoded palette). UI and code text follow the app font too (--dsw-font-family / --ds-font-family-code), so the Settings → 字体 choice applies here as well.

📦 Install

One-click from the plugin market (dsh-market)

Once listed in the awesome-dsh-plugin registry: open Settings → Plugin Market → search dsh-session-recycle-bin → install.

Manual

dsh plugin --profile web add dsh-session-recycle-bin

Then restart the web app (stop the dsh web process and run dsh web again).

Local development install

dsh plugin --profile web add link:/absolute/path/to/harness-session-delete

Uninstall

dsh plugin --profile web remove dsh-session-recycle-bin

🚀 Usage

  1. Sidebar delete — hover a session in the left sidebar, click the trash icon: the session moves into the recycle bin and the row disappears immediately.
  2. Settings recycle bin — open Settings ⚙️ → 🗑 会话回收站:
    • Checkbox multi-select → Restore (batch unarchive) or Permanent delete (batch purge).
    • Each entry shows the session name, ID and working path (hover for full details).
  3. Permanent delete physically removes the log and projection cache; live sessions are protected.
  4. Undo — restoring shows an undo toast that re-archives the session.

🛠 Development

pnpm test          # run the test suite (host logic + HTTP routes)

Repo layout:

harness-session-delete/
├── package.json            # single bundle manifest (dsh.bundle.patch + dsh.client)
├── cordis.patch.yml        # bundle patch: one insert mounting the host row
├── index.js                # node half: host entry (inject + apply)
├── client.js               # browser half: sidebar icons + settings recycle bin
├── client.css              # plugin stylesheet: design tokens + light/dark adaptive components
└── packages/
    └── session-trash-host/ # host implementation (persistence/workspace/cache patches, HTTP routes)

🔌 How it works

  • A single npm bundle covers both halves, same as other published plugins: the host row mounts via cordis.patch.yml; the browser half joins automatically through dsh.client + exports["./client"].
  • The browser talks to the host over the plugin's own /api/session-trash/* HTTP routes (registered on the webserver; non-GET requests carry an x-dsh-plugin CSRF header).

📄 License

MIT

Plugins associés