github electric-sql/electric @electric-ax/agents-server@0.4.4

4 hours ago

Patch Changes

  • e126eba: Harden pull-wake runner lifecycle with a state machine, heartbeat-driven stream resets, and exponential reconnect backoff (1s-30s). Add granular status field to PullWakeRunnerHealth (stopped | starting | connecting | streaming | reconnecting | stopping). The onError callback is now reporting-only ((Error) => void) - it can no longer control runner lifecycle. stop() rethrows drainWakes errors so callers observe wake handler failures. Event-driven heartbeat throttling avoids stale diagnostics between fixed-interval heartbeats. Durable Streams clients now append stream and __ds subscription control paths to the configured backend URL prefix without inferring a /v1/stream layout, so pull-wake subscriptions work behind arbitrary DS backend prefixes. Remove the stale StreamClient.getConsumerState() helper for the old Durable Streams /consumers endpoint.
  • e126eba: Add pull-wake runner health check endpoint and rename owner_user_id to owner_principal across the runners system. The GET /_electric/runners/:id/health endpoint 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). The PullWakeRunner now tracks internal diagnostics and reports them to the server via heartbeats, stored in a separate runner_runtime_diagnostics table so the main runners shape stays stable for normal UI sync. The owner_user_idowner_principal rename 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

Don't miss a new electric release

NewReleases is sending notifications on new releases.