{"version":"2.1.287","anchor":"hook-matcher-helper-and-tool-call-log-dedupe","canonical_anchor":"hook-matcher-helper-and-tool-call-log-dedupe","heading":"Hook matching covers PostToolBatch, and repeated refusal log entries are capped","tier":"notice","area":"Hooks","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.287\/e\/hook-matcher-helper-and-tool-call-log-dedupe","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.287","markdown":"### Hook matching covers PostToolBatch, and repeated refusal log entries are capped\n\nThe matcher used for `PostToolUse` hooks now also covers `PostToolBatch`, and refused-request log entries are recorded once per day\n\n**Unclear.** It is not clear whether `PostToolBatch` hooks match tools any differently in practice.\n\n**What**\n\nHooks are your own commands that Claude Code runs at set moments. The way Claude Code reads a hook's matcher, the pattern that says which tools a hook applies to, has been moved into a shared helper. That helper serves `PostToolUse` and now also `PostToolBatch`.\n\nSeparately, the remote log of tool calls (requests Claude makes to use a tool) now writes a refused request only once per day instead of every time. When later entries are skipped, the log marks that more were not written.\n\n**Why**\n\nThe log change limits how much the remote tool-call log records.\n\n- Area: Hooks\n- Names: `PostToolBatch`, `PostToolUse`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}