{"version":"2.1.312","anchor":"spinner-shows-tool-time-from-the-tool-window-start","canonical_anchor":"spinner-shows-tool-time-from-the-tool-window-start","heading":"Spinner times tools from toolWindowStartedAt ; key handlers announce changes","tier":"notice","area":"Terminal UI","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312\/e\/spinner-shows-tool-time-from-the-tool-window-start","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312","markdown":"### Spinner times tools from `toolWindowStartedAt`; key handlers announce changes\n\nThe spinner now measures 'running tool for' time from a new `toolWindowStartedAt` start, and key handlers now report when they are added or removed\n\n**What**\n\nThe spinner is the moving indicator shown while Claude Code is working.\n\n- Tool timing: the spinner now receives a `toolWindowStartedAt` value. It uses the value only when it is at or after the moment loading began. The 'running tool for' and 'ran tool for' status now counts from that start. Before, no such start was passed.\n\n- Key handlers: a key handler is the code that runs when you press a key such as Esc. The list of key handlers now sends a `handlersChanged` notice whenever a handler is added or removed. It also offers new helpers to check whether a key has a handler and to run it. A handler that fails is logged as `Key action handler threw`.\n\n**Why**\n\nThe time shown for a running tool may better match how long the tool has actually been running. The key handler changes let other parts of the screen react when the available keys change.\n\n- Area: Terminal UI\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}