From a57fd7ea0947cdf6d916263e843798fe6f136ac9 Mon Sep 17 00:00:00 2001 From: Kimi Agent Date: Sat, 14 Mar 2026 21:29:11 -0400 Subject: [PATCH] [loop-cycle-30] fix: gitea-mcp binary name + test stabilization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. gitea-mcp → gitea-mcp-server (brew binary name). Fixes Timmy's Gitea triage — MCP server can now be found on PATH. 2. Mark test_returns_dict_with_expected_keys as @pytest.mark.slow — it runs pytest recursively and always exceeds the 30s timeout. 3. Fix ruff F841 lint in test_cli.py (unused result= variable). --- src/config.py | 2 +- src/timmy/mcp_tools.py | 2 +- tests/timmy/test_cli.py | 2 +- tests/timmy/test_introspection.py | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/config.py b/src/config.py index c27b17c..503d2a2 100644 --- a/src/config.py +++ b/src/config.py @@ -252,7 +252,7 @@ class Settings(BaseSettings): # ── MCP Servers ──────────────────────────────────────────────────── # External tool servers connected via Model Context Protocol (stdio). - mcp_gitea_command: str = "gitea-mcp -t stdio" + mcp_gitea_command: str = "gitea-mcp-server -t stdio" mcp_filesystem_command: str = "npx -y @modelcontextprotocol/server-filesystem" mcp_timeout: int = 15 diff --git a/src/timmy/mcp_tools.py b/src/timmy/mcp_tools.py index 66cc703..128c9b4 100644 --- a/src/timmy/mcp_tools.py +++ b/src/timmy/mcp_tools.py @@ -40,7 +40,7 @@ def _parse_command(command_str: str) -> tuple[str, list[str]]: """Split a command string into (executable, args). Handles ``~/`` expansion and resolves via PATH if needed. - E.g. ``"gitea-mcp -t stdio"`` → ``("/Users/x/go/bin/gitea-mcp", ["-t", "stdio"])`` + E.g. ``"gitea-mcp-server -t stdio"`` → ``("/opt/homebrew/bin/gitea-mcp-server", ["-t", "stdio"])`` """ parts = command_str.split() executable = os.path.expanduser(parts[0]) diff --git a/tests/timmy/test_cli.py b/tests/timmy/test_cli.py index f069048..83c5240 100644 --- a/tests/timmy/test_cli.py +++ b/tests/timmy/test_cli.py @@ -282,7 +282,7 @@ def test_repl_skips_empty_input(): patch("timmy.session.chat") as mock_chat, ): mock_chat.return_value = "Response" - result = runner.invoke(app, ["repl"]) + runner.invoke(app, ["repl"]) # chat should only be called once (for "hello"), empty lines are skipped, exit breaks assert mock_chat.call_count == 1 diff --git a/tests/timmy/test_introspection.py b/tests/timmy/test_introspection.py index c143947..c91989a 100644 --- a/tests/timmy/test_introspection.py +++ b/tests/timmy/test_introspection.py @@ -3,6 +3,7 @@ from unittest.mock import MagicMock, patch import httpx +import pytest def test_get_system_info_returns_dict(): @@ -163,6 +164,7 @@ class TestGetOllamaModelExactMatch: class TestRunSelfTests: """Tests for run_self_tests() — Timmy's self-verification tool.""" + @pytest.mark.slow def test_returns_dict_with_expected_keys(self): """run_self_tests should return structured test results.""" from timmy.tools_intro import run_self_tests