Saikel-Orado-Liu/dsh-archive-manager1

@gamegeek-saikel/dsh-archive-manager

DSH Web GUI 的已归档会话管理插件,支持显示归档、取消归档和永久删除会话。

AI 分析

核心用途是增强官方工作区对历史会话的管理能力,提供两步删除确认和归档标记。适合需要整理大量历史会话、防止误删重要记录的用户。

包名
@gamegeek-saikel/dsh-archive-manager
版本
0.1.0
许可证
MIT
最近更新
2026年8月15日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Saikel-Orado-Liu/dsh-archive-manager

Usage

Once installed and restarted:

SurfaceDescription
View optionsNew "Show archived" item (separator-separated) alongside group-by/order-by; persisted in the same store
Session rowsArchived rows: red title + tinted background + "Archived" badge (theme danger token), click guarded with a toast; row menu = [Unarchive, Delete session]
Search resultsArchived matches get the same red treatment; the browser-level guard keeps them from opening
Row menusNormal sessions gain a danger-styled "Delete session" item; archived sessions show only [Unarchive, Delete session]
Delete dialogTwo-step confirmation ("This permanently deletes session … This cannot be undone."), pending state, failure keeps the dialog open
Live session deleteComposer greys out, row disappears, UI does not crash

Restart verification checklist

  1. View options → "Show archived": toggling shows/hides archived sessions in their workspace groups (flat list and search included).
  2. Clicking an archived session does not open it; a toast says "This session is archived. Unarchive it to continue the conversation." and messaging stays blocked.
  3. An archived row's menu contains only [Unarchive, Delete session]; unarchive restores normal styling and openability at the session's original workspace position.
  4. A normal row's menu contains "Delete session"; confirming permanently removes the session with no disk residue:
    • ~/.dsh\sessions\…\session-\ no longer exists;
    • ~/.dsh\storages\workspace.jsonglobal.archivedSessionIds and every workspace's sessionIds no longer contain the id;
    • ~/.dsh\storages\session_projcache.jsontables.sessions no longer contains the id.
  5. Deleting the currently open session greys the composer and removes the row without crashing.
  6. Rename / fork / archive / drag-sort / search / flat list / workspace CRUD all keep working.
  7. Both locales render correctly (switch the browser language and reload).