v0.4.0 — Hermes v0.14 适配 + 客户价值导向营销 + 20+ Bug 修复
v0.4.0 (2026-05-19)
New
- Hermes v0.14 适配:config.model 从嵌套 dict 变为扁平字符串,Trade 自动兼容两种格式
- 启动时自动从 GitHub 拉取最新 B2B skills,确保 skills 始终与仓库同步
- macOS 开机自启动(launchd,后台静默无终端窗口),安装脚本自动配置;
trade update后自动重启服务 - 定时任务使用说明书:页面上方嵌入零基础 cron 表达式教程,含速查表、符号说明和常见问题
trade update / backup / skills-update子命令正确路由,无需启动服务器即可更新- 输出语言规则:LinkedIn/lead-generation/social-media 三个 skill 均按目标客户语言输出,默认英语
- LinkedIn/lead-generation/social-media 三个 skill 全面转向客户价值导向:内容以客户痛点+解决方案为中心
- TRADE_HOME 环境变量支持:测试和开发环境下工作目录不会污染桌面
Changed
- hermes-agent 从 chefroger fork 迁移到上游 NousResearch/hermes-agent v0.14
- 版本约束从 >=0.12.0,<0.14.0 提升到 >=0.13.0,<0.15.0
- OSINT 背调使用精简 system prompt,不再把文档生成指南带入调查场景
- OSINT 背调时禁止注入历史对话,防止上一轮背调话题污染当前查询
Fixed
- SQLite busy_timeout=30000,防止并发写入 database is locked
- SSE QueueFull 防护:工具事件过于频繁时静默丢弃而非崩溃
- API 异常信息脱敏:异常详情只写日志,前端返回通用错误消息
- customer.update 越权修复:extra 字段更新时缺少 company_id 校验
- api_key 跨 provider 兜底可能导致拿错 key,改为精确匹配
- DELETE /companies/{id} 缺少鉴权:已认证用户可越权删除其他公司数据
- post_install.py 中 urllib.error 未 import 导致 HTTP 错误时 NameError 崩溃
- email_intel.py trio/asyncio event loop 混合崩溃:async 路径改为子进程运行 holehe
- linkedin_verify.py 中 {domain_clean} 占位符未被 f-string 替换
- orchestrator.py LinkedIn 搜索时把 email 当公司名
- 测试中 /tmp 硬编码路径在 Windows 上崩溃
- memory.py 中 import fcntl 在 Windows 上崩溃
- 6 处 ~/.hermes/ / ~/.trade/ 硬编码路径改为平台感知的默认路径
- Windows install.ps1 中 trade.cmd HERMES_HOME 赋值错误 + 未加 PATH
- cron/jobs API 适配 Hermes 实际 jobs.json 数据结构
- 全项目 100+ 函数 docstring 英→中转换 + 150+ if-branch 中文注释补全
Full Changelog: v0.3.0...v0.4.0