mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-30 11:52:04 +00:00
fix(whatsapp): resolve LID aliases on modern platforms/ session layout
expand_whatsapp_aliases hardcoded get_hermes_home()/whatsapp/session, but
the adapter writes lid-mapping files via get_hermes_dir("platforms/whatsapp/
session", "whatsapp/session"). On installs without the legacy directory the
two paths diverge, so the resolver finds no mappings and returns the bare LID,
which misses the allowlist and silently drops the message. Resolve through the
same helper so both sides stay in lockstep on new and legacy layouts.
This commit is contained in:
parent
d0f087e7f9
commit
263ffec1b0
2 changed files with 39 additions and 2 deletions
|
|
@ -42,7 +42,7 @@ logger = logging.getLogger(__name__)
|
|||
# full-width digits / Unicode word chars can't sneak through.
|
||||
_SAFE_IDENTIFIER_RE = re.compile(r"^[A-Za-z0-9@.+\-]+$")
|
||||
|
||||
from hermes_constants import get_hermes_home
|
||||
from hermes_constants import get_hermes_dir
|
||||
|
||||
|
||||
def normalize_whatsapp_identifier(value: str) -> str:
|
||||
|
|
@ -133,7 +133,7 @@ def expand_whatsapp_aliases(identifier: str) -> Set[str]:
|
|||
if not normalized:
|
||||
return set()
|
||||
|
||||
session_dir = get_hermes_home() / "whatsapp" / "session"
|
||||
session_dir = get_hermes_dir("platforms/whatsapp/session", "whatsapp/session")
|
||||
resolved: Set[str] = set()
|
||||
queue = [normalized]
|
||||
|
||||
|
|
|
|||
37
tests/gateway/test_whatsapp_identity.py
Normal file
37
tests/gateway/test_whatsapp_identity.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
"""Tests for gateway.whatsapp_identity alias resolution path."""
|
||||
|
||||
import json
|
||||
|
||||
from gateway.whatsapp_identity import expand_whatsapp_aliases
|
||||
|
||||
|
||||
def test_aliases_resolve_on_modern_platforms_layout(tmp_path, monkeypatch):
|
||||
tmp_home = tmp_path / "hermes-home"
|
||||
mapping_dir = tmp_home / "platforms" / "whatsapp" / "session"
|
||||
mapping_dir.mkdir(parents=True, exist_ok=True)
|
||||
(mapping_dir / "lid-mapping-999999999999999.json").write_text(
|
||||
json.dumps("15551234567@s.whatsapp.net"),
|
||||
encoding="utf-8",
|
||||
)
|
||||
monkeypatch.setenv("HERMES_HOME", str(tmp_home))
|
||||
|
||||
assert expand_whatsapp_aliases("999999999999999@lid") == {
|
||||
"999999999999999",
|
||||
"15551234567",
|
||||
}
|
||||
|
||||
|
||||
def test_aliases_resolve_on_legacy_layout(tmp_path, monkeypatch):
|
||||
tmp_home = tmp_path / "hermes-home"
|
||||
mapping_dir = tmp_home / "whatsapp" / "session"
|
||||
mapping_dir.mkdir(parents=True, exist_ok=True)
|
||||
(mapping_dir / "lid-mapping-999999999999999.json").write_text(
|
||||
json.dumps("15551234567@s.whatsapp.net"),
|
||||
encoding="utf-8",
|
||||
)
|
||||
monkeypatch.setenv("HERMES_HOME", str(tmp_home))
|
||||
|
||||
assert expand_whatsapp_aliases("999999999999999@lid") == {
|
||||
"999999999999999",
|
||||
"15551234567",
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue