# Runtime Action Panel Browser Smoke

Status: PASS
Run ID: browser-smoke-mpadhdlm
Generated: 2026-05-17T22:55:18.175Z
Runner: runtime-core:testing.runtimeActionPanelBrowserSmoke

## Checks
- backend health endpoint reachable
- frontend dev server reachable
- local/dev admin token acquired without printing secrets
- authenticated admin browser reached Runtime Action Panel
- backend-owned socket diagnostics show at least one admin device
- initial Runtime work step is visible in browser UI
- runtime state change reached browser through socket invalidation and GraphQL refetch
- semantic Runtime evidence to UI rendering check passed
- connection toast and minimize behavior check passed
- signed-out browser is blocked from Runtime Action Panel

## Semantic Oracle
- Runtime/GraphQL snapshot is canonical UI truth.
- Socket.IO is invalidation-only.
- Active/blinking role expectations require fresh Runtime-owned evidence.
- If the smoke starts an emulated work step for a role, that role must be active only when Runtime role_activity marks it active.
- Scheduled, assigned, waiting, idle, stale, completed, and failed states must not be treated as active work.

## Evidence
```json
{
  "runId": "browser-smoke-mpadhdlm",
  "runner": "runtime-core:testing.runtimeActionPanelBrowserSmoke",
  "frontendUrl": "http://127.0.0.1:4220",
  "backendUrl": "http://127.0.0.1:3720",
  "reportPath": "ai/reports/report-000029-20260517-service-fail-log-browser-smoke.md",
  "checks": [
    "backend health endpoint reachable",
    "frontend dev server reachable",
    "local/dev admin token acquired without printing secrets",
    "authenticated admin browser reached Runtime Action Panel",
    "backend-owned socket diagnostics show at least one admin device",
    "initial Runtime work step is visible in browser UI",
    "runtime state change reached browser through socket invalidation and GraphQL refetch",
    "semantic Runtime evidence to UI rendering check passed",
    "connection toast and minimize behavior check passed",
    "signed-out browser is blocked from Runtime Action Panel"
  ],
  "warnings": [
    "Runtime Executor active rendering was not exercised; projection status is waiting."
  ],
  "errors": [],
  "runtimeEvidence": {
    "before": {
      "runtimeAvailable": true,
      "runtimeWorkSession": {
        "status": "active",
        "actorRole": "Orchestrator",
        "activity": "validating",
        "detail": "Browser proof for chunk 000217: Initial browser proof setup",
        "livenessConfidence": "fresh",
        "currentStep": {
          "type": "validation_fast",
          "label": "Browser smoke initial marker browser-smoke-mpadhdlm",
          "detail": "Initial browser proof setup",
          "actorRole": "Developer",
          "status": "active",
          "livenessConfidence": "fresh"
        }
      },
      "roleActivity": [
        {
          "key": "requirements",
          "label": "Requirements",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "requirements_review",
          "label": "Requirements Review",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "prompt_synthesizer",
          "label": "Prompt Synthesizer",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "consultant_checkpoint",
          "label": "Consultant Checkpoint",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "orchestrator",
          "label": "Orchestrator",
          "status": "scheduled",
          "activity": "scheduled"
        },
        {
          "key": "chunk_planner",
          "label": "Chunk Planner",
          "status": "passed",
          "activity": "planned",
          "detail": "Chunk plan exists"
        },
        {
          "key": "developer",
          "label": "Developer",
          "status": "active",
          "activity": "implementing"
        },
        {
          "key": "qa",
          "label": "QA",
          "status": "passed",
          "activity": "reviewed",
          "detail": "QA passed for Service Fail Log and Bounded Retention"
        },
        {
          "key": "runtime_executor",
          "label": "Runtime Executor",
          "status": "waiting",
          "activity": "validating",
          "detail": "Validation needs attention"
        },
        {
          "key": "dispatcher",
          "label": "Dispatcher",
          "status": "idle",
          "activity": "idle"
        },
        {
          "key": "operator",
          "label": "Operator",
          "status": "idle",
          "activity": "idle"
        }
      ],
      "socketDiagnostics": {
        "connectedAdminCount": 2,
        "connectedDeviceCount": 2,
        "totalTrackedDevices": 6
      }
    },
    "after": {
      "runtimeAvailable": true,
      "runtimeWorkSession": {
        "status": "active",
        "actorRole": "Orchestrator",
        "activity": "validating",
        "detail": "Browser proof for chunk 000217: Initial browser proof setup",
        "livenessConfidence": "fresh",
        "currentStep": {
          "type": "validation_fast",
          "label": "Browser smoke invalidation marker browser-smoke-mpadhdlm",
          "detail": "Socket invalidation and GraphQL refetch proof",
          "actorRole": "Developer",
          "status": "active",
          "livenessConfidence": "fresh"
        }
      },
      "roleActivity": [
        {
          "key": "requirements",
          "label": "Requirements",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "requirements_review",
          "label": "Requirements Review",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "prompt_synthesizer",
          "label": "Prompt Synthesizer",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "consultant_checkpoint",
          "label": "Consultant Checkpoint",
          "status": "not_applicable",
          "activity": "not_used"
        },
        {
          "key": "orchestrator",
          "label": "Orchestrator",
          "status": "scheduled",
          "activity": "scheduled"
        },
        {
          "key": "chunk_planner",
          "label": "Chunk Planner",
          "status": "passed",
          "activity": "planned",
          "detail": "Chunk plan exists"
        },
        {
          "key": "developer",
          "label": "Developer",
          "status": "active",
          "activity": "implementing"
        },
        {
          "key": "qa",
          "label": "QA",
          "status": "passed",
          "activity": "reviewed",
          "detail": "QA passed for Service Fail Log and Bounded Retention"
        },
        {
          "key": "runtime_executor",
          "label": "Runtime Executor",
          "status": "waiting",
          "activity": "validating",
          "detail": "Validation needs attention"
        },
        {
          "key": "dispatcher",
          "label": "Dispatcher",
          "status": "idle",
          "activity": "idle"
        },
        {
          "key": "operator",
          "label": "Operator",
          "status": "idle",
          "activity": "idle"
        }
      ],
      "socketDiagnostics": {
        "connectedAdminCount": 3,
        "connectedDeviceCount": 3,
        "totalTrackedDevices": 6
      }
    },
    "semanticOracle": {
      "principle": "UI active/blinking expectations are derived from Runtime-owned fresh evidence, not from frontend inference or operator memory.",
      "activeStepRequiresVisibleMarker": true,
      "roleStateQuestion": "The browser proof validates that the UI matches Runtime evidence and also records whether that Runtime evidence is semantically appropriate for the scenario. A scheduled or waiting role is not treated as active work unless Runtime provides a fresh active work step for that role.",
      "scheduledRoleQuestion": "If Orchestrator is scheduled while QA is idle, this is not assumed correct. The proof records the role_activity projection so the owning chunk can decide whether QA should also be scheduled for the current workflow boundary.",
      "operatorRole": "Operator represents the human approval/review/question boundary. It is expected to be waiting only when Runtime has pending operator-facing work.",
      "dispatcherRole": "Dispatcher is the guarded mutation executor. It is expected to be waiting/active only when approved dispatcher work is pending or executing.",
      "runtimeExecutorRole": "Runtime Executor owns validation/summary/transition execution evidence. This browser smoke records its projection, but does not claim fresh Runtime Executor active rendering unless a Runtime Executor work step is explicitly present.",
      "activeRoleExpectation": "Role Developer should be visibly active only if Runtime role_activity also marks it active."
    },
    "qaRoleProjection": {
      "key": "qa",
      "label": "QA",
      "status": "passed",
      "activity": "reviewed",
      "detail": "QA passed for Service Fail Log and Bounded Retention"
    },
    "operatorRoleProjection": {
      "key": "operator",
      "label": "Operator",
      "status": "idle",
      "activity": "idle"
    },
    "dispatcherRoleProjection": {
      "key": "dispatcher",
      "label": "Dispatcher",
      "status": "idle",
      "activity": "idle"
    },
    "runtimeExecutorRoleProjection": {
      "key": "runtime_executor",
      "label": "Runtime Executor",
      "status": "waiting",
      "activity": "validating",
      "detail": "Validation needs attention"
    }
  },
  "uiEvidence": {
    "initialMarkerVisible": true,
    "invalidationEventChanged": true,
    "liveConnectionDiagnosticsAfterInvalidation": "Socket URL: http://127.0.0.1:3720/runtime-health · Last event: 2026-05-17T22:54:59.557Z · hint=runtime_health surfaces=runtime_work_session,runtime_work_step,runtime_services reason=Runtime Health snapshot changed",
    "refetchDiagnosticsBeforeInvalidation": "requests=2 successes=1 reason=live update loadedAt=2026-05-17T22:54:52.028Z sequence=3437 error=none cursorMismatches=0",
    "refetchDiagnosticsAfterInvalidation": "requests=3 successes=2 reason=live update loadedAt=2026-05-17T22:54:59.566Z sequence=3439 error=none cursorMismatches=0",
    "graphqlRefetchesObserved": 6,
    "graphqlRefetchesAfterInvalidation": 3,
    "graphqlResponseSamples": [
      {
        "at": "2026-05-17T22:54:52.874Z",
        "status": 200,
        "request": "http://127.0.0.1:3720/graphql {\"operationName\":\"AdminRuntimeHealth\",\"variables\":{},\"query\":\"query AdminRuntimeHealth {\\n adminRuntimeHealth {\\n schemaVersion\\n runtimeAvailable\\n overallHealth\\n executionState\\n currentGate\\n ownerRole\\n co"
      },
      {
        "at": "2026-05-17T22:54:52.874Z",
        "status": 200,
        "request": "http://127.0.0.1:3720/graphql {\"operationName\":\"AdminRuntimeHealth\",\"variables\":{},\"query\":\"query AdminRuntimeHealth {\\n adminRuntimeHealth {\\n schemaVersion\\n runtimeAvailable\\n overallHealth\\n executionState\\n currentGate\\n ownerRole\\n co"
      },
      {
        "at": "2026-05-17T22:54:58.829Z",
        "status": 200,
        "request": "http://127.0.0.1:3720/graphql {\"operationName\":\"AdminRuntimeHealthExport\",\"variables\":{},\"query\":\"query AdminRuntimeHealthExport {\\n adminRuntimeHealthExport {\\n generatedAt\\n source\\n redacted\\n mutatesAuthorityState\\n humanSummary\\n consu"
      },
      {
        "at": "2026-05-17T22:54:59.566Z",
        "status": 200,
        "request": "http://127.0.0.1:3720/graphql {\"operationName\":\"AdminRuntimeHealthExport\",\"variables\":{},\"query\":\"query AdminRuntimeHealthExport {\\n adminRuntimeHealthExport {\\n generatedAt\\n source\\n redacted\\n mutatesAuthorityState\\n humanSummary\\n consu"
      },
      {
        "at": "2026-05-17T22:54:59.567Z",
        "status": 200,
        "request": "http://127.0.0.1:3720/graphql {\"operationName\":\"AdminRuntimeHealth\",\"variables\":{},\"query\":\"query AdminRuntimeHealth {\\n adminRuntimeHealth {\\n schemaVersion\\n runtimeAvailable\\n overallHealth\\n executionState\\n currentGate\\n ownerRole\\n co"
      }
    ],
    "canonicalRefetchObserved": true,
    "markerVisibleAfterInvalidation": true,
    "liveWorkSession": "Live Work Session In-between Runtime work without changing lifecycle gates. Active roles: Developer Current role work is shown in the role cards. Active · 29s · Chunk Validation Fast Completed · 16s",
    "roleActivity": "Role Activity Who is active, waiting, idle, blocked, or reviewing now.RequirementsNot UsedNot ApplicableRequirements ReviewNot UsedNot ApplicablePrompt SynthesizerNot UsedNot ApplicableConsultant CheckpointNot UsedNot ApplicableOrchestratorScheduledScheduledChunk PlannerPlannedChunk plan existsPassedDeveloperImplementing Browser smoke invalidation marker browser-smoke-mpadhdlm · 8s ActiveQAReviewedQA passed for Service Fail Log and Bounded RetentionPassedRuntime ExecutorValidatingValidation needs attentionWaitingDispatcherIdleIdleOperatorIdleIdle",
    "socketDiagnostics": "Socket DevicesBackend-owned Runtime Health room membership and connected devices.Admin Roomadmin.runtime_healthAdmin Devices3Connected Devices 3 / 6 Mobile · web-mp8ojqtd Admin authorized · connected 2026-05-17T22:53:27.695Z · seen 2026-05-17T22:53:45.099Z Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Mobile/15E148 Safari/604.1Disconnected Desktop · web-31e885ae-0d47-48bf-bb7e-c961a6e3fbcf Admin authorized · connected 2026-05-17T22:52:32.813Z · seen 2026-05-17T22:52:32.813Z Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36Connected Mobile · web-e5c8040a-1cce-4b43-8b67-61703c73e17c Admin authorized · connected 2026-05-17T22:54:48.307Z · seen 2026-05-17T22:54:48.307Z Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 RuntimeActionPanelSmoke/1.0Connected Mobile · web-mp8ojqtd Admin authorized · connected 2026-05-17T22:53:19.309Z · seen 2026-05-17T22:53:24.505Z Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Mobile/15E148 Safari/604.1Disconnected Mobile · web-mp8ojqtd Admin authorized · connected 2026-05-17T22:53:45.393Z · seen 2026-05-17T22:53:45.393Z Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Mobile/15E148 Safari/604.1Connected Desktop · web-31e885ae-0d47-48bf-bb7e-c961a6e3fbcf Admin authorized · connected 2026-05-17T22:40:32.678Z · seen 2026-05-17T22:52:32.394Z Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36Disconnected",
    "pageIssues": [],
    "qaRoleText": "QAReviewedQA passed for Service Fail Log and Bounded RetentionPassedRuntime ExecutorValidatingValidation needs attentionWaitingDispatcherIdleIdleOperatorIdleIdle",
    "operatorRoleText": "OperatorIdleIdle",
    "dispatcherRoleText": "DispatcherIdleIdleOperatorIdleIdle",
    "runtimeExecutorRoleText": "Runtime ExecutorValidatingValidation needs attentionWaitingDispatcherIdleIdleOperatorIdleIdle",
    "connectionToast": {
      "offlineToast": "Internet connection lostThe browser reports that network connectivity is offline.Minimize",
      "minimizedToast": "Internet connection lost",
      "restoredToast": "Connection restoredConnection surfaces recovered.Minimize"
    }
  }
}
```
