fenok-IB · 키움 창 미종료 · 진단 안내

IB 키움 미종료 진단

주문은 되는데 키움 창이 안 닫히고 남는 증상, 아래 순서대로만 하면 원인이 바로 나옵니다.

  1. 평소대로 한 번 돌린다

    테스트를 평소 하던 방식 그대로 한 번 실행합니다.

  2. 아무 창도 닫지 말고 복사

    키움 창이 남은 그 상태에서, 아래 프롬프트 전체를 복사합니다.

  3. Claude(또는 sol)에 붙여넣기

    붙여넣으면 알아서 조사합니다. 결과 보고가 나오면 그대로 복사해서 보내주세요.

진단 프롬프트 · 전체를 그대로 붙여넣기

[역할]
너는 지금부터 읽기 전용 진단 요원이다. 아무것도 수정·삭제·종료·업데이트하지 마라. 증거 수집만 한다.

[배경 — 30초 요약]
이 PC에는 "fenok-IB"라는 자동매매 도구가 설치되어 있다. 이 도구는 키움증권 영웅문 Global(예상 프로세스명 nfrunlite.exe / nfstarter.exe)을 자동 조작한 뒤 스스로 종료시키는데, 최근 "주문은 성공하는데 키움 창이 안 닫히고 남는" 증상이 있다. 원인 후보는 이미 3가지로 좁혀져 있고, 아래 증거 A~E만 모으면 판별된다.

[환경 파악 — 먼저 해라]
1. 네가 어디서 실행 중인지 확인해라: Windows 네이티브인지 WSL인지. (uname이 실패하면 Windows, 성공하고 출력에 microsoft가 있으면 WSL)
2. WSL이라면: 윈도우 파일은 /mnt/c/... 경로로 읽고, 윈도우 명령은 powershell.exe -Command "..." 또는 cmd.exe /c 로 실행한다. tasklist.exe처럼 .exe를 직접 호출해도 된다.
3. 설치 폴더를 찾아라: bootstrap\ib-bootstrap.exe 와 app\current.json 이 함께 있는 폴더가 설치 루트다. 바탕화면 → 다운로드 → 사용자 홈 → C:\ 하위 1~2단계 순으로 찾고, 못 찾으면 사용자에게 "IB 설치 폴더가 어디야?"라고 물어라.

[수집 항목 — 순서대로, 명령 출력 전문을 보존해라]
A. 실행 중 버전
   - <설치루트>\app\current.json 내용 전체
   - <설치루트>\app\versions\ 폴더 목록 (버전 폴더명 전부)
   - 활성 버전 폴더의 VERSION.txt 내용
B. 종료 로그 (가장 중요)
   - <설치루트>\artifacts\runner\ 에서 가장 최근 orchestrator_cert*_stdout.txt 파일(들)을 찾아라
   - 그 안에서 "SHUTDOWN" 이 포함된 모든 줄 전문
   - "hts_process_kill" 이 포함된 모든 줄 전문
   - 각 파일의 마지막 30줄
C. 살아있는 프로세스 (키움 창이 남아있는 지금 상태에서)
   - tasklist 출력에서 nfrunlite / nfstarter 검색 결과 (없으면 "없음"이라고 기록)
   - 창을 가진 프로세스 전수: powershell "Get-Process | Where-Object {$_.MainWindowTitle} | Select-Object Id,ProcessName,MainWindowTitle,Path | Format-List"
   - 영웅문/키움 관련 창이 보이면 그 ProcessName과 Path를 반드시 따로 기록해라 — 결정적 증거일 수 있다
D. 권한
   - 사용자에게 물어라: "도구 실행할 때 파란 관리자 확인창(UAC)이 떴어?"
   - C에서 키움 프로세스를 찾았으면 그 PID로: powershell "Get-Process -Id <PID> | Select-Object Name,Path"
E. 실행 파일
   - 사용자가 더블클릭하는 run.bat 의 전체 내용
   - 설치 루트에 다른 *.bat 이 있으면 이름 목록도

[판별표 — 수집이 끝나면 이 표로 결론 1줄을 붙여라]
- B에 success= 가 붙은 구조화된 SHUTDOWN done 줄이 아예 없음 → 구버전 실행 중 (버전 스큐)
- success=False + killed_count=0 + errors에 AccessDenied → 관리자 권한 문제
- success=True + killed_count=0 + remaining_count=0 인데 창은 떠 있음 → 프로세스명 불일치 (C에서 찾은 실제 이름이 답)
- errors에 "psutil not installed" → 패키징 누락

[보고 형식]
A~E 원문을 항목 제목과 함께 순서대로 붙이고, 마지막에 판별표 기준 결론 1줄 + 확신도(높음/중간/낮음)를 써라. 완성된 보고 전문을 사용자에게 보여주고 "이대로 복사해서 보내주면 된다"고 안내해라.

[금지사항]
- taskkill·프로세스 종료·창 닫기·도구 재실행·IB 업데이트.bat 실행·설정 파일 수정 전부 금지
- settings\ 안의 계좌번호·비밀번호·인증서 관련 값은 보고에 절대 포함하지 마라 (파일 이름 언급만 허용)

수집 항목은 파일 몇 개 읽기와 프로세스 목록 조회뿐이며, 계좌·비밀번호 값은 보고에 포함되지 않게 프롬프트가 막고 있습니다.