diff --git a/acp_adapter/session.py b/acp_adapter/session.py index 067dd78d1c..63717fc01d 100644 --- a/acp_adapter/session.py +++ b/acp_adapter/session.py @@ -425,9 +425,6 @@ class SessionManager: logger.debug("ACP: bounded MCP discovery wait failed", exc_info=True) agent = AIAgent(**kwargs) - # Codex app-server sessions spawn lazily on the first turn; stamp the ACP - # workspace so the Codex runtime starts from the editor cwd, not ours. - agent.session_cwd = cwd # ACP stdio: stdout is protocol-only JSON-RPC; agent chatter goes to stderr. agent._print_fn = _acp_stderr_print return agent diff --git a/tests/acp_adapter/test_session.py b/tests/acp_adapter/test_session.py index d95c1dfb51..f1cefc3182 100644 --- a/tests/acp_adapter/test_session.py +++ b/tests/acp_adapter/test_session.py @@ -116,7 +116,6 @@ class TestCreateSession: state = SessionManager(db=None).create_session(cwd=str(workspace)) assert observed["cwd"] == str(workspace) - assert state.agent.session_cwd == str(workspace) diff --git a/tests/agent/test_memory_user_id.py b/tests/agent/test_memory_user_id.py index 3c6b8e66b4..ba6cf85f11 100644 --- a/tests/agent/test_memory_user_id.py +++ b/tests/agent/test_memory_user_id.py @@ -145,43 +145,6 @@ class TestMemoryManagerUserIdThreading: assert provider._init_kwargs["cwd"] == str(tmp_path) agent.close() - @pytest.mark.parametrize("cwd", [None, ""]) - def test_cwdless_agent_still_initializes_memory_provider(self, cwd): - from run_agent import AIAgent - - provider = RecordingProvider() - - with patch( - "model_tools.get_tool_definitions", - return_value=[], - ), patch( - "model_tools.check_toolset_requirements", - return_value={}, - ), patch( - "agent.process_bootstrap.OpenAI", - ), patch( - "hermes_cli.config.load_config_readonly", - return_value={"memory": {"provider": "recording"}}, - ), patch( - "plugins.memory.load_memory_provider", - return_value=provider, - ): - agent = AIAgent( - api_key="test-key-1234567890", - base_url="https://openrouter.ai/api/v1", - quiet_mode=True, - skip_context_files=True, - platform="cli", - session_id="session-without-cwd", - cwd=cwd, - ) - - assert agent.session_cwd is None - assert provider._init_session_id == "session-without-cwd" - assert "cwd" not in provider._init_kwargs - agent.close() - - # --------------------------------------------------------------------------- # Mem0 provider user_id tests # --------------------------------------------------------------------------- diff --git a/tests/honcho_plugin/test_async_memory.py b/tests/honcho_plugin/test_async_memory.py index cb7129a164..95ffbc86b3 100644 --- a/tests/honcho_plugin/test_async_memory.py +++ b/tests/honcho_plugin/test_async_memory.py @@ -130,38 +130,6 @@ class TestResolveSessionNameTitle: result = cfg.resolve_session_name("/my/project", session_title="the-title") assert result == "manual-name" - @pytest.mark.parametrize("session_strategy", ["per-directory", "per-repo", "global"]) - def test_explicit_title_beats_non_session_strategy(self, session_strategy): - cfg = HonchoClientConfig(session_strategy=session_strategy) - result = cfg.resolve_session_name( - "/some/dir", - session_title="my-project", - session_title_source="user", - ) - assert result == "my-project" - - def test_missing_title_source_preserves_legacy_title_override(self): - cfg = HonchoClientConfig(session_strategy="per-repo") - - result = cfg.resolve_session_name( - "/some/dir", - session_title="legacy-title", - ) - - assert result == "legacy-title" - - def test_title_source_parameter_preserves_legacy_positional_arguments(self): - cfg = HonchoClientConfig(session_strategy="per-session") - - result = cfg.resolve_session_name( - "/some/dir", - None, - "session-id", - "agent:main:telegram:dm:42", - ) - - assert result == "agent-main-telegram-dm-42" - @pytest.mark.parametrize( ("session_strategy", "title_source", "expected"), [ @@ -191,62 +159,6 @@ class TestResolveSessionNameTitle: ) assert result == expected - def test_provider_preserves_strategy_for_automatic_title(self): - from plugins.memory.honcho import HonchoMemoryProvider - - cfg = HonchoClientConfig(session_strategy="per-repo") - provider = HonchoMemoryProvider() - with patch.object(HonchoClientConfig, "_git_repo_name", return_value="repo-name"): - result = provider._resolve_session_key( - cfg, - "session-id", - session_title="generated-title", - session_title_source="llm", - ) - assert result == "repo-name" - - def test_provider_resolves_session_cwd_not_process_cwd( - self, - monkeypatch, - tmp_path, - ): - """Desktop/gateway backends launch from $HOME; Honcho routing must use - the agent's logical workspace, not the process cwd.""" - import agent.runtime_cwd as runtime_cwd - from agent.runtime_cwd import set_session_cwd - from plugins.memory.honcho import HonchoMemoryProvider - - process_cwd = tmp_path / "home" - terminal_cwd = tmp_path / "terminal" - project = tmp_path / "projects" / "myapp" - process_cwd.mkdir() - terminal_cwd.mkdir() - project.mkdir(parents=True) - monkeypatch.chdir(process_cwd) - monkeypatch.setenv("TERMINAL_CWD", str(terminal_cwd)) - cfg = HonchoClientConfig( - session_strategy="per-repo", - sessions={ - str(process_cwd): "process-cwd-fallback", - str(terminal_cwd): "terminal-cwd-fallback", - }, - ) - provider = HonchoMemoryProvider() - token = set_session_cwd(str(project)) - try: - with patch.object( - HonchoClientConfig, - "_git_repo_name", - side_effect=lambda cwd: Path(cwd).name, - ) as repo_name: - result = provider._resolve_session_key(cfg, "session-id") - finally: - runtime_cwd._SESSION_CWD.reset(token) - - repo_name.assert_called_once_with(str(project)) - assert result == project.name - - def test_title_sanitized(self): cfg = HonchoClientConfig() result = cfg.resolve_session_name("/some/dir", session_title="my project/name!") diff --git a/tests/honcho_plugin/test_client.py b/tests/honcho_plugin/test_client.py index 64245b6fd6..6a4361dd34 100644 --- a/tests/honcho_plugin/test_client.py +++ b/tests/honcho_plugin/test_client.py @@ -12,9 +12,6 @@ from hermes_cli.profiles import _get_default_hermes_home import pytest -import hermes_state_common -from hermes_state import SessionDB -from plugins.memory.honcho import client as honcho_client from plugins.memory.honcho.client import ( HonchoClientConfig, get_honcho_client, @@ -27,19 +24,6 @@ from plugins.memory.honcho.client import ( class TestHonchoClientConfigDefaults: - def test_automatic_title_sources_share_state_store_vocabulary(self): - automatic_sources = frozenset( - { - hermes_state_common.TITLE_SOURCE_DERIVED, - hermes_state_common.TITLE_SOURCE_LLM, - } - ) - - assert honcho_client._AUTOMATIC_SESSION_TITLE_SOURCES == automatic_sources - assert SessionDB.TITLE_SOURCE_DERIVED == hermes_state_common.TITLE_SOURCE_DERIVED - assert SessionDB.TITLE_SOURCE_LLM == hermes_state_common.TITLE_SOURCE_LLM - assert SessionDB.TITLE_SOURCE_USER == hermes_state_common.TITLE_SOURCE_USER - def test_default_values(self): config = HonchoClientConfig() assert config.host == "hermes" diff --git a/tests/tui_gateway/test_compute_host_phase1.py b/tests/tui_gateway/test_compute_host_phase1.py index c15000aa17..a9eda851ef 100644 --- a/tests/tui_gateway/test_compute_host_phase1.py +++ b/tests/tui_gateway/test_compute_host_phase1.py @@ -5,7 +5,6 @@ import sys import threading import time from pathlib import Path -from types import SimpleNamespace import pytest @@ -18,47 +17,6 @@ from tui_gateway.host_supervisor import ( ) -def test_agent_build_receives_seeded_workspace_cwd(tmp_path, monkeypatch): - workspace = tmp_path / "workspace" - workspace.mkdir() - monkeypatch.setattr(server, "_sessions", {}) - - observed: dict[str, str] = {} - - def fake_make_agent(*_args, **_kwargs): - observed["cwd"] = _kwargs["cwd_override"] - return SimpleNamespace(session_id="conversation-id") - - def fake_init_session(sid, key, agent, history, *, cwd=None, **_kwargs): - server._sessions[sid] = { - "agent": agent, - "session_key": key, - "history": history, - "cwd": cwd, - } - - monkeypatch.setattr(server, "_make_agent", fake_make_agent) - monkeypatch.setattr(server, "_transfer_db_to_agent", lambda *_args: False) - monkeypatch.setattr(server, "_init_session", fake_init_session) - - host = ComputeHost(stdout=io.StringIO(), heartbeat_secs=0) - try: - host._ensure_server_session( - server, - { - "sid": "ui-session", - "session_key": "conversation-id", - "cwd": str(workspace), - "source": "desktop", - "history": [], - }, - ) - finally: - host.close() - - assert observed["cwd"] == str(workspace) - - def _json_lines(out: io.StringIO) -> list[dict]: frames = [] for line in out.getvalue().splitlines():