Agent should auto-abort and retry when stalled (~30s), not hang until manual Stop

Feature request for product/service

AI Models

Describe the request

Summary
When the network path to Cursor’s AI/streaming endpoints is unstable (especially behind a corporate transparent proxy), Agent mode often enters a “zombie” state: the UI keeps spinning, but nothing progresses—no new tokens, no tool results, no clear failure—until I manually click Stop and resend the prompt.

I can accept slow responses. I cannot accept indefinite stalls with no automatic recovery. For Agent mode to be usable unattended, Cursor needs a hard stall detector and automatic abort + retry, not “wait forever until the user notices.”

Expected behavior (feature request)
Stall detection (~30 seconds)
If there is no meaningful progress for approximately 30 seconds—defined as no new assistant tokens, no tool start/finish events, and no session state updates—treat the turn as stalled.

Automatic recovery

Abort the current stream/turn cleanly (kill the hung request, don’t leave a fake “still running” UI).
Retry automatically (at least once, with short backoff), or show a one-click Retry with the same context.
Surface a clear, actionable error (e.g. ETIMEDOUT, deadline_exceeded, SSE/proxy buffering) instead of an endless spinner.
“Slow” ≠ “stalled”
If tokens or tool events are still arriving (even slowly), do not trigger the 30s timeout. Only trigger when progress has fully stopped.

Applies to the whole Agent turn
Timeouts should cover streaming AI + tool orchestration, not only individual shell commands. A single hung SSE/gRPC read should not block the entire Agent session indefinitely.

What I see today (problem)
Symptoms

Agent window frequently freezes mid-task.
UI shows activity (spinner / “working”) but no forward progress for long periods.
Recovery requires manual Stop + resend; without that, the task may never continue.
Console / logs (representative)

ConnectError: [unavailable] read ETIMEDOUT on AI connect
deadline_exceeded / agent execution provider timeout
[composer] No first token received within 2s / 4s / 6s / 8s (then often nothing useful after)
Stream aborts such as submit_chat_abort_existing, conversation_action_abort, abort_chat_and_wait_for_finish—sometimes the UI still looks “in progress” afterward
Network diagnostics (intermittent)

Sometimes Chat and Agent fail with:
Streaming responses are being buffered by a proxy in your network environment
HTTP/1.1 SSE responses are being buffered by a proxy in your network environment
Other checks (API, SSL, Auth) may still pass; results vary run-to-run on the same machine (unstable path, not a simple on/off proxy toggle in Cursor settings).
I already use HTTP/1.1 compatibility (cursor.general.disableHttp2: true). Helps sometimes; does not eliminate stalls.
Important nuance: “API works” ≠ “Agent works”

Short HTTPS checks to api2.cursor.sh from a terminal can succeed consistently (e.g. ~0.8s, 10/10 OK).
Agent streaming (long-lived SSE) is far more sensitive and still fails or stalls—consistent with proxy buffering / intermittent timeouts on the streaming path, not basic connectivity.
Tool-level timeout is not enough

Individual tool calls may eventually be interrupted (~172s in my experience), but the overall Agent session can still appear stuck and require human intervention. That is far too long for “unattended Agent” use.
Why this matters
The point of Agent mode is to run work in the background while I do something else. If I must babysit every run to click Stop when the network hiccups, Agent becomes unreliable automation rather than an agent.

A ~30 second stall threshold matches real-world expectations: if nothing has moved in half a minute, something is wrong—retry or fail fast; don’t wait minutes (or forever).

Environment (for reproduction)
OS: Linux
Cursor: recent 3.5.x (Agent / Composer)
Network: corporate LAN; transparent proxy/gateway (no explicit proxy in Cursor http.proxy; issue appears environmental)
Settings tried: HTTP/1.1 compatibility mode, disableHttp2, network diagnostics, extension host restart, full app restart
Request to the Cursor team
Please implement user-visible, reliable stall handling for Agent:

Default ~30s no-progress → abort + auto-retry (configurable if needed, but 30s should be a sane default for interactive Agent).
Never leave the UI in an infinite “still working” state when the backend stream is already dead.
Log and display the last transport error to distinguish proxy/SSE issues from model slowness.
Happy to provide full Console exports and Network Diagnostic screenshots if useful.

Thanks.