dsh-pet
PC2005-cloud/dsh-petDSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
会话日志守护弹窗:打开 Web 即提醒(间隔 10 分钟至 3 小时可调),一键增量备份 ~/.dsh/sessions 全部 session.jsonl(.zstd),可选原始压缩或可读聊天记录两种格式,弹窗内可选备份文件夹。
简体中文 | English
DSH(Deepseek Harness)插件:打开 Web 即弹窗守护会话日志——弹窗里能备份、能调提醒间隔、能选备份文件夹。
会话日志是和 AI 助手的所有对话记忆——文件损坏、误删、格式迁移翻车时,一份独立备份就是救命的。
~/.dsh/sessions 下所有 session.jsonl / session.jsonl.zstd 增量复制到备份文件夹(按「路径:大小:mtime」跳过未变化文件,完整保留 <工作目录根>/<会话 id>/ 目录结构,索引持久化).zstd 压缩包,机器格式,可用于恢复.txt 聊天记录(标题/时间/token 用量档案头 + 按轮次排版的用户消息、助手思考与正文、工具调用与结果)dsh plugin --profile web add github:says693/dsh-log-memory
安装后重启 DSH(Deepseek Harness EAC)。首次打开 Web 即弹出引导面板。
可运行
dsh --profile web --dump-config确认插件已进入最终配置;需要改源码时,克隆仓库后在仓库目录运行dsh plugin --profile web add .。
把本文件夹复制到 DSH 的 profile 依赖目录:
C:\Users\<你>\.dsh\profiles\web\node_modules\dsh-log-memory\
编辑 C:\Users\<你>\.dsh\profiles\web\package.json:
在 dependencies 中加入:
"dsh-log-memory": "file:<本文件夹的绝对路径>"
在 dsh.profile.bundles 数组末尾加入:
"dsh-log-memory"
重启 DSH。首次打开 Web 即弹出引导面板。
提醒间隔与备份文件夹优先在弹窗里设置(持久化于 <DSH_HOME>/profiles/<profile>/log-memory.json)。cordis.patch.yml 里的 config 仅作为初始默认值:
| 键 | 默认值 | 说明 |
|---|---|---|
intervalMinutes | 30 | 初始提醒间隔(分钟),需在 10–180 内 |
backupDir | '' | 初始备份文件夹(绝对路径);留空使用 <用户主目录>/dsh-log-memory-backups |
backupMode | 'fish' | 初始备份格式:fish(鱼话版 .zstd)/ human(人话版 .txt) |
debug | false | true 时:启动 20 秒后先弹一次提醒,并开放 POST /ds-log-memory/test-remind |
| 路由 | 方法 | 说明 |
|---|---|---|
/ds-log-memory/state | GET | 状态:设置、首次引导标志、间隔范围、当前提醒、上次备份、下次提醒时间 |
/ds-log-memory/settings | POST | 运行时设置:{ intervalMinutes?, backupDir?, backupMode? }(间隔钳制 10–180;文件夹须为绝对路径且不在会话目录内;格式 fish/human 二选一) |
/ds-log-memory/ack | POST | 关闭当前提醒 |
/ds-log-memory/mute-today | POST | 今日不再提醒 |
/ds-log-memory/backup | POST | 立即增量备份 |
/ds-log-memory/browse | GET | 目录浏览(?path= 绝对路径,仅返回子目录列表;空 path 默认用户主目录)——弹窗内「浏览…」按钮的数据源 |
/ds-log-memory/test-remind | POST | 调试:手动触发提醒(仅 debug: true 时可用) |
POST 路由均要求同源(校验 Origin 与 Host 一致)。
增量备份把「变化的文件」分散在各时间戳批次目录中:恢复某份会话日志时,请从最新的批次向前找该文件的第一个版本(各批次按时间从新到旧,每个文件取第一次出现的那份;人话版 .txt 同理)。恢复原始格式(鱼话版)时,把找到的 session.jsonl(.zstd) 放回 ~/.dsh/sessions/<对应目录>/ 即可被 DSH 重新读取。
src/index.js 服务端:提醒定时器(热重排)+ 运行时设置 + 增量备份引擎 + 同源 HTTP 路由(cordis 插件)
client/client.js 客户端:开屏弹窗与提醒弹窗(同一面板)、间隔滑杆/预设、文件夹输入、备份结果(零依赖原生 DOM)
cordis.patch.yml bundle 补丁:向 profile 注册 log-memory 插件行
ctx.effect 管理定时器生命周期,通过 ctx.inject(["webServer"]) 注册路由;dsh.client.inject(@deepseek-ai/dsh-client-runtime)注入 Web UI,每 15 秒轮询一次状态;<DSH_HOME>/profiles/<profile>/log-memory.json。