From 691e5aa8eacf71c582946ac920e03ad1d6387384 Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 5 Jul 2026 14:58:03 +0000 Subject: [PATCH] fix(mcp): pass ingest flag through service CLI Ensure mcp_service.sh start --enable-ingest actually writes OBSIDIAN_MCP_ENABLE_INGEST=1 by forwarding the parsed flag to start_service. Also stop the new-token command from referencing the start-only flag, and cover both CLI paths with regression tests. Validation: python3 -m unittest discover -v; git diff --check --- scripts/manage_mcp_service.py | 2 +- tests/test_mcp_service.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/scripts/manage_mcp_service.py b/scripts/manage_mcp_service.py index 664703e..f758f36 100755 --- a/scripts/manage_mcp_service.py +++ b/scripts/manage_mcp_service.py @@ -406,7 +406,6 @@ def main(argv: Sequence[str] | None = None) -> int: port=args.port, path=args.path, token_bytes=args.token_bytes, - enable_ingest=args.enable_ingest, ), end="", ) @@ -420,6 +419,7 @@ def main(argv: Sequence[str] | None = None) -> int: port=args.port, path=args.path, token_bytes=args.token_bytes, + enable_ingest=args.enable_ingest, ), end="", ) diff --git a/tests/test_mcp_service.py b/tests/test_mcp_service.py index 9012dab..9ecf52d 100644 --- a/tests/test_mcp_service.py +++ b/tests/test_mcp_service.py @@ -225,6 +225,30 @@ class McpServiceConfigTests(unittest.TestCase): ] ) + def test_main_start_passes_enable_ingest_to_start_service(self): + with ( + patch.object(manage_mcp_service, "start_service", return_value="config\n") as start_service, + patch("builtins.print") as print_fn, + ): + status = manage_mcp_service.main(["start", "--enable-ingest"]) + + self.assertEqual(status, 0) + start_service.assert_called_once() + self.assertTrue(start_service.call_args.kwargs["enable_ingest"]) + print_fn.assert_called_once_with("config\n", end="") + + def test_main_new_token_does_not_expect_enable_ingest_argument(self): + with ( + patch.object(manage_mcp_service, "new_token", return_value="config\n") as new_token, + patch("builtins.print") as print_fn, + ): + status = manage_mcp_service.main(["new-token"]) + + self.assertEqual(status, 0) + new_token.assert_called_once() + self.assertNotIn("enable_ingest", new_token.call_args.kwargs) + print_fn.assert_called_once_with("config\n", end="") + def test_uninstall_service_removes_only_managed_files(self): with tempfile.TemporaryDirectory() as tmp: project_root = Path(tmp) / "project"