Skip to content

feat(connectors): enable Hermes Agent connector#219

Closed
jms830 wants to merge 1 commit into
Dicklesworthstone:mainfrom
jms830:enable-hermes-connector
Closed

feat(connectors): enable Hermes Agent connector#219
jms830 wants to merge 1 commit into
Dicklesworthstone:mainfrom
jms830:enable-hermes-connector

Conversation

@jms830
Copy link
Copy Markdown

@jms830 jms830 commented May 9, 2026

Summary

Hermes Agent's connector was added to franken_agent_detection in PR #5 (feature-gated as hermes), but CASS never enabled the feature. As a result cass capabilities --json | jq .connectors lists 19 agents but no hermes, even though the connector code, tests, and a working SQLite reader for ~/.hermes/state.db already exist upstream.

This PR wires it up:

  • Enable the hermes feature on franken-agent-detection
  • Update expected_features in build.rs path-dep contract
  • Add the conventional re-export stub at src/connectors/hermes.rs (matches gemini.rs, opencode.rs pattern)
  • Register the module in src/connectors/mod.rs

Diff

-franken-agent-detection = { ..., features = ["connectors", "cursor", "chatgpt", "opencode", "crush"] }
+franken-agent-detection = { ..., features = ["connectors", "cursor", "chatgpt", "opencode", "crush", "hermes"] }
// src/connectors/hermes.rs (new)
//! Connector for Hermes Agent session storage.
//!
//! Implementation lives in `franken_agent_detection::connectors::hermes`.
pub use franken_agent_detection::HermesConnector;

⚠️ Prerequisite

This PR depends on a prerequisite re-export fix in franken_agent_detection: Dicklesworthstone/franken_agent_detection#7

The currently-pinned rev 7e288f4 ships the connector implementation but does not re-export HermesConnector at the FAD crate root. This PR cannot compile against the existing rev — the FAD PR needs to merge first, then the rev pin in CASS needs to be bumped (I'm happy to follow up with that bump in this PR or a separate one, your preference).

Verification (against a live install)

  • Hermes session DB on hand: 763 sessions, 5644 messages in ~/.hermes/state.db
  • Schema matches connector expectations exactly (id/source/model/title/parent_session_id/started_at/ended_at/end_reason/message_count/tool_call_count/input_tokens/output_tokens on sessions; session_id/role/content/tool_calls/tool_name/tool_call_id/reasoning/timestamp on messages)
  • No code path in this PR reaches Hermes-specific logic — it's purely registration plumbing

Context

Use case: Jordan Strauss (silverdusk Oracle ARM box) runs Hermes Agent as the always-on assistant and OpenCode/Claude Code/Codex for coding. Cross-agent recall between them is the whole point of CASS for him, but Hermes sessions are currently invisible to cass search. With these two PRs landed, Hermes joins the existing 19 connectors.

Hermes Agent's connector was added to franken_agent_detection in PR Dicklesworthstone#5
(feature-gated as 'hermes'), but CASS never enabled the feature.

Wire up the connector by:
- Enabling the 'hermes' feature on franken-agent-detection
- Updating expected_features in build.rs path-dep contract
- Adding the conventional re-export stub at src/connectors/hermes.rs
- Registering the module in src/connectors/mod.rs

Note: this depends on a prerequisite re-export fix in
franken_agent_detection (PR jms830:expose-hermes-reexport). The
existing pinned rev 7e288f4 ships the connector implementation but
does not re-export HermesConnector at the crate root, so this PR
cannot land until FAD merges that fix and CASS bumps the rev.
@Dicklesworthstone
Copy link
Copy Markdown
Owner

Thanks for wiring this up. Per project policy I don't merge external PRs, but the intel here is exactly what #220 needed — feature flag on the franken_agent_detection dependency, the contract entry in build.rs, and the thin src/connectors/hermes.rs re-export module. I'll land it as a single tracked piece (issue #220) so the cass and franken_agent_detection sides ship together with the build.rs contract updated in lock-step.

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