Unclear It is not confirmed whether this wait actually holds up the tool from running or only records how long saving took.
What
In cloud (CCR) sessions, Claude Code uploads a record of each event, including every tool call, which is a single action Claude takes such as editing a file. The server sends a policy saying when those uploads are flushed. That policy now accepts three more fields.
flush_before_tools_wait_ms: before a tool that may write runs, Claude Code releases held events and waits until the tool-call row is recorded as stored (on the client events lane, and the transcript lane when in use). The wait is capped at 30000 ms, with a separate grace limit for the row first reaching the queue.flush_after_tools: "none", "write" or "all" (default "none"). A tool result then forces a flush; with "write", results from the gated writing calls do.live_twin_types: rows of the listed types are held while a viewer is present.- The worker gains
gatesToolCallsandtoolCallRowGraceMsoptions and tracks whether uploaded tool-call rows were stored or dropped.gatesToolCallsis on for every session type exceptbridge. - These apply only when the hold rule is the server-sent policy, which also depends on
tengu_ccr_event_hold_enabled(fallback true; nothing has been read about it for this release). If the policy leaves the fields out, the wait is 0 and nothing waits.
Why
A file change in a cloud session can be on record before it takes effect, so a crash cannot leave files changed with no trace of the edit in the transcript. The cost is that a writing tool may pause for up to 30 seconds, and only once the server sends a policy asking for it.
It is not confirmed whether this wait actually holds up the tool from running or only records how long saving took.