merge(runtime): integrate trace store relocation

This commit is contained in:
somew1nd committed 2026-09-01 15:59:35 -07:00
commit 8003cf39c2
21 files changed
+134 -64

No files matched your search

+1 -1
View File
@@ -55,7 +55,7 @@ from artemis.interfaces.sdk.client import ArtemisClient, ConcurrencyMode
from mcp_server.tools.device_state import mobile_get_device_state
from mcp_server.tools.task_runner import mobile_run_task
from mcp_server.tools.task_manager import mobile_manage_task
from mcp_server.utils import trace_store
from artemis.runtime import trace_store
@pytest.fixture(scope="module", autouse=True)
@@ -431,7 +431,7 @@ def test_stop_tasks_terminates_external_global_owner_and_preserves_local_waiter(
"apps.admin_console.services.task_queue_service.session_repo.update_session_status"
) as update_status,
patch(
"mcp_server.utils.trace_store.update_trace_status"
"artemis.runtime.trace_store.update_trace_status"
) as update_trace_status,
):
assert task_queue_service.stop_tasks(clear_all=False) is True
@@ -845,7 +845,7 @@ def test_stop_tasks_by_session_id_targets_correct_task_among_multiple():
patch(
"apps.admin_console.services.task_queue_service.session_repo.update_session_status"
) as update_status,
patch("mcp_server.utils.trace_store.update_trace_status") as update_trace,
patch("artemis.runtime.trace_store.update_trace_status") as update_trace,
):
# Explicitly stop session-b
assert task_queue_service.stop_tasks(clear_all=False, session_id="session-b") is True
@@ -52,7 +52,7 @@ def test_legacy_jetski_tools_imports():
def test_legacy_jetski_utils_imports():
from jetski.utils.trace_store import init_trace
from mcp_server.utils.trace_store import init_trace as a_init
from artemis.runtime.trace_store import init_trace as a_init
assert init_trace is a_init
+5 -5
View File
@@ -31,7 +31,7 @@ from mcp_server.tools import (
mobile_manage_task,
mobile_run_task,
)
from mcp_server.utils import trace_store
from artemis.runtime import trace_store
@pytest.fixture
@@ -162,11 +162,11 @@ def test_mobile_run_task_dispatched_to_daemon(temp_trace_env, monkeypatch):
monkeypatch.delenv("ARTEMIS_STANDALONE", raising=False)
with (
patch(
"artemis.runtime.ensure_daemon_running",
"mcp_server.tools.task_runner.ensure_daemon_running",
return_value=(True, "http://127.0.0.1:8000"),
),
patch(
"artemis.runtime.submit_task_to_daemon",
"mcp_server.tools.task_runner.submit_task_to_daemon",
return_value={"status": "started", "tasks": [{"session_id": "daemon-sid-1"}]},
),
patch("mcp_server.tools.task_runner.subprocess.Popen") as popen,
@@ -399,8 +399,8 @@ def test_mobile_manage_task_stop_via_daemon(temp_trace_env, monkeypatch):
trace_store.init_trace(trace_id, "Daemon task to stop", "Flash", "conv-stop")
with (
patch("artemis.runtime.is_daemon_running", return_value=True),
patch("artemis.runtime.stop_task_on_daemon", return_value=True) as mock_stop,
patch("mcp_server.tools.task_manager.is_daemon_running", return_value=True),
patch("mcp_server.tools.task_manager.stop_task_on_daemon", return_value=True) as mock_stop,
):
res = mobile_manage_task(action="stop", trace_id=trace_id)
mock_stop.assert_called_once_with(trace_id)
+1 -1
View File
@@ -28,7 +28,7 @@ from mcp_server.notifiers import (
WebhookNotifier,
notify,
)
from mcp_server.utils import trace_store
from artemis.runtime import trace_store
class DummyNotifier(BaseNotifier):
@@ -1,4 +1,4 @@
# Copyright 2026 Google LLC
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
"""Unit tests for MCP trace store."""
"""Unit tests for the shared trace store (artemis.runtime.trace_store)."""
import glob
import logging
@@ -23,7 +23,7 @@ import threading
import uuid
import pytest
from mcp_server.utils import trace_store
from artemis.runtime import trace_store
@pytest.fixture
@@ -139,7 +139,7 @@ def test_corrupt_status_is_quarantined_and_read_returns_none(temp_trace_env, cap
with open(status_path, "w", encoding="utf-8") as f:
f.write('{"status": "running", "trace_id"') # torn write
with caplog.at_level(logging.WARNING, logger="mcp_server.utils.trace_store"):
with caplog.at_level(logging.WARNING, logger="artemis.runtime.trace_store"):
assert trace_store.read_status(trace_id) is None
assert any("Corrupt status.json" in rec.message for rec in caplog.records)
@@ -148,7 +148,7 @@ def test_corrupt_status_is_quarantined_and_read_returns_none(temp_trace_env, cap
def test_missing_status_stays_silent(temp_trace_env, caplog):
with caplog.at_level(logging.WARNING, logger="mcp_server.utils.trace_store"):
with caplog.at_level(logging.WARNING, logger="artemis.runtime.trace_store"):
assert trace_store.read_status(str(uuid.uuid4())) is None
assert caplog.records == []
@@ -161,13 +161,13 @@ def test_update_on_corrupt_status_logs_and_drops(temp_trace_env, caplog):
with open(status_path, "w", encoding="utf-8") as f:
f.write("not json at all")
with caplog.at_level(logging.WARNING, logger="mcp_server.utils.trace_store"):
with caplog.at_level(logging.WARNING, logger="artemis.runtime.trace_store"):
assert trace_store.update_trace_status(trace_id, "completed") is None
assert any("Dropping status update" in rec.message for rec in caplog.records)
# Updating a trace that never existed stays a silent no-op.
caplog.clear()
with caplog.at_level(logging.WARNING, logger="mcp_server.utils.trace_store"):
with caplog.at_level(logging.WARNING, logger="artemis.runtime.trace_store"):
assert trace_store.update_trace_status(str(uuid.uuid4()), "completed") is None
assert not any("Dropping status update" in rec.message for rec in caplog.records)