4 new assertions in sidebar-security.test.ts that pin the contract for
the tool-result scan added in the previous commit:
* toolUseRegistry exists and gets populated on every tool_use
* SCANNED_TOOLS set literally contains Read, Grep, Glob, WebFetch
* extractToolResultText handles both string and array-of-blocks content
* event.type === 'user' + block.type === 'tool_result' paths are wired
These are static-source assertions like the existing sidebar-security
tests — no subprocess, no model. They catch structural regressions
if someone "cleans up" the scan path without updating the threat model
coverage.
sidebar-security.test.ts now 16 tests / 42 expect calls.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>