Releases: SelectXn00b/HermesApp
Releases · SelectXn00b/HermesApp
Release list
v20250504-0830: Skill 生成保留 UI 元素定位信息
Update 90: SkillSummarizer prompt 修复
问题
录制的 Skill 生成后,AI Agent 无法执行。原因是 AI 总结器的 prompt 指导 LLM 生成"人类可读的操作教程",丢失了 UI 元素的具体定位信息(text、resourceId、className 等),Agent 面对复杂的无障碍树无法精确找到操作目标。
修复
- 修改
SkillSummarizer的 system prompt,明确要求 AI 保留:- text — 元素显示文字
- contentDescription — 无障碍描述
- className — 元素类型(Button/TextView 等)
- resourceId — Android 资源 ID
- Activity 和 packageName — 每步所在页面
- 生成格式改为 Agent 可直接执行的指令,如
点击 text="房态房量" 的 [TextView] 元素 - 不再允许 AI 将具体操作概括为模糊的自然语言
- Fallback 生成器也同步改进,包含元素选择器和 Activity 上下文
v20250504-0820: Skill 构建器 + StateFlow 修复
Update 89: Skill 录制器 → 分步构建器
新功能
- 将 Skill 录制器重构为分步构建器
- 每个步骤可独立选择"录制"(从设备捕获操作)或"思考"(手写推理逻辑)
- 新流程:IDLE → BUILDING → STEP_RECORDING → BUILDING → SUMMARIZING → REVIEW
- 步骤支持上下移动、删除、编辑(思考步骤)
- AI 总结器支持混合步骤类型的 prompt
Bug 修复
- 修复 MutableStateFlow 去重导致步骤不显示的问题
- 原因:先修改原 session 的 steps 列表再 copy,导致新旧值 equals() 相等,StateFlow 不发射
- 修复:创建全新的 steps 列表再赋值给 StateFlow
Dev Build 20250504-2230: 飞书插话功能 + 429 重试
新功能:飞书插话(Interrupt + Inject)
飞书/Gateway 窗口现在支持在 agent 处理消息时发送新消息,自动中断当前任务并处理新消息。
工作流程:
- 用户发消息 A → agent 开始处理
- 用户在处理中发消息 B → 系统发 "⚡ 正在中断..." ack → 中断当前 agent → 处理消息 B
- 支持连续插话(最多 3 层深度)
改动文件:
Run.kt— 新增_pendingEvents+_interruptFlags,busy 分支改为存储 pending + 信号中断,新增 pending-event 循环HermesGatewayController.kt— 等待循环增加中断检测(500ms polling),检测到中断时调用core.cancelMessage()取消 agent,返回 INTERRUPTED_SENTINEL
Bug 修复:429 Rate Limit 重试
修复 429 (rate limit / model cooldown) 被当作不可重试的 4xx 客户端错误的问题。
- OpenAIProvider / GeminiProvider / ClaudeProvider: 429 状态码改为可重试 IOException
Dev Build 20250504-2150: 429 rate limit 重试修复
修复 429 (rate limit / model cooldown) 错误被当作不可重试的 4xx 客户端错误处理的问题。
改动:
- OpenAIProvider / GeminiProvider / ClaudeProvider: 429 状态码从 NonRetriableException 中排除,改为可重试的 IOException
- 之前:429 → NonRetriableException → 立即失败 → 飞书收到空回复
- 之后:429 → IOException → 自动重试(带退避策略)→ 等 cooldown 结束后重新请求
Dev Build 20250504-2130: 飞书自动总结 + Skill 直接创建
变更
- 启用飞书/Gateway 窗口的自动上下文总结(token 超阈值时自动压缩历史 + 续写)
- skill_recorder 工具新增
createaction,agent 可直接创建 skill 不需要录制会话
Dev Build 20250504-2042: 飞书窗口自动总结
变更
- 启用飞书/Gateway 窗口的自动上下文总结
- 当 token 用量超过阈值时,自动压缩历史 + 续写
- Pre-send 总结检查仍由 Gateway 路径跳过(agent 通过 mid-stream 回调处理)
v20260504-0710
Update 88b: Fix save-then-navigate-back by resetting to IDLE state before going back, preventing re-navigation loop.
v20260504-0700
Update 88: Auto-navigate back after skill save with Snackbar confirmation showing skill name.
v20260504-0640
Update 87: Fix duplicate skill name error when saving recorded skills. Sync SKILL.md frontmatter name field with user-chosen directory name to prevent SkillManager duplicate detection conflicts.
Update 86: Skill recorder draft feature
- Added optional draft text field in the skill recorder IDLE screen
- Users can describe their intended operation before recording (e.g., "Open WeChat, search for John, send Hello")
- AI summarization now receives both the draft (user intent) and recorded frames (actual operations)
- Draft is shown read-only on the review screen for reference
- When draft is provided, system prompt instructs AI to prioritize user intent for generating accurate skill name, description, and steps
- Fallback SKILL.md generation also uses draft text for the description field