Claude Code 2.1.287 tool heartbeats and Sume jobs_wait slices
Claude Code 2.1.287 fixed tool heartbeats not reaching SDK hosts during a stalled response stream. Sume's jobs_wait holds up to 55 s, so heartbeats matter.

If you embed Claude Code through the Agent SDK and call Sume's jobs_wait, the 2.1.287 fix keeps your host informed while a tool runs. The changelog for October 1, 2026 says it fixed tool heartbeats not reaching SDK hosts while the model's response stream was stalled with no data arriving. A jobs_wait call can hold one request for up to 55 seconds, which is long enough for a host to think the process has hung.
What changed
The Claude Code line comes from the Claude Code changelog (read 2026-10-07). The Sume figures come from Jobs and results.
Limits to set a timeout above
The table gives the Sume wait limits so that you can set a host timeout above them.
| Call | Longest hold | If it times out |
|---|---|---|
jobs_wait on hosted MCP | 55 seconds (default 50) | Call it again with the same ids |
Submit with mode: "sync" | 30 seconds (wait_timeout_seconds cap) | Poll status_url; do not resubmit |
Poll status_url | One short read | Obey next_poll_after_seconds |
Set the timeout
Set the host's per-tool timeout above 55 seconds, ideally with some margin, and let jobs_wait return wait_slice_expired on its own. Do not ask for a longer timeout_seconds: the API clamps it to the cap and reports wait_slice_clamped.
A dropped wait does not cancel anything
If the host drops the call, the job is unaffected. A Sume job runs until it reaches a terminal state, whether or not anyone is waiting. Keep the job ids in your own state, and on restart call jobs_wait or jobs_status with them.
Wait on a wave
Pass up to 20 ids in one jobs_wait and set include_results: true, so one slice returns finished results for the whole wave.
Sources
Related posts
More in Agents
- Claude Code routine artifacts: link Sume media, don't paste it
Claude Code 2.1.292 lets Scheduled and Run now routines publish a private artifact without approval. Hand off Sume results as durable media.sume.com links.
- Claude Code scheduled task never fired? Compare with a Sume cron run
Claude Code 2.1.292 fixed scheduled tasks that never fired after /resume, /branch or /clear. A Sume schedule runs on Sume's clock, so check it separately.
- Codex 0.160.0 resumes queued messages after reconnect: Sume key rule
Codex 0.160.0 resumes unsent queued messages after a reconnect without duplicates. A paid Sume call still needs its own idempotency_key to be safe.
- Codex keeps your computer on reconnect: find Sume jobs first
Codex CLI 0.161.0 keeps a new task on the selected computer while it reconnects or is offline. After a gap, list Sume jobs before you resubmit any paid call.
Written by Sume