v4.9.0 — JSON 파싱 방어 코드 + 셀렉터 화이트리스트 강화
commitsradar_fun_meter · 08759bc

v4.9.0 — JSON 파싱 방어 코드 + 셀렉터 화이트리스트 강화

🤖 1624 in / 1679 out / 3303 total tokens 라디어 퍼미터 v4.9.0을 배포한다. JSON 파싱 실패 시 발생하는 예외 처리를 강화하여 프로그램이 깨지는 것을 방지한다. gistReporter와 MLBot에서 파싱 에러를 잡고 필수 필드 검증 로직을 추가했다. 브라우저 어댑터의 셀렉터 검증은 화이트리스트와 위험 패턴을 이

이더2026.03.011 min read
v4.9.0SecurityJSON
Dashboard XSS 보안 패치 및 v4.8.0 배포
commitsradar_fun_meter · ae45865

Dashboard XSS 보안 패치 및 v4.8.0 배포

🤖 1149 in / 1508 out / 2657 total tokens Dashboard의 SSE 결과 렌더링 로직에서 직접적인 innerHTML 삽입을 textContent로 교체하여 HTML 인젝션 공격을 차단한다. 동시에 XSS 방어를 위한 escapeHTML() 유틸리티를 새로 추가하고, 이를 검증하는 TC-10 테스트 케이스를 작성한다. C

이더2026.03.011 min read
securityxssdashboard
v4.8.0 — Dashboard XSS 취약점 수정
commitsradar_fun_meter · ae45865

v4.8.0 — Dashboard XSS 취약점 수정

🤖 1149 in / 548 out / 1697 total tokens 대시보드에 XSS 취약점이 있었다. SSE 이벤트 핸들러에서 tbody.innerHTML에 사용자 입력을 직접 삽입하던 코드가 문제였다. 악의적인 스크립트가 실행될 수 있는 구조였다. escapeHTML() 유틸리티 함수를 추가하고, innerHTML 대신 textContent

이더2026.03.011 min read
securityxssdom
v4.7.0: XSS 막고 Worker도 안전하게 종료
commitsradar_fun_meter · e3fee22

v4.7.0: XSS 막고 Worker도 안전하게 종료

🤖 1541 in / 746 out / 2287 total tokens HTML 리포터에 XSS 취약점이 있었다. 사용자 입력값이 그대로 HTML에 노출되는 지점 6곳을 찾아 escapeHTML()로 감쌌다. name, advice, suggestions, cluster, scoreCurve.pattern까지 전부. 병렬 처리도 손봤다. --para

이더2026.03.011 min read
XSS보안Worker
v4.7.0 업데이트: HTML 리포터 보안 강화 및 병렬 처리 안정성 개선
commitsradar_fun_meter · e3fee22

v4.7.0 업데이트: HTML 리포터 보안 강화 및 병렬 처리 안정성 개선

🤖 1541 in / 1776 out / 3317 total tokens HTML 리포터의 name, advice 등 핵심 필드에 이스케이핑을 적용해 XSS 취약점을 완화합니다. 병렬 실행 모드의 안정성을 높이기 위해 --parallel 옵션의 상한을 64로 제한하고, Worker 종료 로직을 보강합니다. 334개의 테스트 케이스를 모두 통과하며 보안

이더2026.03.011 min read
securityxssparallel
_percentile 유틸리티 모듈로 추출해서 중복 코드 싹 정리했다
commitsradar_fun_meter · c32ee58

_percentile 유틸리티 모듈로 추출해서 중복 코드 싹 정리했다

🤖 1575 in / 1031 out / 2606 total tokens FunMeter 클래스랑 server/index.js에 각각 따로 구현해뒀던 _percentile 함수를 src/utils/percentile.js로 뽑아냈다. 총 11곳 호출을 공유 모듈로 교체했고 테스트 325개 전부 통과. package.json 버전은 4.0.0에서 4.5

이더2026.03.011 min read
refactoringutilscode-duplication
FunMeter 방어 코드 추가, 브랜치 커버리지 90% 달성
commitsradar_fun_meter · 017a446

FunMeter 방어 코드 추가, 브랜치 커버리지 90% 달성

🤖 2286 in / 869 out / 3155 total tokens v4.5.0에서는 FunMeter 핵심 메서드에 방어 코드를 추가하고, 테스트 케이스를 45개 보강해 브랜치 커버리지를 90% 이상으로 끌어올렸다. FunMeter.run()에선 runs 매개변수가 1 미만일 경우 RangeError를 던지도록 했다. 음수나 0이 들어오면 의미

이더2026.03.012 min read
testingdefensive-programmingcode-coverage
v4.4.0 — CLI 검증 강화와 `||` → `??` 교훈
commitsradar_fun_meter · a639a1c

v4.4.0 — CLI 검증 강화와 `||` → `??` 교훈

🤖 1398 in / 1211 out / 2609 total tokens CLI 입력 검증을 대폭 강화하고 SmartBot의 데드 코드를 정리했다. runner.js에서 || 연산자 4곳을 ??로 교체했다. --runs=0처럼 falsy 값을 의도적으로 전달하면 기본값으로 덮어쓰는 버그가 있었다. parser.js에는 --runs, --maxSeco

이더2026.03.012 min read
CLIvalidationnullish-coalescing
v4.3.0: 타입 정의 동기화와 새로운 봇 익스포트
commitsradar_fun_meter · c23c31b

v4.3.0: 타입 정의 동기화와 새로운 봇 익스포트

🤖 877 in / 582 out / 1459 total tokens TypeScript 타입 정의 파일에 ScoreCurve 인터페이스를 추가했다. 점수 성장 곡선 분석 결과를 담는 타입으로, 버킷 배열과 성장 패턴, 전반부/후반부 성장률을 포함한다. RunResult에 suggestions와 scoreCurve 필드도 추가했고, generateSu

이더2026.03.011 min read
typescriptnpmexport
v4.2.0 Runner 및 Init 모듈 커버리지 99% 달성
commitsradar_fun_meter · e21fec4

v4.2.0 Runner 및 Init 모듈 커버리지 99% 달성

🤖 997 in / 1376 out / 2373 total tokens runner.js의 ML 봇 로딩과 runNormal의 에러 처리, init.js의 인자 파싱 및 디렉토리 생성 로직을 상세 테스트 케이스로 추가했습니다. mockExit 헬퍼를 구현하여 runInit의 예외 흐름을 철저히 검증했으며, 결과적으로 Statements 96%, Bra

이더2026.03.011 min read
coveragetestv4.2.0