Skip to content

feat(desktop): 일지 목록·드로어에 저장처(journal·Notion·Obsidian) 아이콘 스택#263

Merged
ldhbenecia merged 2 commits into
mainfrom
feature/worklog-sinks
Jul 5, 2026
Merged

feat(desktop): 일지 목록·드로어에 저장처(journal·Notion·Obsidian) 아이콘 스택#263
ldhbenecia merged 2 commits into
mainfrom
feature/worklog-sinks

Conversation

@ldhbenecia

Copy link
Copy Markdown
Owner

요약

일지 목록·드로어에서 각 항목이 어디에 저장돼 있는지(로컬 journal / Notion / Obsidian 미러 폴더)를 텍스트 나열 대신 컴팩트한 겹침 아이콘 스택(아바타 스택)으로 전부 표시.

작업사항

  • main — RecentPage.sinks 계산 (worklog-sinks.ts + listRecentMerged)
    • journal: 해당 날짜/기간 journal 파일 존재(daily YYYY-MM-DD.md / weekly YYYY-Wnn.md / monthly YYYY-MM.md) 또는 frontmatter notion 참조 매칭
    • notion: 노션 유래 항목 또는 journal frontmatter 에 notion 참조 보유(100건 cap 밖 포함)
    • obsidian: export.folder 설정 + 해당 파일 존재. export 파일명이 발행 실행일 기준(YYYY-MM-DD[-period].md)이라 ISO 주차·월 라벨로 정규화해 대조
    • 페이지당 stat 없이 폴더별 readdir 1회 → Set 재사용 (목록 로딩 비용 불변)
  • UI — 아이콘 스택: PageRow 의 단일 소스 표기를 HardDrive(로컬)·NotionMark(흰 미니 타일)·ObsidianMark 14px 겹침 스택(-ml-1.5 + ring-2 ring-surface-1)으로 교체, hover title 에 전체 나열(로컬 일지 · Notion (Personal) · Obsidian). 드로어 헤더 서브라인도 sinks 기반 텍스트로
  • 타입/호환: preload·cairn-api 에 sinks? 추가 — 구버전 로컬 캐시(sinks 없음)는 workspaceLabel 로 유추하는 fallback. 미사용이 된 source.local i18n 키 제거
  • 테스트: worklog-sinks 순수 함수 spec (ISO 주차 연 경계 포함 12 케이스)

체크리스트

  • PR 제목 Conventional Commits 형식 (type(scope): 한국어 주제)
  • package.json version bump — 릴리스 PR 에서 일괄 (ADR 0020, bump 절제)
  • docs/progress/ 일지 갱신
  • 외부 송신·민감정보 점검 (ADR 0003) — 외부 송신 없음, 로컬 readdir 만
  • 동작 검증 — desktop typecheck · vitest 19 passed · lint 통과

🤖 Generated with Claude Code

ldhbenecia and others added 2 commits July 5, 2026 14:26
- listRecentMerged 가 페이지별 sinks 를 채움: journal 은 파일명 패턴(daily/ISO 주차/연-월) 또는 frontmatter notion 참조 매칭, obsidian 은 export.folder readdir 1회로 기간 라벨 정규화 대조
- obsidian export 파일명은 발행 실행일 기준(YYYY-MM-DD[-period].md)이라 파일명 직접 비교 대신 ISO 주차·월 라벨로 정규화 (worklog-sinks.ts)
- 페이지당 stat 없이 readdir 1회 + Set 재사용 — 목록 로딩 비용 불변
- worklog-sinks 순수 함수 spec 동반 (연 경계 주차 포함)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- PageRow 단일 소스 표기(로컬/워크스페이스 텍스트)를 겹침 아이콘 스택으로 교체 — HardDrive·NotionMark(흰 타일)·ObsidianMark, -ml-1.5 + ring-2 ring-surface-1
- hover title 에 전체 나열(로컬 일지 · Notion (label) · Obsidian), 드로어 헤더 서브라인도 sinks 기반 텍스트로
- 구버전 로컬 캐시(sinks 없음)는 workspaceLabel 로 유추하는 fallback (lib/sinks.ts)
- 미사용이 된 source.local 키 제거 (source.localDesc 재사용)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ldhbenecia ldhbenecia self-assigned this Jul 5, 2026
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@ldhbenecia, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 46 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ab4dda25-95e6-4908-8e84-c70bbfc42647

📥 Commits

Reviewing files that changed from the base of the PR and between e0f8157 and c6e1ada.

📒 Files selected for processing (10)
  • packages/desktop/src/main/journal-reader.ts
  • packages/desktop/src/main/notion-client.ts
  • packages/desktop/src/main/worklog-sinks.spec.ts
  • packages/desktop/src/main/worklog-sinks.ts
  • packages/desktop/src/preload/index.ts
  • packages/desktop/src/renderer/src/cairn-api.d.ts
  • packages/desktop/src/renderer/src/components/worklog-drawer.tsx
  • packages/desktop/src/renderer/src/components/worklog-list.tsx
  • packages/desktop/src/renderer/src/i18n.ts
  • packages/desktop/src/renderer/src/lib/sinks.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/worklog-sinks

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel

vercel Bot commented Jul 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
cairn-web Skipped Skipped Jul 5, 2026 5:28am

@ldhbenecia ldhbenecia merged commit 49f3e8e into main Jul 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant