Skip to content

Runtime status

The Runtime status surface in Edge shows whether the local service is up, what your identity is on this Device, and how many runtimes are reported.

What renders

Three cards on the dashboard, side by side:

Local service card

Source: main.ts:627-642 (renderHostCard).

Fields shown:

  • modelocal owner or not confirmed.
  • identity — the principal label (or local-client for loopback).
  • health/healthz response code + duration.

A green pill ready means the local service is reachable and you are local-owner. A red pill check service means /healthz failed; the local Host is not running, the gateway is on a different port, or there is a routing issue.

Source: main.ts:644-669 (renderLinkCard).

Fields shown:

  • route key — the user-facing Space path. not linked if not paired. <value> (detected) if Edge inferred it from the hostname.
  • namespace — the typed space.<spacePath> form.
  • Space — the durable spaceId.
  • authority root — the bus root.

A green pill linked means the Host has been paired. A neutral pill optional means not paired (which is fine — local use does not require it).

Runtimes card

Source: main.ts:671-691 (renderRuntimeCard).

Fields shown:

  • root — runtime authority root.
  • attached devices — count from attachedLeafRoots.
  • registered — count from registeredRuntimes.

A green pill reported means /api/identity/runtime-summary returned successfully. A red pill error shows the failure.

What "local owner" means

Per Overview / Local host view:

ts
isLocalOwner(health, identity, hostname) =>
  isLoopback(hostname) && health.ok
  || identity.localClient === true
  || identity.principal?.principalId === 'host-service'

If you are reaching Edge through 127.0.0.1 and /healthz is ok, you are local-owner. Period.

Status pill semantics

Each card carries a status pill. The pill has four states:

  • ok (green) — probe healthy, expected data present.
  • neutral (gray) — not applicable / optional / no-link.
  • warn (yellow) — unavailable (HTTP 404 / 405 — endpoint missing).
  • bad (red) — error (5xx, network failure, parse error).

What the cards do NOT show

Several things you might expect, that aren't on the dashboard today:

  • CPU / memory — Edge does not surface system resources. Get them from the OS.
  • Per-runtime CPU/memory — Edge does not surface per-runtime resource use.
  • Connection count — bus connection metrics are not surfaced.
  • Recent errors — there is no error log panel. There is the Endpoint Diagnostics panel which shows probe outcomes, not log lines.

Decision strip

Above the support cards is a three-item decision strip (per main.ts:323-355):

Use locally          Installed apps        HiveCast
Ready/Needs service  N apps                <route> / Optional

This is the "at-a-glance" status. It mirrors information from the support cards but emphasizes user actions: can I use this locally? Are there apps to launch? Am I paired?

Refresh

The dashboard refetches probes on every hashchange and on the diagnostics panel's "Refresh diagnostics" button (main.ts:819-824, wireRefreshButton). There is no auto-refresh — the page reflects the load-time state.

For a live view, refresh manually or open the route in a tab and reload. Auto-refresh is target state.

Target state

  • Auto-refresh at a sensible cadence (e.g., 30s).
  • Per-runtime resource panels.
  • Recent error log surface.
  • Live actor request/reply health pills matching the platform shell's reachability surfacing.

See also

Source: projects/matrix-3/packages/matrix-edge/src/main.ts:627-691 for the three cards. edge-model.ts for the data shapes.