Skip to content

fix: harden ClawHub skill search exact matches - #1400

Merged
teknium1 merged 2 commits into
mainfrom
hermes/hermes-45b79a59-clawhub-search
Mar 15, 2026
Merged

fix: harden ClawHub skill search exact matches#1400
teknium1 merged 2 commits into
mainfrom
hermes/hermes-45b79a59-clawhub-search

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

  • harden the ClawHub Skills Hub adapter so exact slug searches can recover when ClawHub search returns irrelevant results
  • repair poisoned cached search results by re-checking an exact slug lookup on read
  • parse nested skill payloads from the ClawHub detail endpoint so direct inspect fallback returns real metadata
  • normalize ClawHub tag dictionaries into usable tag lists
  • add regression coverage for irrelevant search results, poisoned cache recovery, and nested detail payloads

Why

hermes skills search self-improving-agent --source clawhub was reaching ClawHub, but the ClawHub search endpoint was returning unrelated skills for that exact query. The skill was still directly accessible at /api/v1/skills/self-improving-agent, so Hermes needed a stricter exact-match fallback instead of trusting the noisy search response.

Validation

Working locally after the fix:

  • python -m hermes_cli.main skills search self-improving-agent --source clawhub
  • result now surfaces self-improving-agent as the exact ClawHub hit

Tests run:

  • python -m pytest tests/tools/test_skills_hub_clawhub.py tests/tools/test_skills_hub.py tests/hermes_cli/test_skills_hub.py -n0 -q
  • python -m pytest tests/ -n0 -q

Note on full suite:

  • current main still has two unrelated failing tests:
    • tests/test_api_key_providers.py::TestResolveProvider::test_auto_detects_minimax_cn_key
    • tests/test_openai_client_lifecycle.py::test_concurrent_requests_do_not_break_each_other_when_one_client_closes
  • those failures reproduce outside the ClawHub changes; the targeted Skills Hub tests pass cleanly.

@teknium1
teknium1 merged commit fd0e1aa into main Mar 15, 2026
1 check passed
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…45b79a59-clawhub-search

fix: harden ClawHub skill search exact matches
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…45b79a59-clawhub-search

fix: harden ClawHub skill search exact matches
waefrebeorn pushed a commit to waefrebeorn/slermes that referenced this pull request Jul 2, 2026
…45b79a59-clawhub-search

fix: harden ClawHub skill search exact matches
dizhaky pushed a commit to dizhaky/hermes-agent that referenced this pull request Aug 1, 2026
…through

CodeQL alert NousResearch#1400 flagged the refusal warning at line 113: even though
the logged value was a canonical constant from the static blocklist, it
was returned by _is_hermes_provider_credential, whose name matches
CodeQL's sensitive-data heuristic, so its return value is treated as
secret-tainted.

- _is_hermes_provider_credential reverted to a bool predicate; nothing
  it returns is ever logged.
- Refusals are aggregated and logged as a count with a static message.
- _load_config_passthrough no longer logs str(exc) (YAML parse errors
  can quote config lines that may contain secrets); logs the exception
  type name only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014quAJiFx19py9nV6NnsnHr
melon-xf added a commit to melon-xf/hermes-agent that referenced this pull request Sep 3, 2026
…45b79a59-clawhub-search

fix: harden ClawHub skill search exact matches
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.

1 participant