feat(core): consolidate config hub, unify daemon scheduling across all entrypoints, and fix step replay

- Unified configuration and paths under artemis.config as single source of truth
- Consolidated execution across CLI, SDK, MCP, and Admin Console to default to Artemis Daemon
- Fixed frontend step replay to preserve failure steps with proper sequential numbering
- Implemented task deduplication, debouncing, and multi-device lock isolation
- Added comprehensive end-to-end multi-port integration tests for live phone and emulator
This commit is contained in:
somew1nd committed 2026-08-27 10:21:40 -07:00
1 parent e984d17635
commit 5f1ee18bc1
38 files changed
+1426 -203

No files matched your search

+3 -2
View File
@@ -35,6 +35,7 @@ from uuid import uuid4
from langchain_core.language_models.chat_models import BaseChatModel
from artemis.config import (
PAUSE_FILE,
AgentNode,
AgentNodeWithFallback,
LLMUtilsNode,
@@ -233,7 +234,7 @@ def _handle_llm_pause_and_resume(last_error: Exception) -> Path:
err_msg = err_msg[:1000] + "... [Truncated by LLM Wrapper]"
llm_logger.warning(f"LLM Error: {err_msg}. Pausing execution to wait for resume signal...")
pause_file = Path(settings.TRACES_PATH).parent / ".artemis_paused"
pause_file = PAUSE_FILE
try:
pause_file.write_text(f"LLM Error: {err_msg}")
except Exception:
@@ -594,7 +595,7 @@ async def invoke_llm_with_timeout_message[T](
if llm_task.done():
return llm_task.result()
pause_file = Path(settings.TRACES_PATH).parent / ".artemis_paused"
pause_file = PAUSE_FILE
if pause_file.exists():
start_time = asyncio.get_event_loop().time()
continue