Files
gravity_control/docs/devlog/entries/20260408-006.md

1.7 KiB

SafeToAutoRun 데드락 및 익스텐션 프리징 완벽 해결 (v0.5.20)

  • 시간: 2026-04-08 07:15~07:30
  • Commit: 임시해시
  • Vikunja: #589 → done

발생 문제

  1. Deadlock: 이전 버전(v0.5.15)에서 디스코드 알림을 줄이려고 익스텐션의 step-probe.tsSafeToAutoRun 발생 시 pending 파일 생성 자체를 건너뛰도록 구현함. 하지만 AG 엔진은 CORTEX_STEP_STATUS_WAITING 상태에서 누군가가 해결해주기를 영원히 기다리게 되어, 파이프라인 전체가 데드락(UI 멈춤)에 빠지는 치명적인 부작용 발생.
  2. 이벤트루프 Freeze: extension.tsdetectProjectName 내부에서 동기식 cp.execSync('git remote get-url origin')를 실행하여 윈도우 환경에서 VS Code 이벤트루프가 막히고 WebSocket 통신이 유실되는 현상 발생.

결정 사항

  • Agnostic Bridge 철학 준수 (단일 경로 원칙 복구)
    • 익스텐션(step-probe.ts)은 절대 자의적으로 승인 처리를 하거나 pending 파일 생성을 스킵해서는 안 됨. 오직 브릿지 중계자 역할에 충실하도록 롤백하고, 대신 메타데이터에 safe_to_auto_run: true 속성을 실어 보냄.
    • 파이썬 서버(bot.py) 관제탑이 이를 확인하면 디스코드에 알림(Embed)을 보내는 단계만 슬쩍 생략하고 그 즉시 허가증(response/)을 발급. 이를 통해 데드락 해제와 무소음 승인을 동시에 만족함.
  • 비동기화 및 빌드 파이프라인 강제
    • 동기식 git 명령어 대신 비동기식 .git/config 파일 읽기로 교체.
    • package.jsonvscode:prepublish 스크립트를 부활시켜 낡은 소스코드가 VSIX에 패키징되는 문제 원천 차단.