🖥️ 데스크톱 사이드카 크래시 해결
OpenCode Desktop에서 발생하던 랜덤 크래시 문제(조용한 종료, 누락된 알림, grep/glob 결과 없음)의 근본 원인을 수정했습니다. OMO를 실행하는 Electron 유틸리티 프로세스는 Bun의 셸 헬퍼나 네이티브 스트리밍 API를 제공하지 않습니다. 런타임에 이를 감지하고 순수 Node child_process + buffer-concat 스트리밍으로 폴백하도록 영향을 받은 모든 경로를 다시 작성했습니다. 영향을 받은 기능들:
- 네이티브 검색 (
grep, glob)이 이제 Response(stream).text() 대신 Node-안전 스트림 수집기를 통해 서브프로세스 출력을 읽습니다 (#3919).
- OS 알림이
ctx.$가 없을 때 windowsHide: true를 사용하는 execFile로 폴백됩니다 (#4128, #4061).
- Ripgrep 탐지 Windows에서 셸 없는 spawn과 함께
where.exe를 사용합니다 — 더 이상 콘솔 창이 깜박이지 않습니다.
- 서브프로세스 강화가
binary-downloader, zip-extractor, 그리고 모든 5개의 zip-entry-listing 변형을 통해 전파되었습니다.
🔁 백그라운드 에이전트가 더 이상 자신을 반복하지 않음
오래 지속된 두 가지 신뢰성 버그가 해결되었습니다:
- 부모 웨이크 중복 — 백그라운드 서브 에이전트가 완료되었을 때 부모의
promptAsync 게이트가 여전히 유지 중이면, 동일한 웨이크가 두 번 큐에 들어가서 두 번째 어시스턴트 스트림을 시작할 수 있었습니다. 게이트 유지 윈도우 중 의미론적 중복 제거로 해결됨 (#4256, #4019).
- 정리 리스너 유지 — MCP 시작 또는 공급자 재연결 중 반복되는 일시적 오류로 인해 더 이상 호스트가 중단되지 않습니다.
uncaughtException 리스너는 이벤트 전체에 걸쳐 설치된 상태로 유지되며, 로컬 재입장 방지 기능이 로그 폭발을 여전히 방지합니다.
💬 댓글 검사 무한 루프 해결
기존 댓글이 포함된 줄을 편집하면 댓글이 변경되지 않았는데도 댓글 검사가 반복적으로 트리거되었습니다. 검사기는 이제 새로 추가된 댓글을 도입하지 않은 편집을 건너뛰고 경고를 세션당 30초마다 한 번으로 중복 제거합니다 (#4292).
순수 버그 수정 릴리즈입니다. 새로운 에이전트 없음, 새로운 도구 없음, 설정 변경 없음. v4.3.0을 사용 중이라면 즉시 업그레이드할 수 있습니다.
- e7120f6 Merge pull request #4295 from vanhci/fix/issue-4292-comment-checker-deadloop
- 9e5c431 Merge pull request #4297 from SpencerJung/fix/issue-4128-desktop-sidecar-crash
- 7409f2e Merge pull request #4300 from code-yeongyu/fix/issue-3919-desktop-native-search
- e6d8b3e Merge pull request #4299 from code-yeongyu/fix/issue-4128-ctx-dollar-guard
- a51d22d Merge pull request #4301 from code-yeongyu/fix/issue-4256-duplicate-prompt-dispatch
- 560569e fix(parent-wake-notifier): drop duplicate wakes during promptAsync gate hold (#4256, #4019)
- aded57f fix(shared): harden ripgrep-cli, zip-extractor, binary-downloader subprocess paths
- d17b212 fix(tools/grep, tools/glob): use Node-safe subprocess streaming (#3919)
- 4ea7562 feat(shared): add Node-safe process stream reader and search output collector
- bc8c462 fix(session-notification-sender): guard ctx.$ with execFile fallback for Desktop sidecar (#4128, #4061)
- b31ad3c @csxq0605 has signed the CLA in #4298
- ec9997b fix(background-agent): keep cleanup error listener active
- 4cf391b fix(comment-checker): skip modified-existing comments and dedupe per-session (issue #4292)
- cb205e1 @SpencerJung has signed the CLA in #4247
- 1699329 @YOMXXX has signed the CLA in #4263
- 0904e23 @wolfkill has signed the CLA in #4261
커뮤니티 기여자 1명께 감사드립니다:
- @SpencerJung:
- fix(background-agent): keep cleanup error listener active