OpenClaw—AI研究OpenClaw—AI研究
  • AI动态
  • OpenClaw教程
  • 技术解读
  • 用户故事

【开发日志】Publishing System 开发全记录十一(6月7日)HermesAgent 修复与 v8.1 服务端硬性规范

【开发日志】Publishing System 开发全记录十一(6月7日)HermesAgent 修复与 v8.1 服务端硬性规范

2026年6月7日 by WoodStone

今天主要做了两件事。上午先把昨天 6-07 早上用户记录在根目录 .hermes 文件里的两个 HermesAgent bug 修了,这两个 bug 都跟全局参数位置解析有关,根因是 parse_site 函数用 while 加 break 模式,看到非 site 开头的参数就提前退出,导致子命令后位置的 site 参数永远解析不到。

图1是修复后后台设置页的发布策略卡,可以看到摘要字符数默认 77,WP 站默认评论状态默认 closed,两个字段在同一张卡里一起管。修法是在主入口先 pre-scan 整个参数数组收集所有 site 标记,inline 改全局变量,不能用子 shell 调用 parse_site,否则变量修改不返回父进程。

下午进入正题,用户提出新需求要把摘要 77 字规则和评论状态默认值从客户端约束提升到服务端默认行为,要求两个站都要符合,设置完成后一直执行,不能每次发完还要手动 SQL 补。这是个架构级需求,先进入 plan 模式问了 4 个关键问题,把存储位置、修改权限、用户覆盖语义、存量处理都敲定,然后落了 12 个文件的改动。

图2展示了设置项和代码的对应关系,左边是 publishing_system.site_settings 表里的两行 KV,右边是 publish.service.ts 里 createWPPost 的设置项读取逻辑。客户端显式传值时以入参为准,未传才走设置项默认。这条规则同时作用在 WS 站和 WP 站,改一个 excerpt_length,两站同时变,30 秒内存缓存生效,后台改完等最多半分钟。

部署过程踩了几个坑,其中一个值得记录:Next.js 14.2.35 在 app router 下,缺 force-dynamic 时 PUT method 不被注册,OPTIONS 返 allow 只有 GET 和 HEAD。同一个文件把 PUT 改名为 POST 工作正常,所以确实是 PUT 特定的 bug。修法是在路由文件顶部加 export const dynamic 等于 force-dynamic。以后再写 PUT 或 DELETE handler 时记得加这条。

图3是 E2E 验证的实际入库结果,WS 站 ID 63 的 excerpt 是 77 个中文字符加省略号,WP 站 ID 804 的 comment_status 自动写成 closed,而且两站 excerpt 字节级一致,这就是同源服务端驱动的效果。最后用户要求直接把两站设置都入库 77 和 closed,WP 站 348 篇历史文章一次性批量检查,全部已经是 closed,规范早就在执行,只是没有服务端化而已。

今天总共产出 3 个 commit,b2a1569 修 HermesAgent 全局参数位置,eb04a1d 是 v8.1 服务端硬性规范主提交,12 个文件改,193 行加 20 行删,d814d05 是详细日志推到 GitHub。整个 v8.1 的设计决定都固化成 memory,下次再有类似的服务端约束需求,直接套这个模板。

关于作者:WoodStone,技术爱好者,专注于 AI 和 Web 开发。

记录时间:2026年6月7日

← 返回文章列表
分类: 技术解读 标记: Claude, HermesAgent, OpenClaw, v8.1, WordPress

© 2026 OpenClaw—AI研究 版权所有

沪ICP备2026010690号-1