aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/pages
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-02-02 12:22:03 +0000
committerClaude <noreply@anthropic.com>2026-02-02 12:22:03 +0000
commitd4489f24a05911d1395e8473fe86c3442d9397ee (patch)
tree3f302c9c531c7ba25e2c5ad74c44b086df03a0d7 /src/client/pages
parentc20922a1aa339e34b4bed3747222f4b9d9941cd6 (diff)
downloadkioku-d4489f24a05911d1395e8473fe86c3442d9397ee.tar.gz
kioku-d4489f24a05911d1395e8473fe86c3442d9397ee.tar.zst
kioku-d4489f24a05911d1395e8473fe86c3442d9397ee.zip
fix(study): use date-based comparison with 3 AM boundary for due cards
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
Diffstat (limited to 'src/client/pages')
-rw-r--r--src/client/pages/DeckDetailPage.tsx7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/client/pages/DeckDetailPage.tsx b/src/client/pages/DeckDetailPage.tsx
index be4dc90..97f8378 100644
--- a/src/client/pages/DeckDetailPage.tsx
+++ b/src/client/pages/DeckDetailPage.tsx
@@ -7,6 +7,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { useAtomValue } from "jotai";
import { Suspense } from "react";
import { Link, useParams } from "wouter";
+import { getEndOfStudyDayBoundary } from "../../shared/date";
import { cardsByDeckAtomFamily, deckByIdAtomFamily } from "../atoms";
import { ErrorBoundary } from "../components/ErrorBoundary";
import { LoadingSpinner } from "../components/LoadingSpinner";
@@ -27,9 +28,9 @@ function DeckHeader({ deckId }: { deckId: string }) {
function DeckStats({ deckId }: { deckId: string }) {
const { data: cards } = useAtomValue(cardsByDeckAtomFamily(deckId));
- // Count cards due today
- const now = new Date();
- const dueCards = cards.filter((card) => new Date(card.due) <= now);
+ // Count cards due today (study day boundary is 3:00 AM)
+ const boundary = getEndOfStudyDayBoundary();
+ const dueCards = cards.filter((card) => new Date(card.due) < boundary);
return (
<div className="bg-white rounded-xl border border-border/50 p-6 mb-6">