feat: enhance daemon dispatching, device readiness fallback, and live streaming UI

- Admin Console & Task Queue: add cancellation, session startup progress endpoints, and support ingress metadata
- Diagnostics & Runtime: enhance ADB probe to prefer unlocked devices and synchronize with readiness engine
- MCP Server: dispatch tasks through Artemis Daemon scheduler with fallback to standalone runner, improve action overlays
- Showcase UI: improve session auto-selection with pinning support, render startup progress, and refine stream styling
- CLI & Makefile: expose server lifecycle commands (restart, stop, status)
- Configuration: ignore runtime server state file in .gitignore
This commit is contained in:
somew1nd committed 2026-08-26 17:41:23 -07:00
1 parent 57655266cc
commit 8fdecf23d7
33 files changed
+1315 -293

No files matched your search

@@ -59,6 +59,33 @@ async def test_cancelled_event_stream_reaps_queue_waiter():
assert _pending_queue_get_tasks() == queue_tasks_before
@pytest.mark.asyncio
async def test_stream_events_active_session_replay():
"""Verify stream_events with default 'active' replays running session info and steps."""
state.is_shutting_down = False
state.shutdown_event.clear()
state.active_session_id = "replay-sess-123"
state.current_goal = "Replay Goal"
state.current_profile = "flash"
with patch("apps.admin_console.database.repositories.step_repository.step_repo") as mock_step_repo:
mock_step_repo.get_session_steps.return_value = [
{"step_number": 1, "description": "Step 1", "status": "completed"}
]
response = await stream_events()
iterator = response.body_iterator
first_event = await anext(iterator)
assert "Subscribed to session active" in first_event
second_event = await anext(iterator)
assert "session_started" in second_event
assert "replay-sess-123" in second_event
third_event = await anext(iterator)
assert "step_recorded" in third_event
assert "Step 1" in third_event
await iterator.aclose()
@pytest.mark.asyncio
async def test_windows_sigint_is_ignored_while_task_is_active():
state.current_process = MagicMock(returncode=None)