altair823
2ac4d648c1
chore(trash): #4 closure — gates verified + roadmap mark complete
v0.2.3 #4 휴지통 (soft delete + migration v3) 종료.
게이트:
- typecheck: 0 errors
- 단위 테스트: 245 → 292 (+47, schema/repo/AiWorker/CaptureService/Continuity/
ImportService/ExportService/store 전반)
- e2e smoke: 1/1 PASS
기능:
- migration v3 — deleted_at + last_recalled_at + recall_dismissed_at
- NoteRepository: trash/restore/permanentDelete/emptyTrash/listTrashed
- AiWorker.processJob deletedAt 가드
- CaptureService 4 신규 메서드 + idempotency 가드 + 4 telemetry emit
- telemetryStats: 4 신규 컬럼 + 휴지통 회수율 ratio
- ImportService: deletedAt 보존 + skip-merge 정책
- ExportService 회귀 가드 (T5 listAll filter 자동 동작)
- IPC 5 신규 채널 + native dialog confirm
- zustand store: showTrash/trashNotes/trashCount + 5 actions
- App.tsx 헤더 탭 + 휴지통 view + bulk 비우기
- NoteCard mode='trash' read-only
기타 fix (cross-task):
- ContinuityService streak 가 trash 노트 무시
- getPendingCount 가 trash 노트 무시 (drift 방지)
- MediaGc intentional non-filter 주석 (restore 시 media 보존)
deferred (v0.2.4 backlog):
- exhaustiveness check on stats union
- restore 시 pending_jobs 재생성 정책
- inbox:trashCount cap 200 → repo.countTrashed()
- inbox:delete 채널 rename
- 탭 ARIA role="tab" 정정
- per-note 영구 삭제 텔레메트리 기반 retire 검토
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 21:53:26 +09:00
..
2026-04-26 11:30:37 +09:00
2026-04-26 13:07:06 +09:00
2026-04-26 13:07:06 +09:00
2026-04-26 11:25:31 +09:00
2026-04-26 11:31:22 +09:00
2026-04-26 11:49:48 +09:00
2026-04-26 10:46:37 +09:00
2026-04-26 03:17:13 +09:00
2026-04-26 11:42:16 +09:00
2026-04-26 10:57:14 +09:00
2026-04-26 13:07:06 +09:00
2026-04-26 01:42:46 +09:00
2026-05-01 21:53:26 +09:00
2026-05-01 20:04:47 +09:00