feat: add multi-device concurrency, server lifecycle CLI, and unified execution stream
- Implement DevicePool and DeviceExecutionLock concurrency modes (per-device FIFO vs global serialization) - Extend ArtemisClient SDK and CLI with explicit device targeting and concurrency strategy configuration - Add server lifecycle management (artemis restart, stop, status) with cross-platform PID discovery - Update MCP server tools to support multi-device dispatch, trace tagging, and per-device execution - Enhance Showcase UI with step-by-step visual replay, playback speed controls, and device serial badges - Add comprehensive unit test coverage and edge-case verification scripts
This commit is contained in:
1 parent
a36a66ce6d
commit
c2c90a6378
84 files changed
+5612
-645
No files matched your search
@@ -24,17 +24,17 @@ from typing import Any
|
||||
from artemis.config import read_ipc_port
|
||||
|
||||
|
||||
def publish_startup_progress(stage: str, message: str, **details: Any) -> None:
|
||||
def publish_startup_progress(stage: str, message: str, session_id: str | None = None, **details: Any) -> None:
|
||||
"""Publish one startup milestone, ignoring unavailable UI/IPC endpoints."""
|
||||
session_id = os.getenv("ARTEMIS_SESSION_ID") or os.getenv(
|
||||
resolved_session_id = session_id or os.getenv("ARTEMIS_SESSION_ID") or os.getenv(
|
||||
"ARTEMIS_CLOUD_SESSION_ID"
|
||||
)
|
||||
ipc_port = read_ipc_port()
|
||||
if not session_id or not ipc_port:
|
||||
if not resolved_session_id or not ipc_port:
|
||||
return
|
||||
|
||||
event_data = {
|
||||
"session_id": session_id,
|
||||
"session_id": str(resolved_session_id),
|
||||
"stage": stage,
|
||||
"message": message,
|
||||
"timestamp": time.time(),
|
||||
|
||||
Reference in new issue
Block a user