What
This change affects sessions that run without the interactive screen, such as remote sessions and headless sessions driven by another program. It changes how a repeated usage-limit notice is handled and how queued notifications from the remote side are read.
repeatsUsageLimitAlert: when the same usage-limit denial comes back with identical quota limits, the turn is marked with this flag and withshouldQuery: false, meaning no new request goes to the model. The flag is passed through the message queue, the session controller, the session loop, a session class and the turn-result class.- Repeated alerts are handed back like pointer results: a result flagged
repeatsUsageLimitAlertis now treated the same as one flaggedhandbackPointer. Both are added topendingPointerResultsand are no longer flushed early whenshouldQueryis false. Before, onlyhandbackPointerresults were added there. usage_limit_denied_noticeis added to a list of names.queuedRemoteNotificationsgainsreadsThisTurn,unfinishedReadsandnudgeHeldUntil(holdingrequestandcut). Before, it held onlypending,drainedIdsandnudge.- Draining queued notifications, which means reading them out, now counts reads in
readsThisTurn, removes duplicates fromdrainedIdsand takes a size cap. - The nudge, a reminder to read waiting notifications, is now one shared sentence telling the model to keep calling until it reports 0 remaining. Before, the text was written inline.
- Agent metadata gains an
effortfield, and messages from remote sessions may carryremoteToolDenialKind.
Why
In practice, hitting the same usage limit again no longer sends another request to the model, and the repeated notice is delivered with other handed-back results. The new read counters and the nudgeHeldUntil time suggest reminders about waiting notifications can now be held back rather than repeated every turn.
tengu_still_heron Not enough to sayNothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.
This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.292: on
These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.
Read once, for one account on one subscription tier, against v2.1.292. It isn't a statement about your account. What a flag value here can and cannot tell you
New in this build: tengu_still_heron