fix: improve Windows compatibility and fix event listener issues (#1102)

Replace platform-specific 'which'/'where' commands with cross-platform Bun.which() API to fix Windows compatibility issues and simplify code.

Fixes:
- #1027: Comment-checker binary crashes on Windows (missing 'check' subcommand)
- #1036: Session-notification listens to non-existent events
- #1033: Infinite loop in session notifications
- #599: Doctor incorrectly reports OpenCode as not installed on Windows
- #1005: PowerShell path detection corruption on Windows

Changes:
- Use Bun.which() instead of spawning 'which'/'where' commands
- Add 'check' subcommand to comment-checker invocation
- Remove non-existent event listeners (session.updated, message.created)
- Prevent notification commands from resetting their own state
- Fix edge case: clear notifiedSessions if activity occurs during notification

All changes are cross-platform compatible and tested on Windows/Linux/macOS.
This commit is contained in:
Nguyễn Văn Tín
2026-02-01 17:13:54 +07:00
committed by GitHub
parent e4e7b5283c
commit 9f3f939b31
5 changed files with 18 additions and 40 deletions
+1 -1
View File
@@ -165,7 +165,7 @@ export async function runCommentChecker(input: HookInput, cliPath?: string, cust
debugLog("running comment-checker with input:", jsonInput.substring(0, 200))
try {
const args = [binaryPath]
const args = [binaryPath, "check"]
if (customPrompt) {
args.push("--prompt", customPrompt)
}