Repository navigation
Releases: snakejohn/dsh-hindsight-local
Releases · snakejohn/dsh-hindsight-local
Release list
v0.1.6
- 修复(Windows):DSH 开着时在插件管理器里更新本插件失败(「运行中的 DSH 占用着它的文件,pnpm 无法替换目录」)。原因是记忆服务(Hindsight)进程的工作目录在插件安装目录里,Windows 会锁住这个目录。现在记忆服务在
~/.dsh-hindsight/run(设置了「数据目录」时为<数据目录>/run)里运行,并把.env复制一份过去,插件目录里不再有运行中的程序或打开的文件。 - 注意:更新到 0.1.6 这一次仍需要先在插件管理器里关掉本插件(或完全退出 DSH),因为旧版启动的记忆服务还在占用目录;更新后再打开。从 0.1.6 往后的更新,DSH 开着也能直接更新。
安装/更新方法见 README。附件为源码 zip(不含任何密钥)。
v0.1.5:密钥只存 .env 且重装不丢、按工作区分库、重试修复、中文路径、侧栏卡片
- 修复:从 GitHub「移除后重新安装」或用压缩包更新插件后,保存在插件目录
.env里的 API 密钥和「记住哪些内容」设置会丢失(重新安装会替换整个插件目录)。现在.env每次写入都会在~/.dsh-hindsight/plugin.env另存一份,插件目录里没有.env时自动从这份恢复;「清除密钥」也会同步清掉这份。 - 修复:同一轮对话有时会被提交给记忆服务两次(文档相同不会重复记,但会多花一次整理记忆的模型调用)。一是记忆服务刚连上时会把还在进行中的一轮(只有你说的话)先提交一次,现在等这一轮结束再提交;二是对话结束后迟到的提交会从头读,现在会读取已保存的进度,内容没变的一轮不再重复提交。
- 改进(macOS):从程序坞/访达打开 dsh 时也能用上系统代理(读取「系统设置 → 网络 → 代理」),并能找到 Homebrew 装的 Python 3.12 和 uv(/opt/homebrew/bin、/usr/local/bin、~/.local/bin)。
- 修复:Windows 用户名(用户目录)含中文时一键部署失败。现在检测到
C:\Users\张三这类目录时,记忆服务的程序、Python、内置数据库(pg0)和模型缓存自动改放到纯英文目录(优先C:\Users\Public\dsh-hindsight,其次C:\dsh-hindsight),启动记忆服务时把HOME/USERPROFILE、uv/pip/HF 缓存和临时目录都指向那里,并始终用 UTF-8 输出(PYTHONUTF8=1)。已经在中文目录下装好、能用的不会被搬走。新增高级设置「数据目录」(service.local.data_dir,也可用环境变量DSH_HINDSIGHT_DATA_DIR),可以自己指定一个纯英文路径。 - 改进:高级设置和状态页里的英文改成中文(接口地址、密钥、安装方式/版本选项、服务商名称、运行状态等),技术名称放在括号里。
- 新增:设置「其他」里的「侧栏显示状态卡片」开关(默认开,保存后立即生效)。
- 改进:侧栏状态卡片的原因说明可以换行(最多 3 行,鼠标悬停看全文),提示文字也改短了。
- 修复:「重试失败项」后记录一直显示「失败(模型服务商限流或连不上)」。以前会对记忆服务里其实还在排队/整理中的记录发重试,被拒(HTTP 409)后仍记成失败。现在重试前先查真实状态:只重试失败/已取消/延后的,排队/整理中的显示为「处理中」,409「还在排队」不再算失败,旧的失败记录会定期和记忆服务对账。服务商返回 401/403(例如密钥被删除或重新生成)时,显示「密钥无效或已失效」,不再误报限流/连不上。
- 修复:API 密钥不再写进 dsh 的
cordis.patch.yml(以前面板保存时会把明文密钥存进配置文件)。现在密钥只存在插件目录的.env(DSH_HINDSIGHT_EMBEDDING_API_KEY/DSH_HINDSIGHT_RERANKER_API_KEY/DSH_HINDSIGHT_LLM_API_KEY/DSH_HINDSIGHT_API_KEY)。已经写在配置文件里的密钥会在启动时自动搬进.env(.env里已有的不覆盖),打开一次设置页后从配置文件里删掉。 - 改动:记忆库只按工作区分:每个工作区绑定唯一一个记忆库,几个工作区可以接入同一个库共用。移除「按什么分开记」(
bank.scope的preset按角色 /session按对话)和DSH_HINDSIGHT_BANK_SCOPE。旧设置会自动回退到按工作区、不报错;以前按角色/按对话建的记忆库和里面的记忆都还在,可在工作区设置里「接入已有库」继续用。按工作区自动建的库 ID 不变。 - 修复:小黑盒发布文章时报「图片链接不合法」。文章的图片改用纯 ASCII 文件名
docs/article-img/NN.png(npm run article:assets生成),链接里不再有%或中文;「使用文档」链接改成纯 ASCII 的文档目录地址;文章里的表格改成图片,排版只用小黑盒支持的格式(重要链接旁写出完整网址),另可生成 Word 版(npm run article:docx)。
安装/更新方法见 README。附件为源码 zip(不含任何密钥)。
v0.1.4:首图版本自动更新、记住哪些内容写入 .env
升级后怎么做
- 在 dsh 里更新插件(或下载下面的
dsh-hindsight-local-v0.1.4.zip从本地文件夹安装),重启 dsh。 - 不需要改任何设置。插件启动后,「记住哪些内容」的设置会同时出现在插件目录的
.env里(DSH_HINDSIGHT_RETAIN_*)。
更新内容
- 新增:「记住哪些内容」的设置和其他设置一样,同时保存到插件目录的
.env(DSH_HINDSIGHT_RETAIN_*几行),每次保存设置都会按设置页重写。 - 改动:首图和 GitHub 社交预览图上的版本号跟着版本走:新增
scripts/make-banner.py(npm run release:assets),按package.json的版本重画banner.png和cover.png;吉祥物原图收进仓库docs/images/mascot.png。 - 改动:文章首图链接改为钉在版本标签上(之前用
@main,会被缓存成旧图)。 - 新增:测试会检查首图版本和文档里的 jsDelivr 链接是不是当前版本,发版时忘了改会直接报错;新增
CONTRIBUTING.md发版清单。 - 文档:状态页截图(20、21)换成新界面,包括「看看记住了什么」的分页浏览。
- 确认:侧栏「记住于 / 回忆于」已保存在本地、重启后还在,没有记录时显示「还没有」,「记住于」只在真正整理成功后更新(v0.1.3 已完成,本版补测试)。
v0.1.3:真实进度、失败重试、每个工作区选记忆库
修复「记忆库一直是 0 条、进度却显示完成」:根本原因是整理记忆的模型被限流(429)或连接中断,Hindsight 里的整理操作失败了,而旧版只看「已提交」。
升级后怎么做
- 在 dsh 里更新插件(或下载下面的
dsh-hindsight-local-v0.1.3.zip从本地文件夹安装),重启 dsh。 - 打开插件「状态」页 →「记住进度」,点「重试失败项」(不点也会自动重试)。以前是空的记忆库会在重试完成后慢慢有内容。
- 「同时处理数」保持 1。如果还是经常失败,把「整理记忆的模型」换成硅基流动(见使用文档常见问题)。
- 遇到问题:状态页点「导出日志」(密钥自动隐藏),再点「去提问题」。
更新内容
- 修复:记忆库一直是 0 条、进度却显示「完成」。原因是整理记忆的模型被限流(429)或连接中断,Hindsight 里的操作失败了,插件只看「已提交」。现在进度按 Hindsight 的真实操作状态显示:已提交 / 完成 / 处理中 / 失败;失败项自动退避重试,状态页有「重试失败项」按钮,重复提交不会产生重复记忆(同一段对话用固定文档 ID 覆盖写入)。
- 新增:「同时处理数」(默认 1,最多 4),导入和补记一段一段排队整理,并同步设置 Hindsight 的并发参数,减少限流。
- 修复:整理记忆的模型是本机地址(如 dsh 桌面版的
127.0.0.1:3425)而它没启动时,不再改成「只保存原话」,而是暂停并提示「模型地址 <地址> 连不上,请确认对应的程序已启动;连上后会自动继续」,连上后自动重试失败项、继续未完成的导入。 - 改动:新装插件不再自动导入以前的全部对话,改为提示「要导入以前的对话吗?」,可以选工作区或单个对话导入(已记过的会标出来)。升级的用户保持原来的状态。
- 新增:每个工作区单独选记忆库:「新建库」(默认,可自己起名,中文也行)或「接入已有库」(会显示已被哪些工作区使用)。一个工作区只读写一个库,多个工作区可以共用一个库。原来的映射和「按对话」设置保持不变。
- 新增:记忆库显示中文名字。库 ID 仍是英文(已有 ID 不变),名字用工作区原名或你起的名字,已有的库会自动补上名字;面板先显示名字,ID 用小灰字。
- 修复:侧栏「记住于 — · 回忆于 —」。时间现在保存在本地,重启后还在;「记住于」只在 Hindsight 真的整理完成后才更新,导入和补记也算;没有记录时显示「还没有」,用中文相对时间(刚刚 / 3 分钟前)。
- 新增:状态页「导出日志」(自动隐藏密钥,导出后打开所在文件夹)和「去提问题」;GitHub 新增中文问题模板。
- 新增:日志自动清理:单个文件超过 5 MB 就轮换(Windows 下也安全),最多保留 3 份,总量约 25 MB,超过 14 天的旧文件删除;同一条报错连续重复只记一次并注明次数;日志里的密钥会被自动隐藏。
- 修复:崩溃安全。状态文件改为原子写入(先写临时文件再替换);实测反复重启、写入前后强制结束插件、强制结束记忆服务进程,都不会丢记忆或重复记忆。
- 修复:共用一个 Hindsight 时,不再接管别的程序记忆库里的失败操作;同一次提交在 Hindsight 里的父子两条操作不再重复计数。
- 新增:高级设置「记住哪些内容」:我说的话(开)、AI 的回复(开)、工具调用内容(关,打开后可设每条最多几个字)、AI 的思考过程(关,截断)、系统提示(关,只在变化时记一次)、已归档的对话(关)、子代理的对话(关)、最短字数(24)。插件自己插入的记忆块永远不记。只影响以后新记的内容;也可以用
.env里的DSH_HINDSIGHT_RETAIN_*设置。 - 改动:「工具调用内容」默认改为不记。以前没设置过的用户升级后自动变为不记,自己打开过的保持不变。
- 面板:记忆库显示「⏳ 整理中」条数。
- 改进:「看看记住了什么」默认收起;展开后默认看最近聊天用的库,每次加载 10 条(「加载更多」分页,不一次拉全部,几百条记忆也很快),可搜索;新增「隐藏内容」开关(文字模糊,点一下才显示,开关会记住)。
- 修复:日志轮换后读取部署日志出错;打开选择器时页面不再跳动。
- 文档:新增导入、记住进度和失败项、工作区选择记忆库截图;常见问题新增「被限流怎么办(换硅基流动)」「模型地址连不上」「日志会越来越大吗」「怎么反馈问题」。
v0.1.2
v0.1.2
修复
- 新装插件显示密钥「已设置」:旧版把“跟随 dsh 时借用的 dsh 密钥”和“同一服务商共用的密钥”也算成已设置。现在每个模型单独判断,只认真实密钥,并写明来源(本插件 .env / dsh 插件配置 / 系统环境变量);跟随 dsh 时显示「使用 dsh 的密钥」。插件本身不带任何密钥。
- 模型下拉看不到:填密钥约 0.5 秒后自动「正在获取模型…」,按类型过滤(理解文字只列向量模型等),三步设置页也能直接选模型;报错为中文(密钥不对 / 网络不通),仍可手动输入模型名。
- Windows 启动报
httpx.InvalidURL: Invalid port: ':1]':插件为记忆程序整理代理环境——合并环境变量和注册表 ProxyOverride,去掉[::1]、IPv6、<local>、通配符等无法识别的条目,补上 localhost / 127.0.0.1,并显式传入 HTTP(S)_PROXY。日志出现该错误时面板给出中文提示。
新增 / 改进
- 所有下拉换成 iOS 26 风格玻璃选择器:当前项打勾、悬停/按下反馈、动画、滚动、键盘操作、点外面关闭,跟随 dsh 深浅色;模型选择器支持搜索和自定义输入。
- 「高级设置 → 代理」:自动 / 不用代理 / 自定义地址。
- 「高级设置 → 清除密钥」:一键清除本插件 .env 和 dsh 插件配置中的密钥。
测试
- 新增按字段密钥状态、代理清洗(含伪造注册表数据)、模型过滤单元测试;Linux 上复现
Invalid port崩溃并验证修复后可启动、写入、召回。
文档
- 重拍设置页截图,新增服务商选择器、模型搜索、密钥来源、代理设置截图;常见问题新增「新装的插件为什么显示已设置?」「启动报 Invalid port 怎么办」。
- 新增
docs/小黑盒文章.md(图片为 jsDelivr 绝对地址,可直接导入)。
安装
- 从 GitHub:
https://github.com/snakejohn/dsh-hindsight-local(或github:snakejohn/dsh-hindsight-local#v0.1.2) - 或下载下面的
dsh-hindsight-local-v0.1.2.zip,解压后在 dsh「从本地文件夹安装」。
v0.1.1
v0.1.1
修复
- 重启 dsh 时旧的 Hindsight 尚未退出导致数据库被误停(新增 PID 文件,启动前等待旧实例退出)。
- 只有日期的记忆被当成 08:00(UTC 0 点),召回和控制面板改用对话实际时间。
- 中文短对话被「太短不记」误丢(
min_turn_chars计数时中日韩文字按 2 个字符算)。
新增 / 改进
- 「向量维度」设置(默认 1024,写入
.env,在高级设置里)。启动本地服务前比对设置值、模型实测输出和记忆库已有维度,不一致就不启动并用中文说明怎么改,已有记忆不会被写坏。 - 「已经配置好了」(连接已有服务)模式:密钥不对、地址填错、服务没开或中途停止时,卡片和状态页给出中文提示;服务中途停止期间的对话会排队,恢复后约 1 分钟内自动补记;插件不会启动、停止或修改外部服务。
- LLM 超时默认 300 秒;长消息写入默认分块 1500 字符、最大输出 8000(实测解决「处理中」卡住)。
- 已保存密钥时输入框显示「已保存过密钥」;控制面板时间改为中文 24 小时制。
测试
- 新增向量维度、连接错误单元测试,以及用真实 Hindsight 跑的记忆库绑定端到端测试(工作区隔离、按角色/按对话、共享库、改映射、去重)。
文档
- README 重写;新增技术说明、Hindsight 控制面板章节、LoCoMo 压测数据。
- 新增「迁移和备份记忆」一章:备份恢复、把本地服务改成独立服务、换电脑、合并/拆分记忆库、向量维度。重拍状态页和高级设置截图。
安装
- 从 GitHub:
github:snakejohn/dsh-hindsight-local#v0.1.1 - 或下载下面的
dsh-hindsight-local-v0.1.1.zip,解压后在 dsh「从本地文件夹安装」。
v0.1.0
首个版本:dsh 本地长期记忆插件(Hindsight)。
- 三步上手:选服务商 → 粘贴一个硅基流动密钥 → 一键开始(自动装 uv / Python 3.12,走国内镜像)
- 默认模型:BAAI/bge-m3 + BAAI/bge-reranker-v2-m3(同一个密钥),整理记忆的模型默认跟随 dsh
- 左侧栏状态灯、状态页、主动记忆、限流自动重试(内容不丢)
- 小白文档:docs/使用文档.md
安装:dsh「Plugins → Add plugin」粘贴 https://github.com/snakejohn/dsh-hindsight-local ,或下载下面的 zip 解压后填文件夹路径。