# Version 0.1.25

This release introduces a comprehensive flashcard system with spaced repetition, including flashcard creation, review, and grading features. It also adds a 3D flip animation for flashcards and a notification toast for due flashcards. Several bug fixes and refactorings improve the review experience and code maintainability.

## New Features

- Added FLASHCARD node type and FlashcardNode class with question/answer display and spaced repetition status (5e472e) (Eric Ma)
- Added flashcard generation from content nodes with user selection via modal and LLM-generated cards (0d150f) (Eric Ma)
- Added flashcard review modal implementing the SM-2 spaced repetition algorithm with answer grading and manual override (f3ee84) (Eric Ma)
- Added due flashcard notification toast on session load with interactive Review Now and Later buttons (f7cf61) (Eric Ma)
- Added configurable grading strictness setting for flashcard review with dropdown in settings modal and LLM prompt adjustments (b4b2e5) (Eric Ma)
- Added 3D flip animation for flashcards using CSS transforms and toggleable flipped state (edad5e) (Eric Ma)

## Bug Fixes

- Fixed flashcard action buttons (create, flip, review) not working due to missing CSS classes and event listeners (edc78b7) (Eric Ma)
- Fixed review modal input not working on subsequent reviews by updating event listener setup order and resetting button state (f9b0cbf) (Eric Ma)
- Fixed flashcard review status display to show 'Due tomorrow' for failed cards instead of 'New' by basing status on nextReviewDate (0d98ea5) (Eric Ma)
- Fixed flashcard review status update and null reference errors by re-fetching nodes and preserving reviewedCount before modal close (67f13e0) (Eric Ma)
- Fixed checkDueFlashcardsOnLoad to use getAllNodes() instead of nodes Map for accurate due card detection (e89fe88) (Eric Ma)

## Deprecations

- Extracted layout functions into a separate module (layout.js) for better testability and to avoid test code drift (dd51b77) (Eric Ma)
- CI deployment now triggers only on relevant app or deployment code changes to avoid unnecessary deployments (6a29851) (Eric Ma)
