Skip to content

v0.1.1 — fix(exec): mark scripts executable for Linux

Choose a tag to compare

@JordanNewell JordanNewell released this 28 Jul 00:52
75aab2d

Bug-fix release for v0.1.0 Linux installs.

What broke

v0.1.0 shipped hooks/scan-secrets.sh and tests/test-scan-secrets.sh with git mode 100644 (regular file) instead of 100755 (executable). On Linux, this caused:

  • bash /plugin/path/hooks/scan-secrets.sh worked fine (explicit bash invocation)
  • Direct script invocation (what CC's hook does, and what tests do) failed with Permission denied / exit code 126
  • All 18 tests reported as failed on Linux (worked on Windows/Git Bash because NTFS doesn't enforce +x locally)

What's fixed

git update-index --chmod=+x applied to both scripts. Mode is now 100755 in the git tree, which propagates through clone, fetch, and plugin install.

File v0.1.0 mode v0.1.1 mode
hooks/scan-secrets.sh 100644 100755
tests/test-scan-secrets.sh 100644 100755

Also in this release

  • .claude-plugin/marketplace.json added (was missing in v0.1.0, caused /plugin marketplace add to fail with "Marketplace file not found")

Upgrade

claude plugin update pat-scanner

If update reports "Plugin not found" (a known issue when the marketplace cache is stale):

claude plugin marketplace update pat-scanner
claude plugin uninstall pat-scanner
claude plugin install pat-scanner

Verification

Tested end-to-end on Linux (Ubuntu host):

  • ✅ Marketplace add succeeds
  • ✅ Plugin install succeeds
  • ✅ Files at ~/.claude/plugins/cache/pat-scanner/pat-scanner/0.1.1/ with correct mode
  • ✅ All 18 tests pass
  • ✅ Scanner blocks fake figd_DEADBEEFFAKE... fixture with exit code 2
  • ✅ Audit log writes to ~/.pat-scanner/audit.log

Lesson

For Claude Code plugins shipping shell scripts that CC invokes by path (hooks, MCP server wrappers, slash command scripts):

git update-index --chmod=+x <script>
git commit -m "..."

Windows dev environments don't surface this (NTFS doesn't enforce +x). Verify on a Linux host before shipping.