Skip to content

Releases: techysy/hermes-fry-cards

v0.2.0 — 🍟 Hermes 0.21 modular 支持 / token 吊销自愈 / 模型别名

Choose a tag to compare

@techysy techysy released this 05 Sep 01:02

🍟 hermes-fry-cards v0.2.0

v0.1.1 后的功能里程碑:重点支持 Hermes 0.21 modular 网关布局(外部 PR #2 by moliyjin-521),并带来 token 吊销自愈、模型别名、show_reasoning 默认开启。

✨ 新增 / Added

  • Hermes 0.21 modular 网关布局支持(PR #2)— 自动识别拆分后的 run_inbound.py/run_turn.py/run_turn_runner.py/run_busy.py,15 个 hook 分布到各文件;同时 patch 新的 cron/scheduler_delivery.py,并保留 legacy 路径兼容。modular apply/remove/restore 按源文件原子化 + 独立备份
  • token 吊销运行时恢复 — 遇 99991663 Invalid access token 自动清 SDK token 缓存并重试一次,无需重启网关(FeishuClient.invalidate_token_cache()
  • 模型别名 — 新增 ~/.hermes/model_aliases.json,子串匹配命中显示别名,未命中回落截断;改文件即生效
  • show_reasoning 默认开启 + 推理面板完成自动收起

🔧 变更 / Changed

  • CLI status 读取 Hermes profile .env — 不再把有效凭据误报为缺失

🐛 修复 / Fixed

  • seal/complete 失败时删除 loading 图标,卡片不再残留「处理中」
  • 修正 4 个从未通过的陈旧测试 — 全量 519 通过 / 0 失败

完整变更见 CHANGELOG.md

v0.1.1 — 🍟 薯条卡片(首个正式版本)

Choose a tag to compare

@techysy techysy released this 23 Aug 04:55

🍟 hermes-fry-cards v0.1.1(首个正式版本)

灵感来自 hermes-lark-streaming,独立开发版本。

经过 rc2–rc7 七轮预览版迭代,插件核心链路趋于稳定,正式发布 🎉

🛡️ 本次更新:内部稳定性优化

对照 OPTIMIZATION_PLAN 差距分析,落地全部 P0 三项与 P1 补齐。配置项与卡片样式零变化,升级无需改任何配置。

session 生命周期统一

  • 新增 _register_session / _dispose_session 单一入口,清理幂等(重复执行不报错)
  • 中断接管后旧 session 清理不再误删新 session 映射
  • 同 message_id 旧会话已终态时允许重建(原先永久拒新直到重启网关)

FlushController 竞态修复

  • 完成标记与重刷请求交叉时,不再对已完成卡片发起多余的 CardKit API 调用
  • 消除「timer 触发 + 立即路径」双刷同一份数据的问题

失败分类与结构化日志

  • 失败原因随 session 记录且不被后续覆盖,排障可直接定位首次失败点
  • 建卡失败区分飞书 API 错误码与未知错误
  • 日志事件标准化:session_created / card_created / card_reply_failed / fallback_to_text / session_disposed

质量保障

  • 新增 9 个回归测试:499 通过 / 仅剩 4 个基线遗留失败
  • 自 rc7 起默认值已对齐推荐配置,新装开箱即用

🚀 安装

curl https://raw.githubusercontent.com/techysy/hermes-fry-cards/main/INSTALL.md

手动安装

git clone https://github.com/techysy/hermes-fry-cards.git
cd hermes-fry-cards
HERMES_PYTHON=~/.hermes/hermes-agent/venv/bin/python3
$HERMES_PYTHON -m pip install -e .
$HERMES_PYTHON -m hermes_fry_cards verify
$HERMES_PYTHON -m hermes_fry_cards install

然后重启 gateway(在外部终端执行):

hermes gateway restart

卸载

HERMES_PYTHON=~/.hermes/hermes-agent/venv/bin/python3
$HERMES_PYTHON -m hermes_fry_cards uninstall
$HERMES_PYTHON -m pip uninstall hermes-fry-cards

MIT License · 安装文档 · English

Full Changelog: v0.1.0-rc2...v0.1.1

v0.1.0-rc7 — 🍟 薯条卡片 (预览版)

Choose a tag to compare

@techysy techysy released this 22 Aug 09:31

v0.1.0-rc7

变更

  • 默认值对齐当前推荐配置 — 新装用户开箱即用即为此套样式
    • streaming.enabled 默认 true
    • streaming.header.enabled 默认 true
    • streaming.footer.enabled 默认 false
    • footer.fields 默认顺序 status → elapsed → model → context
    • truncate_model_name 默认 true
  • README 配置示例 / 默认值表同步更新

v0.1.0-rc6 — 🍟 薯条卡片 (预览版)

Choose a tag to compare

@techysy techysy released this 22 Aug 08:16

v0.1.0-rc6

修复

  • 卡片元素超限(300305)强制拆卡恢复 — 补全 rc5 遗漏的独立错误码路径
    • 新增 CARDKIT_ELEMENT_LIMIT_TOTAL = 300305 识别
    • 卡片实际元素总数超过飞书硬上限时自动封印旧卡/创建新卡/迁移未创建 segment 继续流式,避免消息永久卡在「处理中」
  • 远程图片 URL 过滤 — CardKit 拒绝远程 URL 作为 image key(200570),工具输出先 strip 远程图片引用(保留飞书 img_* key),并包进代码围栏

v0.1.0-rc5

v0.1.0-rc5 Pre-release
Pre-release

Choose a tag to compare

@techysy techysy released this 22 Aug 05:09

🍟 hermes-fry-cards v0.1.0-rc5

✨ 新功能

限制 reasoning 面板数量 — 兼容不支持分段思考的模型(如 deepseek-v4-flash)

  • display.platforms.feishu.max_reasoning_panels(默认 3)
  • 超出后推理片段合并进最后面板,修复卡片元素溢出(300305)

统一面板按需显示unified_panel_min_duration(默认 5s)

  • 有工具调用 → 显示统一面板
  • 无工具且耗时 ≤ 5s → 不显示冗余 header

bar 渐变阴影进度条[███▓▒░░░] 35%

  • text / bar / text_bar 三种模式
  • block/block_text 已废弃(桌面端/移动端显示不一致)

模型名截断开关truncate_model_name(默认 false)

  • or/lc/LongCat-2.0⇲LongCat-2.0

🐛 Bug 修复

  • 完成态 reasoning Duplicate ID(卡片卡 loading)
  • context_display_mode 白名单补充 block(后废弃)
  • /stop 中断 footer 显示模型名和耗时

📦 交付资产

  • INSTALL.md — 双路径安装指南
  • hermes-fry-cards-skill.md — 使用说明 skill

🧪 测试报告

490 通过 / 4 基线失败(无新增回归)

v0.1.0-rc4

v0.1.0-rc4 Pre-release
Pre-release

Choose a tag to compare

@techysy techysy released this 22 Aug 03:16

🍟 hermes-fry-cards v0.1.0-rc4

✨ 新功能

上下文进度条 — 统一面板 header 显示上下文窗口使用量,5 种显示模式:

context_display_mode 效果
text(默认) 55.6k/1.0m (5%)
bar [██░░░░░░]
text_bar 20k/1.0m [██░░░░░░] 21%
block [▪▪▪▫▫▫▫▫▫▫]
block_text 20k/1.0m [▪▪▪▫▫▫▫▫▫▫] 21%

限制 reasoning 面板数量 — 兼容不支持分段思考的模型(如 deepseek-v4-flash)

  • 新增 display.platforms.feishu.max_reasoning_panels(默认 3)
  • 超出后后续推理片段合并进最后一个面板,防止卡片元素溢出(300305)

模型名截断开关display.truncate_model_name(默认 false)

  • or/lc/LongCat-2.0⇲LongCat-2.0,header/footer 两处应用
  • 可全局或飞书平台独立配置

统一面板图标更新 — 🛠️→🔧 ⌚️→⏱️

🐛 Bug 修复

  • 完成态 reasoning Duplicate ID(卡片卡 loading)
  • /stop 中断时 footer 显示模型名和耗时

🧪 测试报告

490 通过 / 4 基线失败(无新增回归)

📦 交付资产

  • INSTALL.md — 双路径安装指南
  • hermes-fry-cards-skill.md — 使用说明 skill

v0.1.0-rc3 — 🍟 薯条卡片 (预览版)

Choose a tag to compare

@techysy techysy released this 21 Aug 11:58

🍟 v0.1.0-rc3

✨ 新增

  • 上下文进度条 — 统一面板 header 新增上下文窗口使用量,三种显示模式:text / bar / text_bar
  • 独立配置开关 — show_context + context_display_mode,默认开启 text 模式
  • 智能单位 — 小于 1M 用 k,大于等于 1M 用 m
  • 统一面板图标更新 — 🛠️→🔧(工具)、⌚️→⏱️(耗时)

🐛 修复

  • 完成态 Duplicate ID 修复 — 复用流式阶段 reasoning text_el_id,修复卡片卡 loading
  • fallback 用带索引唯一 ID — 彻底杜绝 Duplicate ID
  • /stop 中断时 footer 显示模型名和耗时

📝 文档

  • README 补充上下文显示配置说明和格式对比
  • README 添加相关项目表格(aiduPOP、lark-hls-v2)
  • 新增 skill 文件(AI Agent 自动配置用)
  • 测试报告:490 通过 / 4 基线失败(无新增回归)

📦 交付资产

  • INSTALL.md — 双路径安装指南
  • hermes-fry-cards-skill.md — 使用说明 skill

v0.1.0-rc2 — 🍟 薯条卡片 (预览版)

Choose a tag to compare

@techysy techysy released this 21 Aug 02:41

🍟 hermes-fry-cards v0.1.0-rc2

灵感来自 hermes-lark-streaming,独立开发版本。

✨ 主要功能

  • 流式卡片 — 打字机效果实时输出,按事件顺序动态渲染思考 / 工具 / 回答
  • 工具调用合并 — 多个工具调用更新同一 pending 面板,保持卡片紧凑
  • 推理展示 — 多轮推理复用面板,支持展开/收起
  • 状态色框 — 顶部 header 根据状态自动着色(蓝/绿/红)
  • 终态卡片 — token 用量、耗时、上下文窗口
  • 图片解析 — markdown 图片自动上传为飞书 img_key
  • 卡片拆分 — 接近 200 元素上限时自动分卡
  • Cron 推送 — 定时任务结果以卡片推送
  • 中英双语 — 根据飞书客户端语言自动切换

🔧 本次修复(基于 dsh 代码审查)

  • 版本号统一为 0.1.0-rc2
  • footer 显示完整模型名,不再截断供应商
  • 修复 reasoning_text Duplicate ID 导致完成态卡片无法收尾(统一面板复用流式元素 ID)
  • 修复 CardKit batch update failed: not find elementID: tool_panel
  • 统一面板 header 空耗时不再产生尾部空格
  • 简化 _completion_session 冗余条件,明确 FAILED 收尾逻辑
  • status 命令复用 marker_status(),避免重复读文件
  • cron patcher 失败输出日志
  • feishu.py User-Agent 动态读取版本号
  • 阈值注释修正(余量 18 波动 + 2 footer)

🚀 安装

curl https://raw.githubusercontent.com/techysy/hermes-fry-cards/main/INSTALL.md

手动安装

git clone https://github.com/techysy/hermes-fry-cards.git
cd hermes-fry-cards
HERMES_PYTHON=~/.hermes/hermes-agent/venv/bin/python3
$HERMES_PYTHON -m pip install -e .
$HERMES_PYTHON -m hermes_fry_cards verify
$HERMES_PYTHON -m hermes_fry_cards install

然后重启 gateway(在外部终端执行):

hermes gateway restart

卸载

HERMES_PYTHON=~/.hermes/hermes-agent/venv/bin/python3
$HERMES_PYTHON -m hermes_fry_cards uninstall
$HERMES_PYTHON -m pip uninstall hermes-fry-cards

MIT License · 安装文档 · English

v0.1.0-rc1 — 🍟 薯条卡片 (预览版)

Choose a tag to compare

@techysy techysy released this 20 Aug 17:31

🍟 hermes-fry-cards v0.1.0-rc1

灵感来自 hermes-lark-streaming,独立开发版本。

主要功能

  • 流式卡片 — 打字机效果实时输出,按事件顺序动态渲染思考 / 工具 / 回答
  • 工具调用合并 — 多个工具调用更新同一 pending 面板,保持卡片紧凑
  • 推理展示 — 多轮推理复用面板,支持展开/收起
  • 状态色框 — 顶部 header 根据状态自动着色(蓝/绿/红)
  • 终态卡片 — token 用量、耗时、上下文窗口
  • 图片解析 — markdown 图片自动上传为飞书 img_key
  • 卡片拆分 — 接近 200 元素上限时自动分卡
  • Cron 推送 — 定时任务结果以卡片推送
  • 中英双语 — 根据飞书客户端语言自动切换

安装

curl https://raw.githubusercontent.com/techysy/hermes-fry-cards/main/INSTALL.md

手动安装

git clone https://github.com/techysy/hermes-fry-cards.git
cd hermes-fry-cards
HERMES_PYTHON=~/.hermes/hermes-agent/venv/bin/python3
$HERMES_PYTHON -m pip install -e .
$HERMES_PYTHON -m hermes_fry_cards verify
$HERMES_PYTHON -m hermes_fry_cards install

然后重启 gateway(在外部终端执行):

hermes gateway restart

卸载

HERMES_PYTHON=~/.hermes/hermes-agent/venv/bin/python3
$HERMES_PYTHON -m hermes_fry_cards uninstall
$HERMES_PYTHON -m pip uninstall hermes-fry-cards

后续计划

  • 完善测试覆盖
  • 支持更多自定义样式
  • 优化性能

MIT License · 安装文档 · English