feat(v026): bugs + cleanup — 16 backlog 항목 처리 #24
Reference in New Issue
Block a user
Delete Branch "feat/v026-bugs-cleanup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
정식 v0.2.6 cut. backlog 16건 (4 bug + 12 cleanup → 13 task) 통합 처리. v0.2.4/v0.2.5 patch + hotfix 후 첫 정식 cut.
Backlog 처리 (16건)
Bugs (4)
getLoginItemSettings({ args: ['--hidden'] })명시 + 진단 로그 (dogfood verify)requestSingleInstanceLock(additionalData)+ handler hidden flag 체크Cleanup (12 → 9 cluster)
src/shared/util/kstDate.ts(4 callsite migrate)hasNoteIdtype predicate (TelemetryService.test narrowing 단축)as Record<string, unknown>[]통일<Banner severity>shared component (4 banner migrate)else { _: never })Out of scope (잔여 14건)
Telemetry data-dependent (#7/#16/#18/#20/#25/#28/#30/#31/#32/#33/#35/#36/#39/#40) — v0.2.7 brainstorm 영역. 별도 brainstorm (#11/#14/#17/#37) 도 후속.
Spec & Plan
docs/superpowers/specs/2026-05-05-v026-bugs-cleanup-design.mddocs/superpowers/plans/2026-05-05-v026-bugs-cleanup.mdGates
Test Plan (dogfood)
autostart.state로그 확인다음
머지 후 binary v0.2.6 빌드 (Windows + Mac) + Gitea release. v0.2.7 brainstorm 트리거: dogfood ≥1주 soak + telemetry export + 잔여 14건 + 신규 피드백 일괄 triage.
Final reviewer 칭찬
추정 원인 (a)/(b)/(c): - (a) Windows registry path mismatch (NSIS 설치 위치 변경) - (b) electron path canonicalization - (c) args 비교 mismatch — getLoginItemSettings 가 args 와 함께 read 해야 매치 Fix: - tray.ts: getLoginItemSettings({ args: ['--hidden'] }) 명시 — 트레이 checkbox 의 checked 상태가 실제 LoginItem args 와 정합하게 비교 - index.ts firstRun 후: autostart.state 진단 로그 (withArgs vs noArgs 비교 + executableWillLaunchAtLogin) — dogfood 에서 실제 동작 확인 Fix 가 충분하지 않으면 dogfood 로그 분석 후 v0.2.7 deeper fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>createTray(callbacks: TrayCallbacks) 1-arg signature. 기존 10 positional 폐기. TrayState 통합 (ollamaOk, todayCount, failedCount) — refreshTray({...partial}) 1개 setter 로 일원화. 기존 refreshTrayOllama / refreshTrayFailedCount export 제거 — 호출자 모두 refreshTray({ ollamaOk: ... }) / refreshTray({ failedCount: ... }) 로 migrate. module-scoped 개별 state 변수 (_failedCount 등) 제거. backlog 4건 일괄: #4 (positional 폭주) / #23 (8 callbacks) / #26 (10 callbacks) / #27 (refreshTrayFailedCount singleton). 다음 menu item 추가 시 callback 프로퍼티 추가만 — readability blocker 해소. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>PR #24 Round 1 review (controller-side)
Critical fix (commit
a991008)B1 (#10) 가 dead code 였음 —
NoteRepository.restoreNote새 메서드는 unit test 만 호출, production path (CaptureService.restoreNote) 는 옛repo.restore()호출. ai_status reset + pending_jobs INSERT 우회.Fix:
CaptureService.restoreNote가repo.restoreNote호출 + before status 가 failed/pending 이면deps.enqueue(id)도 호출 (in-memory worker queue 갱신).테스트 +2: failed → enqueue, done → skip enqueue.
Round 1 minors (skip / defer)
telemetryStats.kstDate(ts)가kstTodayIso사용 — historical event 의 KST 일자 추출이라 의미 정합. naming 리팩 v0.2.7 영역.Round 1 final reviewer Important (B3 dogfood verify)
#45 autostart 풀림fix 는 진단 fallback (args 명시 + 진단 로그). dogfood 에서autostart.state로그 확인 후 v0.2.7 결정.Spec 컴플라이언스
Verdict
APPROVE WITH FIX → round 2 APPROVE — Critical + Important inline 처리 완료, minors 수용 가능 수준.
Round 2 — APPROVE
a991008)머지 후 알려줘. closure (local main sync + 브랜치 정리 + memory status v0.2.5 → v0.2.6 + binary 빌드 v0.2.6) 진행.