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
8 changes: 6 additions & 2 deletions plugins/memory/honcho/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@

logger = logging.getLogger(__name__)

GLOBAL_CONFIG_PATH = Path.home() / ".honcho" / "config.json"
HOST = "hermes"


Expand All @@ -53,6 +52,11 @@ def resolve_active_host() -> str:
return HOST


def resolve_global_config_path() -> Path:
"""Return the shared Honcho config path for the current HOME."""
return Path.home() / ".honcho" / "config.json"


def resolve_config_path() -> Path:
"""Return the active Honcho config path.

Expand All @@ -72,7 +76,7 @@ def resolve_config_path() -> Path:
if default_path != local_path and default_path.exists():
return default_path

return GLOBAL_CONFIG_PATH
return resolve_global_config_path()


_RECALL_MODE_ALIASES = {"auto": "hybrid"}
Expand Down
17 changes: 14 additions & 3 deletions tests/honcho_plugin/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
reset_honcho_client,
resolve_active_host,
resolve_config_path,
GLOBAL_CONFIG_PATH,
resolve_global_config_path,
HOST,
)

Expand Down Expand Up @@ -360,7 +360,7 @@ def test_falls_back_to_global_when_no_local(self, tmp_path):
with patch.dict(os.environ, {"HERMES_HOME": str(hermes_home)}), \
patch.object(Path, "home", return_value=fake_home):
result = resolve_config_path()
assert result == GLOBAL_CONFIG_PATH
assert result == fake_home / ".honcho" / "config.json"

def test_falls_back_to_global_without_hermes_home_env(self, tmp_path):
fake_home = tmp_path / "fakehome"
Expand All @@ -370,7 +370,18 @@ def test_falls_back_to_global_without_hermes_home_env(self, tmp_path):
patch.object(Path, "home", return_value=fake_home):
os.environ.pop("HERMES_HOME", None)
result = resolve_config_path()
assert result == GLOBAL_CONFIG_PATH
assert result == fake_home / ".honcho" / "config.json"

def test_global_fallback_uses_home_at_call_time(self, tmp_path):
fake_home = tmp_path / "fakehome"
fake_home.mkdir()
hermes_home = tmp_path / "hermes"
hermes_home.mkdir()

with patch.dict(os.environ, {"HERMES_HOME": str(hermes_home)}), \
patch.object(Path, "home", return_value=fake_home):
assert resolve_global_config_path() == fake_home / ".honcho" / "config.json"
assert resolve_config_path() == fake_home / ".honcho" / "config.json"

def test_from_global_config_uses_local_path(self, tmp_path):
hermes_home = tmp_path / "hermes"
Expand Down
Loading