aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/db
AgeCommit message (Collapse)Author
2026-05-02feat(study): submit reviews offline via IndexedDBnsfisis
Move FSRS scheduling to a shared module so the client can compute next card state without contacting the server. StudyPage now writes the updated card and review log straight to IndexedDB and lets the existing sync engine push them on reconnect, instead of POSTing to /api/decks/:deckId/study/:cardId. Online sessions still trigger a sync immediately so server-side aggregates stay fresh; offline sessions accumulate in pendingCountAtom until the next online tick. The legacy study POST route is preserved for backwards compatibility. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-02-25feat(decks): add default note type setting per decknsfisis
Allow each deck to specify a default note type that is auto-selected when creating new notes. Includes DB schema migration, server API updates, sync layer support, and UI for editing the default in the deck settings modal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12feat: 学習カード数の上限を撤廃Claude
REVIEW_CARDS_LIMIT(復習カード80枚制限)とnewCardsPerDay(1日の新規カード制限) を削除し、期日が来たすべてのカードを制限なく返すように変更。 削除した主な要素: - REVIEW_CARDS_LIMIT定数とカード取得時のlimitパラメータ - newCardsPerDayフィールド(DB schema, 型定義, Zod schema, sync, CRDT) - countDueNewCards, countDueReviewCards, findDueNewCardsForStudy, findDueReviewCardsForStudy(CardRepository) - countTodayNewCardReviews(ReviewLogRepository) - デッキルートからのReviewLogRepository依存 https://claude.ai/code/session_018hrEJ9vg3RPoeAPyEc17gS
2026-02-08refactor(study): remove legacy card fallback and commentsnsfisis
All cards now use note-based template rendering. The legacy front/back fallback path is no longer needed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-04refactor(db): remove unused findNewCards from localCardRepositorynsfisis
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02fix(study): use date-based comparison with 3 AM boundary for due cardsClaude
Instead of comparing due timestamps exactly (card.due <= now), compare against the next 3 AM boundary so all cards due within the current study day appear at once. This prevents new cards from trickling in throughout the day when FSRS fuzz spreads due times. https://claude.ai/code/session_01FeDztLcyGofd6nxh8ct7a3
2025-12-31feat(card): cascade card deletion to note and sibling cardsnsfisis
When a card is deleted, now also soft-deletes its parent Note and all sibling cards (other cards generated from the same note). This matches the specified behavior in the roadmap where deleting any card from a note-based group should remove the entire note and all its cards. Also adds tests for deletion constraint behaviors: - NoteType deletion blocked when Notes exist - NoteFieldType deletion blocked when NoteFieldValues exist - Note deletion cascades to all related Cards - Card deletion cascades to Note and sibling Cards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31feat(schema): make note_id and is_reversed NOT NULLnsfisis
All cards now require note association - legacy card support removed. This aligns with the note-based card architecture introduced in Phase 8. - Add database migration for NOT NULL constraints - Update client Dexie schema to version 3 - Remove LegacyCardItem component and legacy card handling - Update sync schemas and type definitions - Update all tests to use note-based cards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31feat(client): add IndexedDB repositories for note-related entitiesnsfisis
Implement client-side repositories for NoteType, NoteFieldType, Note, and NoteFieldValue with full CRUD operations and sync support. Includes cascade soft-delete for notes (deletes related cards) and comprehensive tests for all new repositories. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31feat(client): add note-related tables to client IndexedDBnsfisis
Add LocalNoteType, LocalNoteFieldType, LocalNote, and LocalNoteFieldValue interfaces and tables to the client database for Anki-compatible note system. Update LocalCard interface with noteId and isReversed fields. Includes Dexie schema version 2 with upgrade handler for existing cards. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07chore: fix all lint errors and warningsnsfisis
- Remove unused imports in repositories.ts and sync.test.ts - Replace non-null assertions with type casts in HomePage.test.tsx - Use semantic <output> element instead of div with role="status" - Use semantic <button> element instead of div with role="button" - Remove useless React fragment in StudyPage.tsx - Fix useCallback dependencies for handleFlip and handleRating 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add local CRUD repositories for IndexedDBnsfisis
Add localDeckRepository, localCardRepository, and localReviewLogRepository with full CRUD operations for offline support. Includes sync tracking with _synced flag and methods for finding unsynced items. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add Dexie.js setup for IndexedDB local storagensfisis
Set up Dexie database with LocalDeck, LocalCard, and LocalReviewLog tables for offline support. Each entity includes _synced flag for tracking synchronization status. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>