| Age | Commit message (Collapse) | Author |
|
Pull pure card-generation logic (template rendering and the initial FSRS
state for new cards) out of the server note repository into
src/shared/card-generator.ts so both server and client can call it. The
server's note.create / createMany now delegate the rendering work to the
shared function and only insert the resulting payload, preserving the
existing behavior. Groundwork for offline-first note CRUD on the client.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
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>
|
|
countTodayNewCardReviews was using midnight (0:00) as the start of day,
inconsistent with the 3 AM study day boundary used elsewhere. Reviews
between 0:00-3:00 AM were incorrectly counted as the next day's budget.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
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
|