메인 칼럼 개발일지 작업물 연락처
← adelie 프로젝트
adelie

v0.3.0 찍고 실전에서 터진 것들

v0.3.0Production Bridge버그 헌팅

v0.2.16부터 0.2.20까지 하루 만에 몰아서 작업하고, v0.3.0으로 메이저 릴리즈를 찍었다. Production Bridge와 Human Intercept를 달아서 “하네스 아키텍처” 완성이라는 느낌이었는데, 실전에 넣자마자 연쇄적으로 터졌다.

Production Bridge

GitHub Actions 상태를 폴링해서 CI가 실패하면 자동으로 ERROR 상태로 전환하고, Coder한테 핫픽스를 시키는 구조다. Sentry 연동도 넣어서 에러 스파이크를 감지하면 같은 루프를 탄다. 토큰이 없으면 해당 어댑터가 조용히 비활성화되는 graceful degradation도 신경 썼다.

Human Intercept

/intercept 명령어 하나면 AI가 뭘 하고 있든 즉시 멈춘다. /pause랑 다른 게, pause는 사이클 경계에서 멈추는 건데 intercept는 에이전트 사이에서 바로 멈춤. 대시보드에도 ⛔ 버튼을 달았다.

실전 투입 — 연쇄 버그

v0.3.0을 찍고 gemma4:31b로 실제 Next.js 프로젝트를 만들어보게 했더니 줄줄이 터졌다.

프레임워크 감지 실패: Expert AI가 모든 JS 프로젝트를 Vite로 가정하고 index.html이랑 vite.config.ts를 요구했다. Next.js인데. _detect_framework()를 만들어서 next.config.*, package.json dependencies 기반으로 프레임워크별 분기 처리했다.

경로 안전성 false positive: [...nextauth] 같은 Next.js 캐치올 라우트가 .. 서브스트링 체크에 걸렸다. .....을 포함하니까. 세그먼트 단위 체크(Path.parts)로 바꿔서 해결.

리뷰어가 스테이징 안 보는 버그: Reviewer AI가 프로젝트 루트에서 파일을 읽고 있었는데, Coder는 스테이징에 쓰니까 서로 다른 파일을 보고 있었다. 경로 하나 잘못 넘긴 거였다.

20사이클 데드락: page.tsx가 여러 디렉토리에 있는데 basename만으로 파일 수정 횟수를 카운트하니까, 다른 경로의 같은 이름 파일이 충돌. fullpath 매칭으로 바꾸고, fix/patch 태스크는 제한 면제하게 해서 해결.

이런 것들이 v0.3.1~0.3.4에 걸쳐서 수정됐다. 실전에 안 넣어봤으면 절대 못 찾았을 버그들이다.

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.