Skip to content

fix(hermes): honor HERMES_HOME for adapter paths - #588

Open
jimmyzheng1027 wants to merge 1 commit into
NevaMind-AI:mainfrom
jimmyzheng1027:codex/fix-hermes-home-paths
Open

jimmyzheng1027 wants to merge 1 commit into
NevaMind-AI:mainfrom
jimmyzheng1027:codex/fix-hermes-home-paths

Conversation

@jimmyzheng1027

Copy link
Copy Markdown
Contributor

Pull Request Summary

Make the Hermes host adapter resolve its home from HERMES_HOME, with the existing ~/.hermes location retained as the fallback.


What does this PR do?

  • Centralizes Hermes home, SOUL.md, and state.db path resolution.
  • Uses HERMES_HOME for native Windows installs, profiles, and containers.
  • Preserves explicit --path and --session-dir overrides.
  • Adds coverage for Windows-style paths containing spaces, percent signs, hash characters, and non-ASCII text.
  • Updates the packaged Hermes install, bridging, and uninstall instructions. The repository README is unchanged.

Why is this change needed?

The Hermes Windows installer uses %LOCALAPPDATA%\\hermes, while the adapter previously assumed ~/.hermes. That mismatch could inject memU guidance into the wrong SOUL.md and read sessions from the wrong state.db.

macOS behavior remains compatible because an unset or blank HERMES_HOME still resolves to Path.home() / ".hermes", which is the previous location.


Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor / cleanup
  • Other (please explain)

PR Quality Checklist

  • PR title follows an allowed format (for example feat:, fix:, docs:, memory base:)
  • Changes are limited in scope and easy to review
  • Documentation updated where applicable
  • No breaking changes (or clearly documented)
  • Related issues or discussions linked (not applicable; no issue was provided)

Testing

  • python -m pytest tests/test_host_instruction.py tests/test_host_sessions.py tests/test_scheduling_windows.py -q -p no:cacheprovider — 77 passed
  • ruff check and ruff format --check on touched Python files — passed
  • mypy on touched Python files — passed

Optional

  • Screenshots or examples added (not applicable)
  • Edge cases considered
  • Follow-up tasks mentioned (not applicable)

This branch has not been deployed

No deployments
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