Engineering explainer · what this page is
This is the Observer page. It reads the Semios substrate network and renders state — it does not participate (no capture, no oracle, no mesh peering). Its sibling at / on this domain is the Participant page that runs capture, oracle decisions, and mesh handshake.
How it works
- Principal. On first load, the page generates a non-extractable
P-256 ECDSAkeypair via WebCrypto (substrate canon: signature_algop256-ecdsa). The private key never leaves the browser. The public key is the Observer's identity on the substrate. - Probe loop. Every 5s the page sweeps configured Bridge endpoints (
GET /v0/health), recordsnode_id, irohnode_addr, uptime, RTT. - Edge writes. Each sweep produces a thick edge (Surface V, schema per
bridge/02-surface-v-thick-edge.md) signed by the Observer principal:{ kind: "network_probe", probes: [...] }. Posted to/v0/edge/writewith idempotency. Queued in IndexedDB if bridge unreachable; flushed when reachable. - Annotation. Clicking a node opens the detail drawer. Annotations (corroborate / flag / note) write a second edge with
prior_edge_refs: [probe_edge_id]— that's the correlation pair the substrate DB indexes on. - Topology view. SVG nodes positioned by kind class (bridge ring inner, web ring middle, platform ring outer). Pan = drag. Zoom = scroll or +/− buttons. Click = focus + detail drawer.
- Roadmap invocation. Each scoped platform card (iOS / Android / macOS) has an Invoke build session action that writes an
invoke_build_sessionintent edge. A Code daemon (per tracker patch) picks it up and starts a build agent for that platform; its activity edges stream back into the card.
What "live" means here
"Bridges live" = bridges that responded to /v0/health in the last sweep. "Web Nodes" counts the Observer itself (you) and is incremented by other browsers that have written a presence edge in the last 60s — this is wired client-side and will become a substrate-registry query when Bridge Phase 2 lands.
If you opened this page and see DOWN for the configured bridge, the bridge isn't running on the URL the page is polling. Configure URLs in the footer panel. Your phone running bridge.semios.global is not a bridge — it's a Participant node addressed by iroh node_id, not HTTP. It will appear here once Bridge presence-registry lands.
Topology
Roadmap · Platform substrate nodes (scoped)
Configure Bridge endpoints
/v0/health with JSON. Stored locally. Default: http://127.0.0.1:8080.