Task 14 of the slice plan. Orchestrates a Quick Capture submit: trims/validates input, creates the note row + pending_jobs row in one repo.create transaction, persists each pasted PNG via MediaStore (relPath stored in media table), then awaits the injected enqueue() (AiWorker.enqueue at runtime) and fires celebrate() (NotificationService.celebrate). deleteNote drops the db row (cascading note_tags / media / pending_jobs) and removes the on-disk media directory afterwards. Verification: `npx vitest run tests/unit/CaptureService.test.ts` 4 passed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
2.1 KiB