# v0.2.4 Patch Cleanup — Design Spec (Brief)

> 작성: 2026-05-05 · 0.2.3.1 semver 위반 (`X.Y.Z.W` 4-part) → 0.2.4 minor bump 이용해 backlog 의 simple cleanup 5건 + 사용자 가치 1건 합쳐서 묶음 cut. v0.2.4 정식 brainstorm 은 v0.2.5 로 이동.

## 1. Goal

PR #21 머지 후 0.2.3.1 binary 빌드 시도가 electron-builder 의 semver validation 으로 실패. 0.2.4 minor bump 으로 우회. 이번 cut 에는 dogfood unblock 외 backlog 의 risk 낮은 cleanup + 사용자 가치 항목 동봉.

## 2. Scope (5 backlog 항목 + version bump)

| backlog # | 항목 | 가치 | 작업량 |
|---|---|---|---|
| #1 | `TelemetryService.emit` 의 `now()` 2번 호출 → 1번 추출 | cosmetic (KST midnight straddle 이론) | 1줄 |
| #2 | `DAY_MS = 24*60*60*1000` magic number → 모듈 상단 상수 | cosmetic | 1줄 |
| #6 | `media.gc.run()` `.catch` 누락 → backup pattern 통일 | consistency | 1줄 |
| #13 | NoteCard `mode='trash'` 의 `onDeleted` dead-code prop 제거 | API 청소 | 작음 |
| #44 | 트레이 메뉴 + Inbox footer 에 "Inkling 0.2.4" 버전 정보 | **사용자 dogfood 가치** | 1 task |
| - | version bump 0.2.3.1 → 0.2.4 | semver 표준 | trivial |

## 3. Out of scope

- **#45 (자동실행 버그)**: Windows registry 디버깅 필요, simple X. 별도 cut.
- **#3/#4/#26 (KST 통합 / TrayCallbacks refactor)**: multi-file, 크다. 별도.
- **#5/#22 (Union 통합 / hydrate cleanup)**: repo-wide.
- **#39~#43 (PR #21 deferred)**: telemetry masking 등 의미 있는 결정 필요. v0.2.5 brainstorm 영역.
- 기타 backlog 39건.

## 4. Architecture changes

본 cut 은 의미 있는 architecture 변경 없음. 기존 pattern 강화만:
- `TelemetryService.emit` 의 atomic timestamp 보장 (now() 1회)
- 모듈 상단 magic number 상수화 패턴 (다른 파일은 이미 그 패턴, TelemetryService 만 예외)
- `.catch` consistency (backup.runDaily / telemetry.cleanupOldFiles 와 동일 wrapper)
- React props 청소 (현재 호출되지 않는 prop 제거)
- 신규 surface: 트레이 메뉴 "Inkling 정보..." → modal 또는 dialog

## 5. Tests

테스트 추가 없음 (모두 cosmetic / refactor). 기존 단위 413/413 회귀 X 확인만.

#44 의 modal 은 컴포넌트 단위 테스트 X (Inkling 패턴 — store-only).

## 6. Gates

- typecheck 0
- 단위 413/413 (회귀 X)
- e2e 1/1
- backward compat: 기존 사용자 영향 0 (cosmetic + 새 surface)

## 7. Roadmap relation

- 0.2.3 cut 7/7 (PR #13~#19) + 0.2.3.1 patch (PR #21) 누적 후 binary 빌드를 위한 v0.2.4 minor bump
- v0.2.5 brainstorm 트리거: dogfood ≥1주 soak + telemetry export + backlog 39건 (=45-5-1) + 신규 피드백 일괄 triage
- backlog 명명 `v024-backlog.md` → 본 cut 후 `v025-backlog.md` 로 rename 검토 (또는 v024-backlog.md 유지하고 내용만 갱신)
