Headless embedders of @cursor/sdk set local.enableAgentRetries: true (the default for this posture) so stalled transport recovers automatically. The SDK does not export reconnect or retry state: there is no public onConnectionStateChange, no stream message, and no status value for RETRYING.
Internal machinery already exists (stall detector, onConnectionStateChange with reconnecting / connected, transport-retry counters). It is not on the public TypeScript surface.
Without that signal, an embedder's idle timeout cannot distinguish model silence from an in-progress SDK reconnect. Idle kills then look like a dead model in post-mortems even when the SDK was retrying.
Please export the existing internal stall detector / connection-state hook (for example onConnectionStateChange and/or a stream status for retrying) so embedders can keep transport retries enabled and still observe them.
Headless embedders of
@cursor/sdksetlocal.enableAgentRetries: true(the default for this posture) so stalled transport recovers automatically. The SDK does not export reconnect or retry state: there is no publiconConnectionStateChange, no stream message, and no status value forRETRYING.Internal machinery already exists (stall detector,
onConnectionStateChangewithreconnecting/connected, transport-retry counters). It is not on the public TypeScript surface.Without that signal, an embedder's idle timeout cannot distinguish model silence from an in-progress SDK reconnect. Idle kills then look like a dead model in post-mortems even when the SDK was retrying.
Please export the existing internal stall detector / connection-state hook (for example
onConnectionStateChangeand/or a stream status for retrying) so embedders can keep transport retries enabled and still observe them.