Spaces:
Runtime error
Runtime error
Commit History
-
Sync from GitHub via hub-sync
Verified signature40c272a
-
[NAH-36] Custom Recall frontend (gr.Server) + JSON API over the backend (#17)
nz-nz +1: Claude Opus 4.8Unverified signature* [NAH-36] custom Recall frontend (gr.Server) + JSON API over the backend Implements the polished Recall.dc.html design from Claude Design as a custom vanilla HTML/CSS/JS frontend served by FastAPI, with a thin JSON API wrapping the existing content_pipeline + learning_engine. The learning/content logic and the schema.py data contract are treated as an API and are NOT changed. - server.py: stateless API (session stored server-side by id, so reference answers never reach the client) — /api/generate, /grade, /regenerate, /next, /recap, /restart; serves frontend/index.html; legacy Gradio UI optionally mounted at /gradio. - frontend/index.html: Upload / Study / Recap screens, reacting mascot, streak flame, per-topic mastery bars, deck rail, difficulty dial, and the signature adaptive follow-up moment (banner slide-in + injected cards popping into the deck) driven by generate_followups/add_followups. - Verified end-to-end in stub mode (API + browser): generate → grade-wrong → …1b69513 -
[NAH-32] difficulty toggle UI: make-it-harder / make-it-easier (#14)
nz-nz +1: Claude Opus 4.8Unverified signatureAdd two buttons to the study screen that rewrite the current card via cp.regenerate and re-show it. New le.replace_card swaps the card in place (deck + queue + CardState) so the queue's pop-the-front contract holds. Stretch item; depends on NAH-22 (regenerate) and NAH-31 (study screen). Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>dd6592b -
Merge pull request #4 from francisco-magana/hygienepile-0k/nah-13-weak-topic-targeting-bias-queue-toward-low-grade-topics
nz-nzUnverified signature[NAH-13] Weak-topic targeting: bias next_card toward low-grade topics9632a81 -
[NAH-13] Weak-topic targeting: bias next_card toward low-grade topics
next_card now looks at the next few due cards and surfaces the one whose topic has the lowest average grade so far (when that topic is actually weak, avg < 3). The chosen card is rotated to the front so apply_result's "pop the front" contract still holds. No-op until there's answer history, so early cards keep normal order. Tests (test_weak_topic.py, no model): no-history order, weak topic surfaced, lookahead window respected, apply_result contract preserved. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>ab8e02f
-
[NAH-8] grade_answer: strict-JSON grading + parser/repair retry
Add a reusable llm.chat_json() helper that parses the model reply as JSON and, on failure, feeds the bad reply back once with a "return ONLY JSON" nudge before giving up (returns None). Wire grade_answer() to it with strict score validation (numeric, 0-5) and a neutral safe default so malformed model output never crashes the study loop. Tests (test_grade_answer.py, no GPU — chat() monkeypatched): clean JSON, repair-retry recovery, safe default when never valid, out-of-range score. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>560c197 -
Add app, content pipeline, learning engine, and gitignore
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>f31d2d4