Patch Changes
- e126eba: Harden pull-wake runner lifecycle with a state machine, heartbeat-driven stream resets, and exponential reconnect backoff (1s-30s). Add granular
statusfield toPullWakeRunnerHealth(stopped | starting | connecting | streaming | reconnecting | stopping). TheonErrorcallback is now reporting-only ((Error) => void) - it can no longer control runner lifecycle.stop()rethrowsdrainWakeserrors so callers observe wake handler failures. Event-driven heartbeat throttling avoids stale diagnostics between fixed-interval heartbeats. Durable Streams clients now append stream and__dssubscription control paths to the configured backend URL prefix without inferring a/v1/streamlayout, so pull-wake subscriptions work behind arbitrary DS backend prefixes. Remove the staleStreamClient.getConsumerState()helper for the old Durable Streams/consumersendpoint. - 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. - Updated dependencies [e126eba]
- Updated dependencies [e126eba]
- @electric-ax/agents-runtime@0.2.2