chore(release): v0.2.4 — patch cut (backlog 5건 + dogfood unblock) #22

Merged
altair823 merged 6 commits from feat/v024-patch-cleanup into main 2026-05-04 15:24:49 +00:00
Owner

Summary

PR #21 머지 후 v0.2.3.1 binary 빌드 시도 → electron-builder semver 검증 실패 (4-part X.Y.Z.W 비호환). v0.2.4 minor bump 으로 우회 + backlog 의 risk 낮은 cleanup 5건 동봉. v0.2.5 brainstorm 은 dogfood ≥1주 soak 후 트리거.

Backlog 처리 (5건)

# 항목 처리
#1 now() 두 번 호출 stale 표기 (PR #13 round 1 시 이미 fix)
#2 DAY_MS magic number 모듈 상단 상수 추출 (TelemetryService 두 callsite)
#6 media.gc.run() .catch 누락 backup.runDaily 패턴 통일
#13 NoteCard onDeleted dead-code optional + trash mode 미전달
#44 버전 정보 surface 부재 트레이 "Inkling 정보..." → native dialog (버전/electron/node/OS/profileDir, 위치 열기 + 정보 복사 버튼)

Out of scope (잔여 39건)

  • #45 자동실행 풀림 버그: Windows registry 디버깅 필요. 별도 cut.
  • #3/#4/#5/#22/#26: multi-file refactor. 별도.
  • #39~#43 (PR #21 deferred): 의미 있는 결정 — v0.2.5 brainstorm 영역.
  • 기타 backlog 항목 — v0.2.5 brainstorm 시 일괄 triage.

Spec

  • Spec: docs/superpowers/specs/2026-05-05-v024-patch-cleanup-design.md (brief, plan 생략)

Test Plan

  • typecheck 0
  • 단위 413/413 (회귀 X)
  • e2e 1/1
  • dogfood: 트레이 "Inkling 정보..." 클릭 시 native dialog 정상 표시
  • dogfood: "데이터 위치 열기" 버튼 → 파일 탐색기 정상 오픈
  • dogfood: "정보 복사" 버튼 → 클립보드 복사 확인

다음

머지 후 binary 빌드 v0.2.4 (Windows + Mac) + Gitea release. dogfood 본격 soak.

## Summary PR #21 머지 후 v0.2.3.1 binary 빌드 시도 → electron-builder semver 검증 실패 (4-part `X.Y.Z.W` 비호환). v0.2.4 minor bump 으로 우회 + backlog 의 risk 낮은 cleanup 5건 동봉. v0.2.5 brainstorm 은 dogfood ≥1주 soak 후 트리거. ## Backlog 처리 (5건) | # | 항목 | 처리 | |---|---|---| | #1 | `now()` 두 번 호출 | stale 표기 (PR #13 round 1 시 이미 fix) | | #2 | `DAY_MS` magic number | 모듈 상단 상수 추출 (TelemetryService 두 callsite) | | #6 | `media.gc.run()` `.catch` 누락 | backup.runDaily 패턴 통일 | | #13 | NoteCard `onDeleted` dead-code | optional + trash mode 미전달 | | #44 | 버전 정보 surface 부재 | 트레이 "Inkling 정보..." → native dialog (버전/electron/node/OS/profileDir, 위치 열기 + 정보 복사 버튼) | ## Out of scope (잔여 39건) - **#45 자동실행 풀림 버그**: Windows registry 디버깅 필요. 별도 cut. - **#3/#4/#5/#22/#26**: multi-file refactor. 별도. - **#39~#43 (PR #21 deferred)**: 의미 있는 결정 — v0.2.5 brainstorm 영역. - 기타 backlog 항목 — v0.2.5 brainstorm 시 일괄 triage. ## Spec - Spec: `docs/superpowers/specs/2026-05-05-v024-patch-cleanup-design.md` (brief, plan 생략) ## Test Plan - [x] typecheck 0 - [x] 단위 413/413 (회귀 X) - [x] e2e 1/1 - [ ] dogfood: 트레이 "Inkling 정보..." 클릭 시 native dialog 정상 표시 - [ ] dogfood: "데이터 위치 열기" 버튼 → 파일 탐색기 정상 오픈 - [ ] dogfood: "정보 복사" 버튼 → 클립보드 복사 확인 ## 다음 머지 후 binary 빌드 v0.2.4 (Windows + Mac) + Gitea release. dogfood 본격 soak.
altair823 added 5 commits 2026-05-04 15:16:51 +00:00
0.2.3.1 semver 위반 → 0.2.4 minor bump 이용해 backlog risk 낮은 cleanup
5건 + dogfood 가치 #44 묶음 cut. v0.2.4 정식 brainstorm 은 v0.2.5 로 이동.

In: #1 (now() 2번), #2 (DAY_MS), #6 (media.gc .catch), #13 (NoteCard onDeleted),
    #44 (버전 정보 surface), version bump
Out: #45 (autostart bug — 별도 cut), #3/#4/#5/#22/#26 (큰 refactor),
     #39~#43 (PR #21 deferred — v0.2.5 brainstorm)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- #2: 24*60*60*1000 magic number → 모듈 상단 const DAY_MS
  cleanupOldFiles + readAllRecent 두 callsite 통일
- #6: gc.run() 의 .catch 누락 → backup.runDaily 패턴 통일
  실패 시 logger.warn('media.gc.failed', { reason })

Note: backlog #1 (now() 2번 호출) 은 PR #13 round 1 review 시 이미 fix —
backlog 항목 stale. v0.2.5 brainstorm 시 backlog 정리.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- onDeleted: () => void → onDeleted?: () => void (inbox mode 전용 명시)
- handleDelete 내부 onDeleted() → onDeleted?.()
- App.tsx 의 trash mode NoteCard 가 onDeleted prop 미전달 (dead-code 제거)
- API 시그니처 정리 — trash mode 는 onPermanentDelete/onRestore 만 의미

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dogfood 발견 #44 fix — 사용자가 설치된 버전 확인 path 부재 해소.

- 트레이 메뉴 마지막 항목 (종료 직전): "Inkling 정보..."
- 클릭 시 native dialog (showMessageBox):
  - title: Inkling 정보
  - message: Inkling {version}
  - detail: 버전, Electron, Node, OS platform/release, 데이터 위치
  - 버튼 3개: 확인 / 데이터 위치 열기 (shell.openPath) / 정보 복사 (clipboard)
- 디버그 정보 노출로 사용자가 issue report 시 첨부 가능

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #21 머지 후 v0.2.3.1 binary 빌드 시도 → electron-builder semver 검증
실패 (4-part X.Y.Z.W 비호환). v0.2.4 minor bump 으로 우회.

본 cut 동봉:
- 0.2.3.1 의 in-app Ollama 설정 UI (PR #21 fee982a)
- backlog #2 (DAY_MS 상수)
- backlog #6 (media.gc .catch)
- backlog #13 (NoteCard onDeleted optional)
- backlog #44 (버전 정보 트레이 메뉴)
- backlog #1 stale 표기 (PR #13 시 이미 fix)

게이트: typecheck 0 / 단위 413 / e2e 1
다음: PR + 머지 후 binary 빌드 v0.2.4 + Gitea release
v0.2.5 brainstorm 트리거 시 잔여 backlog 39건 일괄 triage

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
altair823 added 1 commit 2026-05-04 15:22:10 +00:00
Round 1 review minor + final reviewer minor 일괄:
- About dialog detail/clipboard 의 줄바꿈 → os.EOL (Windows Notepad 등에서 줄바꿈 정상)
- showMessageBox().then().catch(() => {}) — dialog reject (main crash 예외) silent
  (tray.ts 가 logger 미import — minimal swallow 패턴 채택)

skip:
- nit: 트레이 메뉴 ordering ("정보" → "종료" 한 그룹) — 현재 패턴도 흔함, 호불호 영역
- nit: process.versions.electron ?? '?' dead branch — 안전 fallback 유지

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author
Owner

Round 1 review (controller-side)

항목 결과
Critical 0
Important 0
Minor 1 (clipboard EOL)
Nit 1 (메뉴 ordering — skip, 호불호)

Final reviewer + round 1 minors 일괄 처리 (commit d213d45)

  • About dialog 의 detail / clipboard 줄바꿈 → os.EOL 사용 (Windows Notepad 등에서 줄바꿈 정상)
  • showMessageBox().then().catch(() => {}) — main crash 예외 silent (tray.ts logger 미import 라 minimal swallow)

Skip

  • nit: 트레이 메뉴 ordering — 현재 "정보 / 종료" 패턴 흔함 (Slack/Discord/1Password 일부)
  • final n2: process.versions.electron ?? '?' dead branch — 안전 fallback 유지
  • final n3: spec 의 "Inbox footer" 미구현 — 의도된 scope cut, PR description 명시됨

Spec 컴플라이언스

  • backlog #2/#6/#13/#44 모두 처리
  • backlog #1 stale 표기
  • backlog #45 (자동실행 버그) 명시적 out of scope
  • 신규 테스트 0 (cosmetic + UI dialog 의도)

Verdict

APPROVE WITH FIX → round 2 APPROVE — Minor 처리 완료, 회귀 X.

## Round 1 review (controller-side) | 항목 | 결과 | |---|---| | Critical | 0 | | Important | 0 | | Minor | 1 (clipboard EOL) | | Nit | 1 (메뉴 ordering — skip, 호불호) | ### Final reviewer + round 1 minors 일괄 처리 (commit `d213d45`) - About dialog 의 detail / clipboard 줄바꿈 → `os.EOL` 사용 (Windows Notepad 등에서 줄바꿈 정상) - `showMessageBox().then().catch(() => {})` — main crash 예외 silent (tray.ts logger 미import 라 minimal swallow) ### Skip - nit: 트레이 메뉴 ordering — 현재 "정보 / 종료" 패턴 흔함 (Slack/Discord/1Password 일부) - final n2: `process.versions.electron ?? '?'` dead branch — 안전 fallback 유지 - final n3: spec 의 "Inbox footer" 미구현 — 의도된 scope cut, PR description 명시됨 ### Spec 컴플라이언스 - backlog #2/#6/#13/#44 모두 ✅ 처리 - backlog #1 stale 표기 ✅ - backlog #45 (자동실행 버그) 명시적 out of scope ✅ - 신규 테스트 0 ✅ (cosmetic + UI dialog 의도) ### Verdict **APPROVE WITH FIX → round 2 APPROVE** — Minor 처리 완료, 회귀 X.
Author
Owner

Round 2 — APPROVE

단계 결과
5 commits + round 1 fix (d213d45) pushed
Round 1 fix clipboard EOL + dialog .catch swallow
Round 2 verdict APPROVE (0 new issue)
Gates typecheck 0 / 단위 413/413 / e2e 1/1

머지 후 알려줘. closure 단계 (local main sync + 브랜치 정리 + binary 빌드 v0.2.4 (Windows + Mac) + Gitea release v0.2.4) 진행.

## Round 2 — APPROVE | 단계 | 결과 | |---|---| | 5 commits + round 1 fix (`d213d45`) | pushed | | Round 1 fix | clipboard EOL + dialog .catch swallow | | Round 2 verdict | **APPROVE** (0 new issue) | | Gates | typecheck 0 / 단위 413/413 / e2e 1/1 | 머지 후 알려줘. closure 단계 (local main sync + 브랜치 정리 + binary 빌드 v0.2.4 (Windows + Mac) + Gitea release v0.2.4) 진행.
altair823 merged commit 49c29f34c3 into main 2026-05-04 15:24:49 +00:00
altair823 deleted branch feat/v024-patch-cleanup 2026-05-04 15:24:50 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: altair823-org/inkling#22