All tracked .sh files were stored as mode 100644 (non-executable), even
though the CI workflow and normal usage invoke several of them directly
(./scripts/build.sh) rather than through `bash`. On a fresh Linux
checkout this fails with a permission error.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Only the Stop hook (flashbang) is wired into the generated client
configuration. Validate-CommandSafety and Invoke-PostChangeVerification
are utility scripts nothing here invokes automatically; the previous
wording could be read as implying otherwise.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
tkinter was imported at module level, before the try/except that was
meant to catch a missing display or toolkit. On a Python install without
the (often separately packaged) tkinter module, the script crashed
instead of falling back to notify-send. The import is now wrapped in its
own try/except with the same fallback.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>