openclaw에 PR없이 버그제보만 올린 썰 푼다

openclaw을 집에서 띄워 쓰고 있다가 밀린 업데이트를 여러 개 받았는데, 조금 있으니 대시보드가 제대로 동작하지 않았다. 권한이 없다는 오류가 찍히면서 API 호출이 줄줄이 실패하는 상황.

설정을 잘못 건드렸나 싶어서 이것저것 확인해봤는데, 내 설정 문제는 아닌 것 같았다.

AI와 함께 원인 추적

터미널에서 AI한테 상황을 설명하고 같이 코드를 뒤졌다. 원인은 금방 찾았다. 대시보드를 처리하는 js 코드 중에서 dangerouslyDisableDeviceAuth를 켜면 device가 null이 되는데, 이때 scopes를 무조건 빈 배열로 날려버리는 코드가 있었다. 그러니 당연히 이후 호출은 전부 권한 없음으로 떨어지는 거였다.

조건문 한 줄 고치면 되는 문제라, 로컬에서 패치해서 정상 동작하는 것까지 확인했다.

PR을 보낼까요?

이제 정상적으로 동작합니다. PR 만들어서 보낼까요?

정상 동작이 확인되자마자, AI가 먼저 물었다.
yes 라고 대답 한 번만 하면 커밋 메시지 작성부터 PR 생성까지 알아서 해줄 기세였다. 근데… 뭔가 마음에 걸렸다.

원인을 찾은 것도, 수정 방향을 잡은 것도 AI와 함께한 작업이었다. 물론 문제 상황을 설명하고 방향을 잡아준 건 나지만, 코드를 직접 읽고 파고든 건 솔직히 AI 비중이 컸다. 이걸 내 이름으로 PR을 보내는 게 맞나? 하는 생각이 들었다.

그래서 PR 대신, 수정 방향까지 상세하게 적은 이슈만 등록해달라고 했다. 실제로 몇 시간 안에 메인테이너가 수정해서 바로 반영해줬다.

1년 반 만에 뒤집어진 세상

24년도에 hexo에 PR을 보냈을 때가 떠올랐다. 그때도 hexo 엔진을 직접 쓰다가 발견한 버그였는데, 상황이 꽤 달랐다.

그 땐 잘 모르는 TypeScript 환경에서 버그 찾아서 고쳐보겠다고 혼자 끙끙대면서 코드를 들여다보았다. 익숙하지 않은 환경에서 코드를 고치다보니 단위 테스트가 자꾸 실패해서 몇 번이고 재도전 해가며 다시 돌렸다. lint 규칙에 맞추느라 코드 스타일도 여러 차례 수정했다. 그 과정 전부를 내가 직접 해냈고, 그래서 PR을 보내서 머지 됐을때 정말 뿌듯했었던 기억이 난다. node가 익숙한 작업자에겐 별 것 아닌 수정일 수도 있지만.. 나한테는 뭐랄까. 갑자기 멕시코 시내 한복판에 혼자 떨어졌지만 당당하게 혼자 힘으로 타코를 사먹은 기분이랄까.

그랬던 게 불과 1년 반 전인데, 이번에는 분위기가 많이 다르다. 나는 거의 입만 털었고, 실제 코드를 확인하고 수정한 것은 모두 ai가 해주었다. 이건 내가 고친 버그가 맞는걸까.

앞으로는

이번엔 왠지 찜찜한 마음에 원인을 상세히 적어 이슈로만 올려달라고 ai에게 대답했고. 이슈를 올리는 것 마저도 내가 아니라 ai가 모두 처리해줬다.

이상한 기분. 전엔 없었던 상황… 처음 느끼는 느낌.

이미 지금도 ai가 던지는 PR이 너무 많아 오픈소스 메인테이너의 고충이 커진다는 뉴스가 들려온다. 앞으로는 AI와 함께 작업한 PR이 훨씬 자연스러워지지 않을까 싶다. 이미 많은 사람들이 그렇게 하고 있겠지. 그 사람들은 AI에게 PR을 던지라고 대답할 때, 어떤 기분이었을까?

정말 조금만 더 지나도 내가 느낀 이 찜찜함도 시대에 뒤쳐지는 옛날 감성이 되겠지. 아직은 그 경계 어딘가에 서 있는 기분이다.