{"version":"2.1.292","anchor":"repeated-usage-limit-alerts-are-handed-back-as-pointer-resul","canonical_anchor":"repeated-usage-limit-alerts-are-handed-back-as-pointer-resul","heading":"Repeated usage-limit alerts are held back and remote notification reads are tracked","tier":"notice","area":"Elsewhere","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292\/e\/repeated-usage-limit-alerts-are-handed-back-as-pointer-resul","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292","markdown":"### Repeated usage-limit alerts are held back and remote notification reads are tracked\n\nRemote and headless sessions now hold back a repeated usage-limit alert instead of querying again, and track reads and nudges for queued remote notifications\n\n**What**\n\nThis 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.\n\n- `repeatsUsageLimitAlert`: when the same usage-limit denial comes back with identical quota limits, the turn is marked with this flag and with `shouldQuery: 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.\n\n- Repeated alerts are handed back like pointer results: a result flagged `repeatsUsageLimitAlert` is now treated the same as one flagged `handbackPointer`. Both are added to `pendingPointerResults` and are no longer flushed early when `shouldQuery` is false. Before, only `handbackPointer` results were added there.\n\n- `usage_limit_denied_notice` is added to a list of names.\n\n- `queuedRemoteNotifications` gains `readsThisTurn`, `unfinishedReads` and `nudgeHeldUntil` (holding `request` and `cut`). Before, it held only `pending`, `drainedIds` and `nudge`.\n\n- Draining queued notifications, which means reading them out, now counts reads in `readsThisTurn`, removes duplicates from `drainedIds` and takes a size cap.\n\n- 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.\n\n- Agent metadata gains an `effort` field, and messages from remote sessions may carry `remoteToolDenialKind`.\n\n**Why**\n\nIn 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.\n\n- Flag `tengu_still_heron`: Not enough to say (read for one account on one subscription tier against v2.1.292; this account: no value returned, anonymous baseline: no value returned, compiled default: 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.\n- Area: Elsewhere\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}