dsh-archive-retention
DSH 插件: 归档会话定期清理 —— 物理归档堆与页面归档会话超保留期(页面可配天/小时,cron 调度)自动物理删除
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 29, 2026
- Updated
- Aug 29, 2026
Introduction
@momojie-s/dsh-archive-retention
DSH 插件:归档会话定期清理——物理归档堆(sessions-archive/)和页面归档的会话记录,超过保留期(默认 7 天,页面可改,支持天/小时)自动物理删除。保留期即"宽限期":归档 ≠ 永久保存,到期即焚。
一句话作用
归档(页面归档或物理归档)只进不出,日积月累拖慢 Web GUI(实测 664 条会话列表 ≈ 1s/880KB)。本插件在宿主侧挂一个定时清扫:超过保留期的归档记录自动物理删除,每次落审计清单;保留期(数值+单位)、清扫节奏(cron)、范围开关都在 Web 设置页 → 插件 的"归档自动清理"卡片里直接改,无需碰配置文件、无需重启。
环境要求
- DSH
0.1.1-rc.2(验证基准);web profile(需要设置页 UI);Windows/Linux/macOS - 宿主+客户端双半部 bundle 插件
用法
安装重启后无需任何操作:
- 清扫节奏:每小时检查一次(可配,最小 15 分钟),超期即删
- 页面配置:设置 → 插件 → 可配置 → "归档自动清理"卡片:总开关、保留数值+单位(天/小时)、两个范围开关
- 审计:每次删除在
sessions-archive/_manifests/retention-<时间戳>.json落清单
清理范围(均可独立开关):
| 范围 | 对象 | 判据 |
|---|---|---|
| 物理归档堆 | sessions-archive/<workspace>/<id>/ | 目录最新写入早于保留期 |
| 页面归档 | GUI 归档名单里的会话记录 | 同上,且会话不在内存(挂着的绝不删,重启后补删) |
绝不触碰:未归档的会话、正在运行/在内存的会话、_manifests 目录。
安装
dsh plugin --profile web add <本仓库路径>
# 或
dsh plugin --profile web add github:Momojie-S/dsh-archive-retention
安装后重启 DSH 生效。
配置
patch config(全部可选;页面改动存设置存储,优先级更高):
| 字段 | 默认 | 说明 |
|---|---|---|
enabled | true | 总开关 |
retentionValue | 7 | 保留期数值 |
retentionUnit | days | 保留期单位:days / hours |
cleanSessionsArchive | true | 清理物理归档堆 |
cleanGuiArchived | true | 清理页面归档的会话记录 |
sweepCron | 0 4 * * * | 清扫节奏(5 段 cron,默认每天 04:00) |
验证
DSH 日志出现 archive-retention: active (retention 7d, sweep every 60min, ...);设置页插件区出现"归档自动清理"卡片;把保留期临时调成 1 小时,小时内 sessions-archive/_manifests/ 出现 retention-*.json 即闭环。
机制、安全边界与决策记录见 docs/design/overview.md。