会话与消息
#dsh-plugin
dsh-archived-conversation
DeepSeek Harness 已归档会话管理器:在「设置 → 已归档」中搜索、浏览、取消归档与删除
li-canghai
@li-canghai
⬇ 1
★ 2
main
安装
dsh plugin --profile web add github:li-canghai/dsh-archived-conversation
需要可复现安装时,可在仓库后追加 #commit 固定提交。
DeepSeek Harness 已归档会话管理器:在「设置 → 已归档」中搜索、浏览、取消归档与删除
该插件未提供要点说明,请参考仓库 README。
dsh-plugin
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/li-canghai/dsh-archived-conversation |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 2 |
| 最近推送 | 2026-08-28 |
| 收录日期 | 2026-09-19 |
| 分类 | 会话与消息 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-archived-conversation [简体中文](README.zh-CN.md) | English [](https://www.npmjs.com/package/dsh-archived-conversation) [](https://github.com/Li-canghai/dsh-archived-conversation/releases/latest) An **archived-conversation manager** plugin for DeepSeek Harness (DSH). It adds a **Settings → 已归档 (Archived)** page where archived conversations can be searched, browsed by project, unarchived, or deleted. DSH already ships the *archive* capability (right-click a conversation in the left sidebar → Archive; the conversation disappears from the workspace view and its id is written to `archivedSessionIds` in `~/.dsh/storages/workspace.json`). But DSH currently has **no** management UI for archived conversations and **no** unarchive / delete entry point — this plugin fills that gap. ## Features - **Grouped by project** — reuses DSH's workspace info to group archived conversations under their owning project. - **Instant search** — filters archived conversations by title, project name, or session ID in the browser, without additional session-log reads. - **Unarchive** — removes the id from `archivedSessionIds`; the conversation returns to its original position in its workspace. - **Delete** — detaches from the workspace, drops from the archive set, and removes the on-disk session directory (irreversible). - Auto-refreshes every 20 seconds and immediately whenever the window regains focus. ## How it works - Pure ESM, zero runtime dependencies (Node built-ins only), same shape as `dsh-mcp-manager`. - Client: registers the "已归档" tab via the `settings.section` slot, rendered with `react.createElement` (no JSX, no bundler). - Host: mounts the `/archived-conversation/api/*` same-origin JSON API via `ctx.webServer.register`. - Performance: each refresh performs one parallel `stat` per archived log and reuses workspace/file metadata; title-cache hits skip header reads, while concurrent refreshes share one list rebuild. - Reuses DSH's own services; **never parses the session file format**: - `ctx.workspaceRegistry` — the authority on archive state and project membership. - `ctx.sessionPersistence.readFrom` — reads each archived session's log and folds its last `session/title` event (the same logic as DSH's own "title" projection unit; `sessionQuery.readTitleSnapshots` is unreliable for cold persisted sessions). - `ctx.webServer` — mounts the management API. - Guard rails: mutation requests require a same-origin Origin, JSON Content-Type, and loopback Host; a running session is queued instead of torn down mid-turn. An idle attached session is released, then deleted. - Title lookup is compatible with DSH `0.1.2-alpha.1`: it uses only `cachedSnapshot(header)`, then one persistence read. It does not call `coldSnapshot(id)`, whose signature changed in that release. ## Install / Update Requires [DeepSeek Harness](https://www.deepseek.com/harness/) and **pnpm** on PATH (`dsh plugin` forwards to it). Install: ```sh dsh plugin --profile web add dsh-archived-conversation@latest ``` If `dsh` is not on PATH: ```sh npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-archived-conversation@latest ``` Update: ```sh dsh plugin --profile web update dsh-archived-conversation@latest ``` Then restart `dsh --profile web` and reload the page. The plugin self-activates through `dsh.bundle.patch`; no manual `cordis.patch.yml` edits needed. This plugin has no native build scripts, so `pnpm approve-builds` is not required. If pnpm 11 reports `minimum release age` (the version is younger than 24h), pin the exact version: ```sh dsh plugin --profile web add dsh-archived-conversation@0.2.4 ``` GitHub Release tarball (prebuilt, no npm): ```sh dsh plugin --profile web add https://github.com/Li-canghai/dsh-archived-conversation/releases/latest/download/dsh-archived-conversation.tgz ``` ## Usage 1. In the left sidebar, right-click any conversation → **Archive** (provided natively by DSH). 2. Open **Settings → 已归档**: browse by project or search by title, project name, or session ID. 3. For each matching conversation you can: - **Unarchive** — return it to its original workspace position. - **Delete** — remove it permanently (confirmation dialog; irreversible). ## API | Method | Path | Description | | --- | --- | --- | | GET | `/archived-conversation/api/ping` | Liveness probe (no Origin required) | | GET | `/archived-conversation/api/list` | Archived conversations grouped by project (no Origin required) | | POST | `/archived-conversation/api/:id/unarchive` | Unarchive (same-origin Origin + JSON Content-Type + loopback Host) | | DELETE | `/archived-conversation/api/:id` | Delete (same-origin Origin + JSON Content-Type + loopback Host) | ## Layout ```text dsh-archived-conversation/ package.json # dsh.client.inject + dsh.bundle.patch cordis.patch.yml # plugin row (activated by bundle.patch) lib/index.js # host: API + archive-state read/write lib/client.js # client: Settings "已归档" UI README.md / README.zh-CN.md / LICENSE ``` ## Verification No build step. After installing into a live web profile, open **Settings → 已归档** in the browser. Host liveness: `GET /archived-conversation/api/ping`.
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。