Skip to content

fix(hermes): address igorls' second review pass on PR #1915 - #2

Closed
GoXLd wants to merge 1 commit into
raman325:feat/hermes-provider-corefrom
GoXLd:feat/hermes-provider-core-review-fixes
Closed

fix(hermes): address igorls' second review pass on PR #1915#2
GoXLd wants to merge 1 commit into
raman325:feat/hermes-provider-corefrom
GoXLd:feat/hermes-provider-core-review-fixes

Conversation

@GoXLd

@GoXLd GoXLd commented Jul 6, 2026

Copy link
Copy Markdown
  • on_session_end() no longer re-mines turns sync_turn() already filed live; make_exchange_drawer_id includes filed_at so replays were becoming duplicate drawers, not idempotent rewrites. Delegation turns (on_delegation) are excluded from the skip count since they don't appear in the transcript on_session_end receives.
  • _dispatch_mcp_passthrough now pins MEMPALACE_PALACE_PATH to the provider's configured palace_path for the call, so passthrough tools (add/update/delete_drawer, tunnels, etc.) can no longer read/write a different palace than mempalace_search/status/list_wings do.
  • on_memory_write() mirrors target="memory" (Hermes' default when the caller omits target), not just the explicit "user" target.
  • Added backup_paths() so hermes backup picks up MemPalace's actual state, which lives outside HERMES_HOME by default.

What does this PR do?

How to test

Checklist

  • Tests pass (python -m pytest tests/ -v)
  • No hardcoded paths
  • Linter passes (ruff check .)

- on_session_end() no longer re-mines turns sync_turn() already filed
  live; make_exchange_drawer_id includes filed_at so replays were
  becoming duplicate drawers, not idempotent rewrites. Delegation turns
  (on_delegation) are excluded from the skip count since they don't
  appear in the transcript on_session_end receives.
- _dispatch_mcp_passthrough now pins MEMPALACE_PALACE_PATH to the
  provider's configured palace_path for the call, so passthrough tools
  (add/update/delete_drawer, tunnels, etc.) can no longer read/write a
  different palace than mempalace_search/status/list_wings do.
- on_memory_write() mirrors target="memory" (Hermes' default when the
  caller omits target), not just the explicit "user" target.
- Added backup_paths() so `hermes backup` picks up MemPalace's actual
  state, which lives outside HERMES_HOME by default.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@raman325

raman325 commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Thanks for the contribution, but I am going to remove on_session_end and on_pre_compress mining for now and do a follow up PR to do it properly. I found more things in my investigation that are worth considering

@raman325 raman325 closed this Jul 6, 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