diff --git a/CHANGELOG.md b/CHANGELOG.md index e9af8ff..32a0b6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [Unreleased] + +- Send SSE heartbeat comments on streaming endpoints (`message:stream`, `tasks/{id}:subscribe`) at a configurable + interval (`a2at.server.heartbeat-interval-seconds`, default 15 seconds, `0` disables). Keeps intermediaries + from idle-timing-out long-running SSE connections during agent execution; the heartbeat integrates with the + emitter lifecycle and stops on stream completion, error, timeout, or client disconnect. + ## [0.0.10] — 2026-09-16 - Upgrade the A2A-T SDK dependency to 1.1.1 (patch release, no breaking API changes). diff --git a/docs/en/API_REFERENCE.md b/docs/en/API_REFERENCE.md index 8198b6e..2e1ac22 100644 --- a/docs/en/API_REFERENCE.md +++ b/docs/en/API_REFERENCE.md @@ -704,6 +704,7 @@ Configuration properties prefixed with `a2at.server`: | `a2at.server.executor-max-size` | `8` | Server executor maximum threads | | `a2at.server.executor-queue-capacity` | `100` | Bounded server executor queue capacity | | `a2at.server.executor-keep-alive-seconds` | `60` | Non-core thread keep-alive in seconds | +| `a2at.server.heartbeat-interval-seconds` | `15` | SSE heartbeat comment interval on streaming endpoints. Keeps intermediaries from idle-timing-out long-running SSE connections. `0` disables | ```yaml a2at: @@ -716,6 +717,7 @@ a2at: executor-core-size: 8 executor-max-size: 16 executor-queue-capacity: 200 + heartbeat-interval-seconds: 15 ``` ### A2AAutoConfiguration diff --git a/docs/zh/API_REFERENCE.md b/docs/zh/API_REFERENCE.md index 982ad3f..9ea3271 100644 --- a/docs/zh/API_REFERENCE.md +++ b/docs/zh/API_REFERENCE.md @@ -657,6 +657,7 @@ getReceivedMessages() 是保留层级的响应来源,getOutputs() 为便利投 | `a2at.server.executor-max-size` | `8` | 服务端执行器最大线程数 | | `a2at.server.executor-queue-capacity` | `100` | 服务端执行器有界队列容量 | | `a2at.server.executor-keep-alive-seconds` | `60` | 非核心线程存活时间(秒) | +| `a2at.server.heartbeat-interval-seconds` | `15` | SSE 心跳注释间隔(秒)。防止网关在 Agent 长时间执行期间因空闲超时掐断流式连接。设为 `0` 禁用 | ```yaml a2at: @@ -669,6 +670,7 @@ a2at: executor-core-size: 8 executor-max-size: 16 executor-queue-capacity: 200 + heartbeat-interval-seconds: 15 ``` ### A2AAutoConfiguration