Fix: CLI binary execute permission + fd-level stderr redirect
Root cause: tsc outputs build/cli.js with 644 permissions (no execute bit). The npm global binary (context-mode) is a symlink to this file. Without +x, every hook invocation fails with permission denied (exit 126).
Fixes:
- Build script:
tsc && chmod +x build/cli.js— ensures executable after every build - Upgrade command:
chmod +x build/cli.jsin permissions step — ensures executable after every upgrade - fd-level stderr redirect (from v1.0.4):
closeSync(2) + openSync(os.devNull)inhooks/suppress-stderr.mjsandcli.ts hookDispatch()— redirects fd 2 to/dev/nullbefore native modules load
Cross-platform: os.devNull resolves to /dev/null (Unix) or \\.\NUL (Windows).
Closes #68