v0.2.0 릴리즈하고 나서 직접 써보는데, 대시보드가 뻥 빈 화면으로 뜨는 거다. 로그는 잘 찍히는데 웹 UI만 아무것도 안 나옴. 이거 찾는 데 반나절 걸렸다.
대시보드 Cycle #0 버그
원인이 좀 허무했다. interactive.py에서 _setup_logger()를 _start_dashboard()보다 먼저 호출하고 있었는데, 그래서 ds = self._dashboard_state가 None을 캡처해버린 거였다. 콜백 함수들이 전부 None 체크에 걸려서 silent no-op. 로그에 에러도 안 뜨니까 찾기 어려웠다.
순서만 바꾸면 되는 건데, 이런 초기화 순서 버그가 제일 짜증난다. 재현도 100%인데 에러 메시지가 없으니까.
Expert AI가 소스 없이 배포하려 함
더 큰 문제가 있었다. Expert AI가 소스 코드가 하나도 없는데 “EXPORT” 액션을 내리는 거였다. 코드를 먼저 만들어야 하는데 배포부터 하려고 하니 당연히 아무것도 안 됨. 이게 MID_2 페이즈에서 발생했는데, 페이즈 진입 조건에 “소스 파일이 존재해야 함”이 빠져 있었다.
_get_project_file_snapshot()이라는 함수를 만들어서, 매 사이클마다 실제 파일 시스템 상태를 Expert AI 프롬프트에 주입하게 했다. 소스 파일 수, 총 라인 수, 배포 준비 상태 같은 걸. 이러니까 Expert가 자연스럽게 “아직 코드가 없으니 coder_tasks부터”라고 판단하더라.
상태 영속화
Ctrl+C로 끄고 다시 실행하면 처음부터 시작하는 것도 문제였다. loop_iteration, 테스트 히스토리, 리뷰 점수 같은 걸 config.json에 저장해서 이어서 돌 수 있게 했다. 사소한 건데 없으면 진짜 불편하다.