Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gateway/platforms/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1294,7 +1294,7 @@ async def handle_message(self, event: MessageEvent) -> None:
# session lifecycle and its cleanup races with the running task
# (see PR #4926).
cmd = event.get_command()
if cmd in ("approve", "deny", "status", "stop", "new", "reset"):
if cmd in ("approve", "deny", "status", "stop", "new", "reset", "background"):
logger.debug(
"[%s] Command '/%s' bypassing active-session guard for %s",
self.name, cmd, session_key,
Expand Down
5 changes: 5 additions & 0 deletions gateway/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -1997,6 +1997,11 @@ async def _handle_message(self, event: MessageEvent) -> Optional[str]:
return await self._handle_approve_command(event)
return await self._handle_deny_command(event)

# /background must bypass the running-agent guard — it starts a
# parallel task and must never interrupt the active conversation.
if _cmd_def_inner and _cmd_def_inner.name == "background":
return await self._handle_background_command(event)

if event.message_type == MessageType.PHOTO:
logger.debug("PRIORITY photo follow-up for session %s — queueing without interrupt", _quick_key[:20])
adapter = self.adapters.get(source.platform)
Expand Down
17 changes: 17 additions & 0 deletions plugins/memory/mnemoria/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"""Mnemoria — cognitive memory plugin for hermes-agent.

Wraps the mnemoria PyPI package as a pluggable MemoryProvider.

Config env vars:
HERMES_MEMORY_MNEMORIA_ENABLED (bool) Enable this provider
HERMES_MEMORY_MNEMORIA_MODE (str) Profile: balanced (default)
HERMES_MNEMORIA_DB (path) SQLite db path (~/.hermes/mnemoria.db)

MEMORY_SPEC notation:
C[t]: Constraint D[t]: Decision V[t]: Value
?[t]: Unknown ✓[t]: Done ~[t]: Obsolete
"""

from .provider import MnemoriaMemoryProvider

__all__ = ["MnemoriaMemoryProvider"]
28 changes: 28 additions & 0 deletions plugins/memory/mnemoria/plugin.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: mnemoria
version: 0.1.0
description: |
Mnemoria memory provider — cognitive memory with ACT-R activation scoring,
typed facts, Hebbian links, and RL reranking. Backed by SQLite.

Install: pip install mnemoria
Enable: set memory.provider: mnemoria in ~/.hermes/config.yaml
provider: mnemoria
memory_provider: true
pip_dependencies:
- mnemoria>=0.1.0

config:
HERMES_MEMORY_MNEMORIA_ENABLED:
type: bool
default: false
description: Enable the Mnemoria memory provider.
HERMES_MEMORY_MNEMORIA_MODE:
type: string
default: balanced
description: Memory profile — balanced (default).
choices:
- balanced
HERMES_MNEMORIA_DB:
type: path
default: ~/.hermes/mnemoria.db
description: SQLite database path for the Mnemoria memory store.
Loading
Loading