Skip to content

Add Hermes desktop and CLI support on macOS and Windows - #34

Merged
zoefix merged 1 commit into
zoefix:mainfrom
WeGoHard:feat/hermes-client-support
Oct 29, 2026
Merged

zoefix merged 1 commit into
zoefix:mainfrom
WeGoHard:feat/hermes-client-support

Conversation

@WeGoHard

Copy link
Copy Markdown
Contributor

No description provided.

@WeGoHard

Copy link
Copy Markdown
Contributor Author

Hermes Desktop and Hermes Agent CLI were not available as data sources. This adds hermes on macOS and Windows, with source selection, configurable locations, usage/cost history, CSV export, reporting, and recognition of the CLI/gateway processes for network attribution.

The adapters read provider-confirmed API call records from HERMES_HOME/logs/agent.log, numbered rotations, and named profiles. They use the logged API latency and token/cache counters, keep interleaved sessions separate, and deduplicate rotation overlap. History tracks physical log segments and hashed session identities so rotating old files does not discard totals or double-count sessions.

Hermes only persists these records after a call completes, so speed updates at completion. Latency is rounded upstream to 0.1 seconds; zero/invalid intervals do not fabricate a speed. No conversation contents or cumulative state.db counters are used. The native log contract, upstream references, and known limits are documented in spec/research/hermes.md, with independent shared fixtures and a Python reference reader. All four README/localization languages are updated.

Validation:

  • Shared reference fixtures, reporting contracts, execution-mode cases, and traffic cases pass.
  • Windows: 2,014 core tests and 3,821 presentation tests pass; WPF application cross-build succeeds with no warnings or errors.
  • macOS: the complete core compiles in Swift 6, and 20 tests pass (8 Hermes tests plus 12 existing harness tests) through a direct Swift Testing runner. Local-only compatibility overlays were needed for the installed Command Line Tools; no toolchain workarounds are included in the patch. The full SwiftPM/application build still requires Xcode 26 and remains for CI.

@zoefix

zoefix commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Thank you for this PR and for the time you put into Hermes support. We really appreciate it.

While this was open, we finished our own Hermes Agent support for #18. It is specified first in spec/ with a Python reference and shared fixtures, then ported to macOS and Windows so both platforms produce identical numbers. It covers:

  • reading logs/agent.log across rotation and profiles;
  • local-time conversion, including daylight-saving changes;
  • the Codex-runtime switch;
  • history and process attribution.

To keep a single implementation, the code that ships is that version, not the changes in this PR.

We still want your contribution recorded. Your commit has been merged into our history (a merge that keeps our tree), so you are credited as the author and will be listed among the contributors. This PR will show as merged once our next push to main lands. Thanks again, and you are very welcome to keep sending issues and PRs!


感谢你的 PR 和为 Hermes 支持付出的时间!在这个 PR 开着的期间,我们已经按 #18 完成了自己的 Hermes Agent 支持(先写规格和参考实现,再移植到 macOS 与 Windows)。为了保持单一实现,最终发布的是这个版本,而不是本 PR 的改动。不过你的 commit 已经合并进我们的历史,你会以作者身份出现在贡献者列表中;我们下一次推送 main 后,这个 PR 会显示为已合并。再次感谢,欢迎继续提 issue 和 PR!

@zoefix
zoefix merged commit 056afd2 into zoefix:main Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants