kira905/dsh-butler-archive ↗★ 0

dsh-archive-sessions

DSH web plugin: browse, preview, restore and delete sessions that were physically moved out of the sessions directory (archived sessions). Zero runtime dependencies. 适合需要找回或清理归档会话的用户;安装前建议备份 profile 文件,路径可通过环境变量配置。

Package
dsh-archive-sessions
Compatibility
Unverified
Version
0.3.0
License
AGPL-3.0
Last updated
Sep 15, 2026

Other repositories with this package name

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

四、配置

配置解析优先级(后者覆盖前者):

  1. 插件内置默认值(见 examples/archive-sessions.config.example.json)
  2. 配置文件
  3. 环境变量

配置文件的位置(先找到谁就用谁):

优先级路径
1$ARCHIVE_SESSIONS_CONFIG 指向的文件
2/.archive-sessions.config.json ← 一台机器一份,多机共存推荐
3/archive-sessions.config.json

其中 `` = $DSH_HOME,未设置时是 ~/.dsh。

支持的环境变量:

变量作用
DSH_HOMEDSH 用户数据根(默认 ~/.dsh)
DSH_SESSIONS_DIR活跃会话目录(默认 /sessions)
ARCHIVE_SESSIONS_CONFIG配置文件路径
ARCHIVE_SESSIONS_DIR归档根目录(默认 /_archived-sessions)
ARCHIVE_SESSIONS_API_PREFIXHTTP 路由前缀

路径键写成相对路径时按 `` 解析(例:"archiveRoot": "archive-2" → /archive-2),所以一份配置可以在 Windows / macOS / Linux 之间搬运,不必写死用户名。

常用键速查(完整默认值与注释见示例文件):

键默认说明
language"zh"界面语言,内置 zh / en
ui / uiByLanguage{}逐条覆盖界面文案;键表见 lib/config.js 的 DEFAULT_UI
paths.archiveRootnull归档根;null = /_archived-sessions
paths.sessionsRootnull活跃会话根;null = /sessions
paths.storagesDirnull存储目录;null = /storages
archive.headerFrames8元数据兜底时向前解几帧(见「已知限制」)
archive.statePathnull自动归档状态文件路径;null = 归档根下 .auto-archive.json
preview.maxMessages50预览返回的消息条数
preview.maxMessageChars4000单条消息截断长度
server.apiPrefix"/api/dsh-archive-sessions"路由前缀
server.allowedHosts["127.0.0.1","localhost","[::1]"]允许的 Host 名
auto.enabledfalse是否开启自动归档
auto.dryRuntruetrue 只列候选、不移动文件
auto.hours48多少小时未活跃才成为候选
auto.minSizeMb / auto.maxPerRun0 / 50候选大小下限 / 单次上限

改配置文件后需要重启 DSH 才生效(插件启动时载入一次并常驻内存)。 例外是自动归档的 enabled / dryRun / hours / intervalMs / minSizeMb / maxPerRun—— 这几项由面板或 POST {prefix}/auto 维护在状态文件里,改完立即生效。


1) 静态验证:语法 + 配置解析行为 + 硬编码/隐私扫描

node scripts/verify-source.mjs .

用一份独立配置起真实 HTTP,跑 list / detail / restore / delete / auto / 安全边界

node scripts/test-e2e.mjs # --keep 保留临时目录便于排查