pdf-quiz-generator/backend/app
Daniel ddd8c4c4e3 feat: the session moves along the difficulty range, per topic
The half of "adaptive" that was never built. Difficulty was a filter a learner
could set and nothing the session did on its own, so somebody at 30% on a topic
and somebody at 90% were asked the same questions in the same order.

A question's value is now scaled by how far its level is from the one the
learner's readiness on *that topic* calls for: under 0.45 wants easy, up to
0.78 medium, above that hard. Per topic because strong on growth and weak on
arrhythmias is the normal case and one number across the two describes nobody.

A multiplier and not a filter, for the same reason the reranker is a
permutation: thinning the bank to one level makes it three times smaller, and
on a narrow topic that is the same eight questions every time. One step away
keeps 0.72 of its value, two steps 0.5, and an unlabelled question 0.92 —
unknown is not wrong.

The first band's edge is 0.45 rather than 0.55 so that a topic with no evidence
— which sits at exactly NEUTRAL_RECALL — gets medium questions. Handing
somebody the easiest questions in a subject nobody has measured them on is a
poor way to find out what they know.

Written up in docs/adaptive-sessions.md, which now says five rules.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqXevQJhxFrM7jJg82cgZN
2026-09-12 21:39:23 +02:00
..
middleware Add comprehensive structured logging with Loki + Grafana 2026-04-11 02:53:54 +02:00
models feat: figures are thumbnails that open into a viewer, with source and overlay 2026-09-12 20:33:00 +02:00
routers fix: thumbnails may be kept, the embedding model may not be changed here 2026-09-12 21:35:26 +02:00
schemas feat: an account may have no password, and may set one later 2026-09-12 17:39:29 +02:00
services feat: the session moves along the difficulty range, per topic 2026-09-12 21:39:23 +02:00
tasks fix: thumbnails may be kept, the embedding model may not be changed here 2026-09-12 21:35:26 +02:00
utils feat: question folders, per-section notes, and two feedback paths 2026-09-12 18:37:43 +02:00
__init__.py Initial commit: PDF Quiz Generator app 2026-03-30 20:04:53 +00:00
cli.py Fix CLI argument handling for all commands 2026-04-08 20:57:58 +02:00
config.py feat: rerank what a learner is shown, with Cohere through the proxy 2026-09-12 18:23:06 +02:00
database.py Tag filtering, multi-category, bug fixes, image validation, docs 2026-04-04 22:48:26 +02:00
logging_config.py Add comprehensive structured logging with Loki + Grafana 2026-04-11 02:53:54 +02:00
main.py feat: question folders, per-section notes, and two feedback paths 2026-09-12 18:37:43 +02:00