hermes-agent/plugins
Erosika 9e77d83354 fix(honcho): gate memory-file migration on the declared owner
The previous gate compared session.user_peer_id against a fresh
_resolve_user_peer_id() call on the same manager. Both values come from
the same resolver with the same inputs, so a non-owner triggering a new
session in a shared channel passed the check and received the owner's
MEMORY.md/USER.md under their peer.

The owner is now a config fact: _declared_owner_peer_id() returns the
sanitized peerName, and migration runs only when the session's user peer
is that peer. Without a declared peerName, migration runs only when no
runtime gateway identity is present (the single-operator CLI path).
Aliases still work: a platform ID mapped onto peerName resolves to the
owner peer before the comparison.

Tests now derive each session's user peer from the real resolver instead
of hand-picking mismatched ids, so the non-owner test fails against the
old gate.
2026-08-13 23:43:15 +05:30
..
browser
…
context_engine
…
cron_providers
…
dashboard_auth
…
disk-cleanup
…
google_meet
…
hermes-achievements
…
image_gen
…
kanban feat(plugins): kanban worker-lifecycle, task-mutation, and dispatch-tick observers 2026-08-13 09:35:52 -07:00
memory fix(honcho): gate memory-file migration on the declared owner 2026-08-13 23:43:15 +05:30
model-providers fix: send Hermes Agent attribution headers to OpenCode Zen and Go 2026-08-13 02:03:40 -07:00
observability docs: document nemo_relay session-span segmentation config 2026-08-13 10:45:15 -07:00
platforms feat(slack): render tool progress as native plan/task cards (opt-in) 2026-08-13 11:12:19 -07:00
security-guidance
…
spotify
…
teams_pipeline
…
video_gen
…
web
…
__init__.py
…
plugin_utils.py
…