📄 文档列表
🎬 口播文案
✏️ 编辑文档
标题
工具栏
加粗
H2 标题
H3 标题
引用
无序列表
有序列表
代码块
📷 上传图片
点击或拖拽上传图片
支持 PNG, JPG, GIF, WebP 格式
内容 (Markdown 格式)
昨天 v0.15.0 刚发布,今天 v0.15.1 就来了——GitHub 上已经有人在问"为什么升级后 Dashboard 一直在刷新"。 答案找到了。 Hermes Agent v0.15.1 是一个**同一天热修复补丁**,针对 v0.15.0 引入了几个让 Docker 用户和本地部署用户当场崩溃的 bug。其中最严重的是:**Dashboard 会进入无限重载循环**,页面不断刷新根本停不下来。 这篇文章把这次更新的核心内容讲清楚,重点是哪些人必须升级、以及升级前要注意什么。 --- ## 一、核心修复:Dashboard 无限重载循环(所有 loopback 用户必须升级) 这个是这次更新的 headline bug,影响范围最广。 **问题原因**(说人话版): 在 loopback 模式下(也就是本地跑 Hermes、用 Docker、或用托管版本的用户),Dashboard 会先调用 `/api/auth/me` 这个接口来确认身份。这个接口在未登录状态下返回 401 是**正常行为**。 但 v0.15.0 引入的 token 轮换检测逻辑,把**所有 401** 都当作了"token 过期了,需要刷新"的信号,于是触发了一次页面重载。而每次重载后,其他正常请求又会把"已经重载过"的状态清掉,导致这个流程永不停止——**页面就开始无限刷新**。 Firefox 用户看到这个:`"Navigated to /sessions"` 风暴;Chrome 用户看到 React 渲染循环风暴。 **修复方案**: 给 `fetchJSON` 加了一个 `allowUnauthorized` 参数,专门针对 loopback 模式下 `/api/auth/me` 的 401 放过这次重载逻辑——401 仍然会抛出,`AuthWidget` 仍然会吞掉它(显示登录界面),但不会触发无限重载循环。 | 用户类型 | 是否受影响 | 需要升级吗 | |---------|-----------|-----------| | v0.14.x 用户 | 否(bug 在 v0.15.0 新引入) | 否 | | v0.15.0 Docker 用户 | 是 | **必须升级** | | v0.15.0 本地部署用户 | 是 | **必须升级** | | v0.15.0 托管版用户 | 是 | 等待托管平台更新 | --- ## 二、Docker `--insecure` 逻辑改了(重要迁移提醒!) v0.15.1 之前,如果你用 Docker 跑 Hermes 并且绑定到非 loopback 地址(比如 `0.0.0.0`),系统会**自动推断**你需要 `--insecure` 模式。 这造成了一个混淆:把"我想要局域网访问"和"我想要关闭同源保护"混为一谈。 **v0.15.1 的改动**: 现在这两个需求彻底分开了。bind host 只管绑定地址,而关闭 Dashboard 的同源认证保护需要**显式设置环境变量**: ```bash HERMES_DASHBOARD_INSECURE=1 ``` **如果你正在用 Docker 并绑定了非 loopback 地址**,v0.15.1 开始会**默认启用安全模式**。如果之前你依赖这个自动推断行为,升级后需要手动加上这个环境变量。 **为什么这个改动合理**: 之前那种"绑定到 LAN 地址就自动推断为 insecure"的逻辑确实有问题——在本地开发机绑定 LAN 地址不代表你想要任何人无需认证就能访问 Dashboard。显式 opt-in 更安全,也更符合最小权限原则。 --- ## 三、MCP bare command 终于能在 Docker 里跑了 MCP 服务器配置里,如果用了 `npx`、`npm`、`node` 这种裸命令(不带完整路径),v0.15.0 在 Docker 容器里会静默失败——因为 agent 的 PATH 环境变量里找不到 Node 工具链的位置。 v0.15.1 修复:这些 bare command 现在直接解析到 `/usr/local/bin`,Docker 镜像里那些二进制文件在这里放着,所以能正确找到并启动。 --- ## 四、Skills 目录大爆发:858 → 19,932 条 这是另一个数据亮点。 之前 Skills hub 页面只显示部分目录(858 条),因为用了分页 API 拉取。v0.15.1 改成爬 sitemap,所以现在能拿到**完整的 19,932 条 skills.sh 目录**。 如果你之前找不到某个 Skill,现在可以在 picker 里完整搜索所有 19,932 条了。 --- ## 五、还有哪些值得注意的修复 | 修复项 | 说明 | |-------|------| | Kanban worker SIGTERM | 之前 SIGTERM 被中间进程吞掉,worker 杀不掉;现在能正常终止了 | | `.md` 文件媒体传输 | 之前媒体上传验证用了过于严格的 allowlist,现在改成 denylist-only | | `/yolo` 中途切换模式 | 之前 `/yolo` 在 session 中途使用时只切换了环境变量,但 agent 已经快照了旧值;现在能正确启用 per-session bypass | | URL 参数保留 | 之前 redaction 逻辑会把带凭证形状的 query 参数吃掉;现在透传不变 | | Kanban worker 视觉 | 现在能把 task body 里引用的图片正确传给有视觉能力的模型 | | Memory provider 上下文 | 现在 completed-turn 消息的 context 能正确传给 memory provider | --- ## 六、升级前检查清单 **必须升级的用户**: - [ ] 在用 v0.15.0 - [ ] 用 Docker 跑 Hermes - [ ] 用 loopback 模式跑本地部署 - [ ] 用托管 Hermes **需要手动加环境变量的用户**: - [ ] Docker 绑定到非 loopback 地址,且之前依赖自动 insecure 推断 → 升级后加上 `HERMES_DASHBOARD_INSECURE=1` **v0.14.x 用户**: - [ ] 如果你没升级到 v0.15.0,这次直接升 v0.15.1 就行,不影响 --- ## 写在最后 这次 v0.15.1 是一个典型的"热修复补丁",核心就一件事:把 v0.15.0 引入的无限重载循环修掉。如果你是在用 Docker 或者本地部署 Hermes,**现在就去升级**。 其他修复都是细节改善,Skills 目录从 858 暴涨到 19,932 是最大的功能亮点——之前找不到某个 Skill 的现在可以再去 picker 里搜一下。 --- ## 评论区预置内容 技能页终于显示全了||Docker 用户记得加那个环境变量||升级后 Skills 目录变全了||终于能正常关掉 worker 了
摘要
标签
多个标签用逗号分隔
分类
技术文章
教程指南
工具测评
项目实战
行业观察
默认
💾 保存修改
← 返回查看
返回列表