diff --git a/.gitignore b/.gitignore index df48a5095f..c1c3dff5c3 100644 --- a/.gitignore +++ b/.gitignore @@ -182,6 +182,8 @@ cython_debug/ .roo/rules .cline/rules .windsurf/rules +.repomix +repomix-output.txt # evaluation evaluation/evaluation_outputs diff --git a/openhands/cli/settings.py b/openhands/cli/settings.py index 314797688c..6fb1d6842a 100644 --- a/openhands/cli/settings.py +++ b/openhands/cli/settings.py @@ -1,3 +1,5 @@ +from pathlib import Path + from prompt_toolkit import PromptSession, print_formatted_text from prompt_toolkit.completion import FuzzyWordCompleter from prompt_toolkit.formatted_text import HTML @@ -71,6 +73,10 @@ def display_settings(config: OpenHandsConfig) -> None: ' Memory Condensation', 'Enabled' if config.enable_default_condenser else 'Disabled', ), + ( + ' Configuration File', + str(Path(config.file_store_path) / 'settings.json'), + ), ] ) diff --git a/tests/unit/test_cli_settings.py b/tests/unit/test_cli_settings.py index 8de111fd89..edfd28075b 100644 --- a/tests/unit/test_cli_settings.py +++ b/tests/unit/test_cli_settings.py @@ -1,3 +1,4 @@ +from pathlib import Path from unittest.mock import AsyncMock, MagicMock, patch import pytest @@ -37,9 +38,10 @@ class TestDisplaySettings: llm_config.api_key = SecretStr('test-api-key') config.get_llm_config.return_value = llm_config config.default_agent = 'test-agent' + config.file_store_path = '/tmp' # Set up security as a separate mock - security_mock = MagicMock() + security_mock = MagicMock(spec=OpenHandsConfig) security_mock.confirmation_mode = True config.security = security_mock @@ -48,13 +50,14 @@ class TestDisplaySettings: @pytest.fixture def advanced_app_config(self): - config = MagicMock(spec=OpenHandsConfig) + config = MagicMock() llm_config = MagicMock() llm_config.base_url = 'https://custom-api.com' llm_config.model = 'custom-model' llm_config.api_key = SecretStr('test-api-key') config.get_llm_config.return_value = llm_config config.default_agent = 'test-agent' + config.file_store_path = '/tmp' # Set up security as a separate mock security_mock = MagicMock() @@ -87,6 +90,8 @@ class TestDisplaySettings: assert 'Enabled' in settings_text assert 'Memory Condensation:' in settings_text assert 'Enabled' in settings_text + assert 'Configuration File' in settings_text + assert str(Path(app_config.file_store_path)) in settings_text @patch('openhands.cli.settings.print_container') def test_display_settings_advanced_config(