diff --git a/cli.py b/cli.py index 9531df7b..b0dae05d 100755 --- a/cli.py +++ b/cli.py @@ -165,10 +165,10 @@ def load_cli_config() -> Dict[str, Any]: "cwd": ".", # "." is resolved to os.getcwd() at runtime "timeout": 60, "lifetime_seconds": 300, - "docker_image": "python:3.11", + "docker_image": "nikolaik/python-nodejs:python3.11-nodejs20", "docker_forward_env": [], - "singularity_image": "docker://python:3.11", - "modal_image": "python:3.11", + "singularity_image": "docker://nikolaik/python-nodejs:python3.11-nodejs20", + "modal_image": "nikolaik/python-nodejs:python3.11-nodejs20", "daytona_image": "nikolaik/python-nodejs:python3.11-nodejs20", "docker_volumes": [], # host:container volume mounts for Docker backend "docker_mount_cwd_to_workspace": False, # explicit opt-in only; default off for sandbox isolation @@ -5751,12 +5751,14 @@ class HermesCLI: """Run the interactive CLI loop with persistent input at bottom.""" self.show_banner() - # One-line Honcho session indicator (TTY-only, not captured by agent) + # One-line Honcho session indicator (TTY-only, not captured by agent). + # Only show when the user explicitly configured Honcho for Hermes + # (not auto-enabled from a stray HONCHO_API_KEY env var). try: from honcho_integration.client import HonchoClientConfig from agent.display import honcho_session_line, write_tty hcfg = HonchoClientConfig.from_global_config() - if hcfg.enabled and hcfg.api_key: + if hcfg.enabled and hcfg.api_key and hcfg.explicitly_configured: sname = hcfg.resolve_session_name(session_id=self.session_id) if sname: write_tty(honcho_session_line(hcfg.workspace_id, sname) + "\n") diff --git a/honcho_integration/client.py b/honcho_integration/client.py index 4411241a..9382656b 100644 --- a/honcho_integration/client.py +++ b/honcho_integration/client.py @@ -112,6 +112,10 @@ class HonchoClientConfig: sessions: dict[str, str] = field(default_factory=dict) # Raw global config for anything else consumers need raw: dict[str, Any] = field(default_factory=dict) + # True when Honcho was explicitly configured for this host (hosts.hermes + # block exists or enabled was set explicitly), vs auto-enabled from a + # stray HONCHO_API_KEY env var. + explicitly_configured: bool = False @classmethod def from_env(cls, workspace_id: str = "hermes") -> HonchoClientConfig: @@ -148,6 +152,9 @@ class HonchoClientConfig: return cls.from_env() host_block = (raw.get("hosts") or {}).get(host, {}) + # A hosts.hermes block or explicit enabled flag means the user + # intentionally configured Honcho for this host. + _explicitly_configured = bool(host_block) or raw.get("enabled") is True # Explicit host block fields win, then flat/global, then defaults workspace = ( @@ -253,6 +260,7 @@ class HonchoClientConfig: session_peer_prefix=session_peer_prefix, sessions=raw.get("sessions", {}), raw=raw, + explicitly_configured=_explicitly_configured, ) @staticmethod