From 9230ebff9d280d3c92d0890333a8b3be3db0f4d3 Mon Sep 17 00:00:00 2001 From: altair823 Date: Tue, 5 May 2026 01:35:04 +0900 Subject: [PATCH] refactor(v026): #8 telemetryStats.aggregateStats exhaustiveness check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit if/else if 체인 끝에 const _exhaustive: never = ev — 새 telemetry kind 추가 시 본 함수 분기 누락을 컴파일 단계에서 catch. silent fall-through 방지 — kind 추가 → typecheck 실패 → 강제 분기 추가. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/main/services/telemetryStats.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/services/telemetryStats.ts b/src/main/services/telemetryStats.ts index e1b1345..5222797 100644 --- a/src/main/services/telemetryStats.ts +++ b/src/main/services/telemetryStats.ts @@ -129,6 +129,10 @@ export function aggregateStats(events: TelemetryEvent[], generatedAt: Date): Sta } else if (ev.kind === 'recall_snoozed') { row.recall_snoozed += 1; recallSnoozedCount += 1; + } else { + // v0.2.6 #8 — 새 telemetry kind 추가 시 본 함수 분기 누락을 컴파일 단계에서 catch. + const _exhaustive: never = ev; + void _exhaustive; } } const days = Array.from(byDay.values()).sort((a, b) => a.date.localeCompare(b.date));