Patch Changes
- e4acb1d: Use the Electric Cloud
servicequery parameter for tenant-specific agents URLs so desktop cloud requests target the root agents endpoint while preserving tenant auth routing. - e126eba: Route local desktop mutating agents-server requests through the Electron main process so CORS preflights cannot stall behind renderer connection limits.
- e126eba: Default unauthenticated local desktop sessions to the
system:dev-localprincipal and resolve optimistic send principals at mutation time so pending messages do not render asunknown. - e126eba: Add pull-wake runner health check endpoint and rename
owner_user_idtoowner_principalacross the runners system. TheGET /_electric/runners/:id/healthendpoint returns comprehensive diagnostics including runner state, client-reported stream/heartbeat/claim metrics, active claims, and dispatch stats with a derived health status (healthy/degraded/unhealthy). ThePullWakeRunnernow tracks internal diagnostics and reports them to the server via heartbeats, stored in a separaterunner_runtime_diagnosticstable so the mainrunnersshape stays stable for normal UI sync. Theowner_user_id→owner_principalrename stores canonical principal URLs instead of keys, with strict validation and canonicalization at route boundaries. The migration expires active runner claims and deletes existing runner rows as part of the principal rewrite. This is a breaking change with no backward compatibility — all callers must send principal URLs.