Repository navigation
AgentCore 0.14.1
Fixed
-
Anthropic streaming now forwards actual HTTP activity, including SSE heartbeats that the SDK filters out, as empty progress deltas. Healthy requests using omitted thinking can exceed the stream stall window while retaining their configured total call timeout. Silent connections still trigger the stall guard, and cancellation closes both the response and the event-reader task. No configuration migration is required.
-
Bound LLM admission waits, tracing and cancellation cleanup, and enforce total summary request deadlines so stalled hooks, transports or slow response bytes cannot indefinitely hold a call. Concurrency-gate admission is bounded by
LLM_GATE_WAIT_S(disabled by default; logical/wall deadlines still apply) without shrinking the generation budget, ends with reasongate_waiton explicit admission expiry without re-queueing or spending provider retries, and a gate slot is returned only after an abandoned provider request or stream close settles. Streamedafter_llmhooks get a per-hook grace period; background observer drain at loop end is bounded.SummaryLLMEnginegainstotal_timeout(defaultrequest_timeout) and raisesSummaryRequestTimeout, anhttpx.TimeoutExceptionandTimeoutError. Bounded closes finalize async generators in a helper task, so provider/LLM wrapper generators must not hold anasyncio.timeoutor anyio cancel scope across ayield.Middleware and fallback stream wrappers explicitly close their delegated streams before leaving the admission lease, retaining the slot until abandoned provider cleanup settles even when middleware truncates a stream.
-
Preserve OpenAI-compatible Chat Completions and Responses streaming transport heartbeats through SDK filtering, preventing false stall timeouts during silent reasoning while retaining total deadlines, cleanup, retry and fallback semantics. Transport heartbeats no longer satisfy an armed first-chunk (TTFT) bound or count toward
chunks_seen; they extend the inter-chunk stall window only after real output, or when no first-chunk bound is set. Unrecognised response byte streams are left unobserved instead of failing, and heartbeats are no longer emitted alongside every parsed event.