ECC/scripts/hooks
Helbetica 7bed751db0
fix: auto-start dev servers in tmux instead of blocking (#344)
* fix: auto-start development servers in tmux instead of blocking

Replace blocking PreToolUse hook that used process.exit(2) with an auto-transform hook that:
- Detects development server commands
- Wraps them in tmux with directory-based session names
- Runs server detached so Claude Code is not blocked
- Provides confirmation message with log viewing instructions

Benefits:
- Development servers no longer block Claude Code execution
- Each project gets its own tmux session (allows multiple projects)
- Logs remain accessible via 'tmux capture-pane -t <session>'
- Non-blocking: if tmux unavailable, command still runs (graceful fallback)

Implementation:
- Created scripts/hooks/auto-tmux-dev.js with transform logic
- Updated hooks.json to reference the script instead of inline node command
- Applied same fix to cached plugin version (1.4.1) for immediate effect

* fix: resolve PR #344 code review issues in auto-tmux-dev.js

Critical fixes:
- Fix variable scope: declare 'input' before try block, not inside
- Fix shell injection: sanitize sessionName and escape cmd for shell
- Replace unused execFileSync import with spawnSync

Improvements:
- Add real Windows support using cmd /k window launcher
- Add tmux availability check with graceful fallback
- Update header comment to accurately describe platform support

Test coverage:
- Valid JSON input: transforms command for respective platform
- Invalid JSON: passes through raw data unchanged
- Unsupported tools: gracefully falls back to original command
- Shell metacharacters: sanitized in sessionName, escaped in cmd

* fix: correct cmd.exe escape sequence for double quotes on Windows

Use double-quote doubling ('""') instead of backslash-escape ('\\\") for cmd.exe syntax.
Backslash escaping is Unix convention and not recognized by cmd.exe. This fixes quoted
arguments in dev server commands on Windows (e.g., 'npm run dev --filter="my-app"').
2026-03-07 14:47:46 -08:00
..
auto-tmux-dev.js fix: auto-start dev servers in tmux instead of blocking (#344) 2026-03-07 14:47:46 -08:00
check-console-log.js Fix stdin overflow bug in hook scripts - truncate chunks to stay within MAX_STDIN limit 2026-02-18 07:40:12 +00:00
check-hook-enabled.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
cost-tracker.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
doc-file-warning.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
evaluate-session.js Fix stdin overflow bug in hook scripts - truncate chunks to stay within MAX_STDIN limit 2026-02-18 07:40:12 +00:00
post-bash-build-complete.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
post-bash-pr-created.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
post-edit-console-warn.js Merge branch 'affaan-m:main' into main 2026-02-18 18:33:04 +05:30
post-edit-format.js Merge pull request #252 from pythonstrup/feat/auto-detect-formatter 2026-02-24 09:24:15 -08:00
post-edit-typecheck.js Fix stdin overflow bug in hook scripts - truncate chunks to stay within MAX_STDIN limit 2026-02-18 07:40:12 +00:00
pre-bash-dev-server-block.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
pre-bash-git-push-reminder.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
pre-bash-tmux-reminder.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
pre-compact.js fix: nullish coalescing in evaluate-session config, narrow pre-compact glob, add 11 tests 2026-02-13 02:42:01 -08:00
pre-write-doc-warn.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
quality-gate.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
run-with-flags-shell.sh feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
run-with-flags.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
session-end-marker.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
session-end.js feat: deliver v1.8.0 harness reliability and parity updates 2026-03-04 14:48:06 -08:00
session-start.js feat: automatic project type and framework detection (#293) 2026-03-02 22:07:10 -08:00
suggest-compact.js fix(hooks): scrub secrets and harden hook security (#348) 2026-03-07 14:47:31 -08:00