Follow Discord
Sweep 03 Nov 2026 · 22:27Z Build v2.1.318 536 read Stable v2.1.311 Latest v2.1.318 Next v2.1.318 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.318 ·

Remote sessions can send keep-alives on their own when event uploads fail

Remote (CCR) sessions can post a lone keep-alive while event uploads fail, with new heartbeat, goodbye, flush-timing and withholding behaviour

Group of 4 Under the hood Internal Changes
JSON All of v2.1.318
Under the hoodTier: how much it should matter to you
2Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Remote ControlArea: what it touches
Internal ChangesKind: in v2.1.318,
Internal ChangesSection of the release

Unclear When whole files are held back from remote viewers is not stated.

What

In remote (CCR) sessions, Claude Code runs as a worker that sends its events to a remote service. A keep-alive is a small message that keeps the connection open. Keep-alives already required the CLAUDE_CODE_REMOTE_SEND_KEEPALIVES environment variable and a remote flag. What is new:

  • Keep-alive on its own: through noteEventsPostFailed, keepAlivesGoAlone and sendKeepAliveAlone, the worker now sends a keep_alive by itself to /worker/events when uploads have been failing recently. This only happens when the failures were not rate limiting (code 429) and nothing is being withheld. The first failure only triggers this when CLAUDE_CODE_REMOTE_SEND_KEEPALIVES is set. Keep_alive rows from the normal write path also go this way. The failure state resets after an upload succeeds. Before, a keep-alive was only sent while a whole turn was held across model calls.
  • Heartbeat: the random variation in the heartbeat timing now has a minimum, and the timer has a maximum.
  • Goodbye: the goodbye message is now skipped while a session is being resumed (resume_load). Before, it was only skipped in the middle of a turn.
  • Flush timing: new uploader settings streamEventWindowRunsFromLastFlush and heldBunchFlushMs, set through setStreamEventWindowRunsFromLastFlush and setHeldBunchFlushMs, control how quickly streamed output is sent.
  • Withholding: a new withholdsWholeFiles path can withhold whole files. Tool results for virtual user rows are no longer trimmed. The first row that makes a request is marked ephemeral, meaning temporary. Before, the only trimming was blanking tool results and MCP images.
  • New records: new events are recorded for headless sessions holding a message during an interrupt, for a follow-up message ending that hold, for the lone keep-alive, and for subagent progress summaries being off.

Why

A remote session can now stay connected while the events service is failing, instead of dropping. Remote viewers may also see changes in how quickly output arrives and in what is withheld from them.

How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtWhen whole files are held back from remote viewers is not stated.

See this entry in the whole of v2.1.318 →

Feedback