F4-C·F Cue 강화 (v0.2.1 dogfood-feedback Track #8 — FINAL) #9

Merged
altair823 merged 3 commits from feat/f4-cf-cue into main 2026-04-26 02:52:01 +00:00
Owner

요약

로드맵 8번째이자 마지막 — F4-C (환경 앵커) + F4-F (정체성 고리): 트레이 tooltip + 메뉴 첫 항목 + Inbox 헤더에 오늘 캡처 카운트.

결정

결정
트레이 색·뱃지 nativeImage 색 변경 미지원 → tooltip + 메뉴 비활성 라벨
트레이 메뉴 첫 줄 count > 0: 오늘 N번 잡아둠 (비활성)
트레이 tooltip Inkling — 오늘 N (always)
Inbox 헤더 count > 0: 오늘 N번 잡아뒀다 / 0: 오늘은 처음 한 줄?
갱신 주기 60s interval + AiWorker onUpdate + focus event
count 정의 KST 자정 기준 created_at

구현 (3 commits)

  • cca3029 NoteRepository.countToday(now?) + 4 단위 테스트 (KST 자정 경계 검증 포함)
  • bcd1151 IdentityCounter 컴포넌트 + tray refresh API + IPC + store + index.ts wiring
  • 72e69fb promotion (F4 헤더 → 🔬 drafting / C·E·F promoted)

게이트

  • typecheck: 0 errors
  • 단위: 197/197 (193 → +4)
  • e2e: 1/1
  • 스키마 변경: 0
  • 신규 dependency: 0

8/8 로드맵 완료

이 PR 머지 시 v0.2.1 cut 직전 상태 도달:

# 항목 상태
1 F6-L1 로컬 스냅샷
2 F5 Export
3 F6-L3 Import
4 F1 Due Date
5 F2 태그 클릭
6 F3+F4-E 카피 정리
7 F6-L2 Git sync MVP
8 F4-C·F cue 강화 (this PR)

다음

로드맵 종결 → v0.2.1 cut 단계 진입 (package.json version bump + dist).

🤖 Generated with Claude Code

## 요약 로드맵 8번째이자 마지막 — **F4-C (환경 앵커) + F4-F (정체성 고리)**: 트레이 tooltip + 메뉴 첫 항목 + Inbox 헤더에 오늘 캡처 카운트. ## 결정 | 결정 | 값 | |------|-----| | 트레이 색·뱃지 | nativeImage 색 변경 미지원 → tooltip + 메뉴 비활성 라벨 | | 트레이 메뉴 첫 줄 | count > 0: `오늘 N번 잡아둠` (비활성) | | 트레이 tooltip | `Inkling — 오늘 N` (always) | | Inbox 헤더 | count > 0: `오늘 N번 잡아뒀다` / 0: `오늘은 처음 한 줄?` | | 갱신 주기 | 60s interval + AiWorker onUpdate + focus event | | count 정의 | KST 자정 기준 created_at | ## 구현 (3 commits) - `cca3029` `NoteRepository.countToday(now?)` + 4 단위 테스트 (KST 자정 경계 검증 포함) - `bcd1151` IdentityCounter 컴포넌트 + tray refresh API + IPC + store + index.ts wiring - `72e69fb` promotion (F4 헤더 → 🔬 drafting / C·E·F promoted) ## 게이트 - typecheck: 0 errors - 단위: 197/197 (193 → +4) - e2e: 1/1 - 스키마 변경: 0 - 신규 dependency: 0 ## 8/8 로드맵 완료 이 PR 머지 시 v0.2.1 cut 직전 상태 도달: | # | 항목 | 상태 | |---|------|------| | 1 | F6-L1 로컬 스냅샷 | ✅ | | 2 | F5 Export | ✅ | | 3 | F6-L3 Import | ✅ | | 4 | F1 Due Date | ✅ | | 5 | F2 태그 클릭 | ✅ | | 6 | F3+F4-E 카피 정리 | ✅ | | 7 | F6-L2 Git sync MVP | ✅ | | 8 | **F4-C·F cue 강화** | ✅ (this PR) | ## 다음 로드맵 종결 → v0.2.1 cut 단계 진입 (`package.json` version bump + dist). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
altair823 added 3 commits 2026-04-26 02:51:54 +00:00
For the F4-C·F cue strengthening surfaces (tray tooltip + Inbox identity
counter), main + renderer need a single source of truth for "오늘 N번
잡아뒀다". Implements `NoteRepository.countToday(now?)` that computes the
half-open UTC interval covering the KST calendar date of `now` and counts
rows whose `created_at` falls inside.

`now` is injectable for deterministic tests across the KST/UTC boundary
(02:00 KST and 23:00 KST land on different UTC dates yet the same / a
different KST day). Four new cases cover empty DB, KST-day filtering,
KST-midnight crossover, and the default-arg branch.
F4-C·F (cue 강화) — Inkling 의 두 표면에 정체성 신호를 추가.

F4-C 환경 앵커 (tray):
- nativeImage 색 변경은 미지원이므로 색 뱃지 대신 tooltip + 메뉴 첫
  비활성 라벨로 대체. tooltip 은 항상 `Inkling — 오늘 N`,
  메뉴 첫 항목은 N>0 일 때 `오늘 N번 잡아둠` (비활성).
- `tray.ts` 가 `refreshTray(todayCount)` 를 export 하여 main 이
  60s interval + AiWorker.onUpdate hook 에서 갱신을 트리거.
- N=0 일 때는 라벨을 띄우지 않아 메뉴가 자연스럽게 시작.

F4-F 정체성 고리 (Inbox 헤더):
- ContinuityBadge 옆에 새 IdentityCounter 컴포넌트.
- N>0 → `오늘 N번 잡아뒀다` (정체성 강화 카피).
- N=0 → `오늘은 처음 한 줄?` (priming 카피로 첫 캡처 유도).
- 갱신은 `loadInitial` / `refreshMeta` (focus + note:updated) 경로
  공유 — 별도 IPC subscription 없음.

Wiring:
- `NoteRepository.countToday()` 를 `inbox:todayCount` IPC 로 노출.
- preload bridge `getTodayCount`, `InboxApi.getTodayCount()` 타입.
- 스토어에 `todayCount: number` 필드 추가, 두 메타 fetch 경로 모두에서 갱신.

스키마 변경 없음. 197/197 unit pass, 1/1 e2e pass.
F4 의 6개 cue 메커니즘 중 외부 신호 없이 즉시 구현 가능한 두 가지
(C 환경 앵커, F 정체성 고리) 를 묶어 promoted spec 으로 추출. A (잠금
hook), D (variable interval prompt), B (ambient if-then) 는 dogfood
soak 측정 결과를 본 뒤 결정.

F4 헤더를 🌱 raw → 🔬 drafting (C·E·F promoted) 로 갱신하고, F4 진행
상태에 두 promoted 경로를 명시.
altair823 merged commit 72e69fb53a into main 2026-04-26 02:52:01 +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#9