Commit Graph

  • 00423fb235 feat(expiry): NoteRepository.findExpiredCandidates (#5 v0.2.3) altair823 2026-05-01 23:57:53 +09:00
  • 0a9dab4a7f feat(expiry): KST util — todayInKstString + nextKstMidnightMs (#5 v0.2.3) altair823 2026-05-01 23:53:20 +09:00
  • a5e6859ac9 docs(plan): v0.2.3 #5 만료 추천 구현 계획 altair823 2026-05-01 23:30:48 +09:00
  • c45e613b31 docs(spec): #5 expiry — move dedup to main, keep IPC at 2 channels altair823 2026-05-01 23:25:12 +09:00
  • 4c2769fd82 docs(spec): v0.2.3 #5 만료 추천 design altair823 2026-05-01 23:22:38 +09:00
  • df60c5a5b2 Merge pull request 'feat(trash): #4 휴지통 + migration v3 (v0.2.3 2/7)' (#14) from feat/v023-trash into main altair823 2026-05-01 14:06:21 +00:00
  • 87b6d71628 fix(trash): add repo.countTrashed() — fix UI 200-cap mismatch (review 회차 1) altair823 2026-05-01 22:45:11 +09:00
  • 2ac4d648c1 chore(trash): #4 closure — gates verified + roadmap mark complete altair823 2026-05-01 21:53:26 +09:00
  • 03bca3ed59 feat(trash): Inbox 탭 toggle + 휴지통 view + NoteCard mode prop (#4 v0.2.3) altair823 2026-05-01 21:48:15 +09:00
  • df85b88424 fix(trash): T13 review — trashCount clobber guard + restoreNote test (review I1+I2+M5) altair823 2026-05-01 21:43:59 +09:00
  • 99cdc346d2 feat(trash): zustand store — showTrash/trashNotes/trashCount + 5 actions (#4 v0.2.3) altair823 2026-05-01 21:38:30 +09:00
  • 3e4ad6ec91 refactor(trash): emptyTrash IPC dedup query (review T12 nit) altair823 2026-05-01 21:35:31 +09:00
  • dd74aec884 feat(trash): IPC 5 channels + native dialog confirm + InboxApi extension (#4 v0.2.3) altair823 2026-05-01 21:32:22 +09:00
  • cdceb609e6 test(trash): ExportService excludes trashed notes (regression guard, #4 v0.2.3) altair823 2026-05-01 21:28:12 +09:00
  • 6f0d032ff1 refactor(trash): import skip-merge reuses trash() for pending_jobs invariant (review T10 minor #1) altair823 2026-05-01 21:26:54 +09:00
  • a5f23b925e feat(trash): ImportService deletedAt preservation + skip-merge policy (#4 v0.2.3) altair823 2026-05-01 21:23:23 +09:00
  • 468ea90d6c fix(trash): idempotency guards on delete/restore/permanent (review T9 important #1+#2) altair823 2026-05-01 21:20:03 +09:00
  • b19ea6423a feat(trash): CaptureService soft-delete + restore/permanent/empty + 4 emits (#4 v0.2.3) altair823 2026-05-01 21:16:26 +09:00
  • e6a945cad4 feat(trash): telemetryStats 4 new counters + 휴지통 회수율 ratio (#4 v0.2.3) altair823 2026-05-01 21:11:15 +09:00
  • c5329f1ccc refactor(test): replace as-cast with discriminant narrowing (review T7 I-1) altair823 2026-05-01 21:09:04 +09:00
  • 284bfcbdd1 feat(trash): telemetry 4 new kinds (trash/restore/permanent_delete/empty_trash) (#4 v0.2.3) altair823 2026-05-01 21:05:06 +09:00
  • 78c10e8817 feat(trash): AiWorker.processJob deletedAt guard (#4 v0.2.3) altair823 2026-05-01 21:00:09 +09:00
  • 3c780a7464 fix(trash): close active-query invariant leaks (review T5 important #1+#2) altair823 2026-05-01 20:58:18 +09:00
  • 2203bcf65b feat(trash): active queries exclude deleted_at IS NOT NULL (#4 v0.2.3) altair823 2026-05-01 20:53:03 +09:00
  • 70a69f0ae3 refactor(trash): emptyTrash uses DELETE...RETURNING (review T4 S1) altair823 2026-05-01 20:51:06 +09:00
  • 11703b976e feat(trash): NoteRepository.permanentDelete/emptyTrash/listTrashed (#4 v0.2.3) altair823 2026-05-01 20:47:05 +09:00
  • bf49b8351e feat(trash): NoteRepository.restore (#4 v0.2.3) altair823 2026-05-01 20:42:42 +09:00
  • 13da554461 feat(trash): NoteRepository.trash with pending_jobs cleanup (#4 v0.2.3) altair823 2026-05-01 20:38:17 +09:00
  • 3797e6c4f3 docs(m003): add dormant-columns rationale comment (review T1 minor #1) altair823 2026-05-01 20:36:27 +09:00
  • 5bcfd26bfd feat(trash): migration v3 + Note type extension (#4 v0.2.3) altair823 2026-05-01 20:32:52 +09:00
  • b93185edd5 docs(plan): #4 휴지통 구현 계획 (v0.2.3 2/7) altair823 2026-05-01 20:16:26 +09:00
  • 61e277f36c docs(spec): #4 휴지통 (soft delete + migration v3) 설계 altair823 2026-05-01 20:04:47 +09:00
  • 6f8ae75ff7 Merge pull request 'feat(telemetry): #7 telemetry skeleton (v0.2.3 1/7)' (#13) from feat/v023-telemetry into main altair823 2026-05-01 10:37:55 +00:00
  • 7e8e2b598d fix(telemetry): 회차 1 review 반영 — attempts 의미 통일 + DI 우회 제거 + 매직 슬라이스 제거 altair823 2026-05-01 18:41:26 +09:00
  • 5c97397cbe chore(telemetry): #7 closure — gate verification + .catch consistency + spec fix altair823 2026-05-01 17:37:00 +09:00
  • fe24ff577f feat(telemetry): wire TelemetryService + tray export (#7 v0.2.3) altair823 2026-05-01 17:30:54 +09:00
  • dca6aed44e docs(tray): restore F4-C identity-signal intent comment altair823 2026-05-01 17:28:04 +09:00
  • 4213745dc7 feat(telemetry): tray menu '사용 로그 내보내기...' (#7 v0.2.3) altair823 2026-05-01 17:25:52 +09:00
  • 01447ddaad feat(telemetry): AiWorker emits ai_succeeded/ai_failed with reason (#7 v0.2.3) altair823 2026-05-01 17:21:08 +09:00
  • f0cef95d3f feat(telemetry): CaptureService emits capture event (#7 v0.2.3) altair823 2026-05-01 17:15:24 +09:00
  • 36a5c67ed6 feat(telemetry): exportTo writes events.jsonl + stats.md (#7 v0.2.3) altair823 2026-05-01 17:08:34 +09:00
  • 2036c687d2 test(telemetry): add KST regression test for near-midnight UTC bucketing altair823 2026-05-01 17:06:29 +09:00
  • 9a066ed807 feat(telemetry): telemetryStats.aggregateStats (#7 v0.2.3) altair823 2026-05-01 17:03:31 +09:00
  • 729a3f9c47 feat(telemetry): readAllRecent with malformed-line tolerance (#7 v0.2.3) altair823 2026-05-01 16:58:45 +09:00
  • 0501bd1762 feat(telemetry): cleanupOldFiles with 14-day KST retention (#7 v0.2.3) altair823 2026-05-01 16:54:36 +09:00
  • 50b6d05bcb fix(telemetry): silent-fs-error test exercises the actual code path altair823 2026-05-01 16:52:11 +09:00
  • 93e278b241 feat(telemetry): TelemetryService.emit with KST rotation (#7 v0.2.3) altair823 2026-05-01 14:18:59 +09:00
  • 0a0ef11327 feat(telemetry): event schema + privacy invariant (#7 v0.2.3) altair823 2026-05-01 14:14:19 +09:00
  • 358cada017 docs(plan): #7 telemetry skeleton 구현 계획 (v0.2.3 1/7) altair823 2026-05-01 14:02:48 +09:00
  • 22a25cc622 docs(spec): v0.2.3 dogfood feedback roadmap (7 items, single cut) altair823 2026-05-01 13:56:16 +09:00
  • 06cfa1c151 chore(release): v0.2.2 — F7 + Quick Capture 스크롤 fix v0.2.2 altair823 2026-04-26 23:25:53 +09:00
  • 579450ef4f docs(spec): promote F7 AI-primary due date altair823 2026-04-26 13:07:06 +09:00
  • 723dccd61d feat(ai): AI-primary due_date flow — rule as prompt candidates only altair823 2026-04-26 13:06:12 +09:00
  • 1c72b64c2f feat(due-date): parseAllCandidates — extract all matches (text order) altair823 2026-04-26 13:04:17 +09:00
  • 2ee45bc53c docs(plan): F7 AI-primary due date 구현 계획 (D 채택) altair823 2026-04-26 13:00:35 +09:00
  • 742eec00f4 docs(feedback): add F7 — Due Date 규칙 파서 합성 표현 first-match-wins 한계 altair823 2026-04-26 12:56:32 +09:00
  • a38b6fdeea chore(release): bump version to 0.2.1 + CHANGELOG v0.2.1 altair823 2026-04-26 11:55:44 +09:00
  • 72e69fb53a docs(spec): promote F4-C·F cue strengthening altair823 2026-04-26 11:49:48 +09:00
  • bcd1151a24 feat(cue): IdentityCounter + tray refresh — 오늘 N번 잡아뒀다 altair823 2026-04-26 11:49:09 +09:00
  • cca3029b7e feat(repo): countToday(now?) — KST midnight bucket count altair823 2026-04-26 11:47:03 +09:00
  • 5b6003bdcd docs(spec): promote F6-L2 git sync MVP + README setup section altair823 2026-04-26 11:42:16 +09:00
  • 66725dacae feat(sync): wire SyncService — tray '지금 동기화' + on-quit drain altair823 2026-04-26 11:40:50 +09:00
  • eaf66e6c10 feat(sync): SyncService — F5 export + git add/commit/push to <profileDir>/sync/ altair823 2026-04-26 11:39:42 +09:00
  • 32c7becd47 feat(sync): GitClient — async wrapper for git CLI altair823 2026-04-26 11:37:43 +09:00
  • 6310716fb7 docs(spec): promote F3 + F4-E copy altair823 2026-04-26 11:31:22 +09:00
  • 1e5847dcc6 docs: align strategy.md + slice §5.5 with F3 copy + F4-E Zeigarnik altair823 2026-04-26 11:30:37 +09:00
  • 2d90a48621 feat(copy): replace '기억 구출' framing with 표면별 자연 동사 + Zeigarnik priming altair823 2026-04-26 11:29:31 +09:00
  • c4a7985456 docs(spec): promote F2 tag click altair823 2026-04-26 11:25:31 +09:00
  • 8373f06045 feat(inbox): tag chip click = filter, separate × button + undo toast altair823 2026-04-26 11:25:24 +09:00
  • aad9d403ce feat(inbox): tagFilter store + pure selectFilteredNotes + tests altair823 2026-04-26 11:25:13 +09:00
  • ab68b19144 docs(spec): promote F1 due date altair823 2026-04-26 11:18:38 +09:00
  • 9ab70868d1 feat(due-date): NoteCard badge + edit + IPC altair823 2026-04-26 11:17:57 +09:00
  • adae90eb61 feat(ai): AiWorker merges rule parser + AI due_date altair823 2026-04-26 11:14:46 +09:00
  • 4ee135dcd6 feat(ai): zod due_date field + prompt {{TODAY_KST}} injection altair823 2026-04-26 11:12:45 +09:00
  • 95ba1653d7 feat(due-date): pure rule parser for Korean date expressions altair823 2026-04-26 11:09:51 +09:00
  • 0bb6c12bbb feat(db): migration v2 — due_date columns + pre-migration snapshot altair823 2026-04-26 11:05:44 +09:00
  • cfd34c352b docs(plan): F1 due date 구현 계획 (6 tasks, migration v2) altair823 2026-04-26 11:01:37 +09:00
  • 9407f398c8 docs(spec): promote F6-L3 import altair823 2026-04-26 10:57:14 +09:00
  • e728a11e09 feat(import): wire ImportService — tray '백업에서 복원...' + preview dialog altair823 2026-04-26 10:56:29 +09:00
  • d76cca68df feat(import): ImportService with conflict policy + media copy altair823 2026-04-26 10:55:13 +09:00
  • e8587c1986 feat(import): pure parser for F5 export format altair823 2026-04-26 10:53:29 +09:00
  • fe6bbd3104 docs(plan): F6-L3 import 구현 계획 (4 tasks) altair823 2026-04-26 10:50:01 +09:00
  • f4d78456ae docs(spec): promote F5 export altair823 2026-04-26 10:46:37 +09:00
  • 27666178a2 feat(export): wire ExportService — tray '내보내기...' menu + dialog altair823 2026-04-26 10:44:38 +09:00
  • 9fdfd6610c feat(export): ExportService writing frontmatter tree + media + manifest altair823 2026-04-26 10:42:43 +09:00
  • 8e09464d5e feat(export): pure frontmatter + slug + markdown + jsonl + manifest composers altair823 2026-04-26 10:39:32 +09:00
  • c3b650058a docs(plan): F5 export 구현 계획 (4 tasks) altair823 2026-04-26 10:36:17 +09:00
  • 9d63e95173 docs(spec): F6-L1 후속 항목 4개 추가 (final code review 반영) altair823 2026-04-26 03:17:13 +09:00
  • d6ead8f1c6 docs(spec): promote F6-L1 local snapshot altair823 2026-04-26 03:13:06 +09:00
  • 06817f2b0b feat(backup): wire BackupService — whenReady + before-quit + tray altair823 2026-04-26 03:10:49 +09:00
  • 4898e13308 feat(backup): runDaily() with .last-snapshot marker + rotate after snapshot altair823 2026-04-26 03:08:30 +09:00
  • a728434b2e fix(backup): cleanup orphan .tmp on db.backup() failure + concurrency note altair823 2026-04-26 02:49:01 +09:00
  • 714dd3fc9f feat(backup): atomic SQLite snapshot to inkling-YYYY-MM-DD.sqlite altair823 2026-04-26 02:44:28 +09:00
  • 603588cc4f chore(backup): polish — boundary test, roundtrip lock-in, precompute today altair823 2026-04-26 02:13:47 +09:00
  • 902bc30adc chore(backup): rename WEEKLY_WINDOW_COUNT, document anchor+4 semantic altair823 2026-04-26 02:10:37 +09:00
  • 5e8e652ee0 feat(backup): GFS retention policy (pure) altair823 2026-04-26 02:07:09 +09:00
  • 7973ea5046 docs(plan): F6-L1 local snapshot 구현 계획 (TDD, 5 tasks) altair823 2026-04-26 01:51:27 +09:00
  • 6d3df0273e docs(spec): F1~F6 dogfood 피드백 로드맵 v0.2.1 설계 altair823 2026-04-26 01:42:46 +09:00
  • 2e709652fe docs(feedback): add F6 — 메모 데이터 백업 + 복원 (3-layer) altair823 2026-04-26 00:29:49 +09:00
  • 830c2beed3 docs(feedback): add F5 — 마크다운 일괄 export (RAG 활용) altair823 2026-04-26 00:23:43 +09:00