Cross-Harness Event Relay

Cross-Harness Event Relay

Agents increasingly work across harnesses, but disk polling makes progress and handoffs slow to observe. This change adds synlynk relay: a small local ThreadingHTTPServer with an SSE event stream and JSON-RPC 2.0 control endpoint.

Events use a typed EventEnvelope with a stable ActorIdentifier, so a message can identify its workspace, member, role, harness, and job. Relay events are persisted in SQLite, while point-to-point messages also enter a recipient mailbox for later delivery.

The first CLI surface is intentionally small: relay start, status, send, and tail. The standard-library implementation keeps the relay easy to run in headless workers and easy to test with an ephemeral port.