pdf-quiz-generator/backend/app/routers
Daniel 4aa1352da7
Some checks failed
Tests / backend (push) Failing after 11s
Tests / frontend (push) Successful in 33s
Tests / e2e (push) Failing after 31s
feat: jobs move to the workbench, with their logs and a way to clear them
**The badge is off the navbar.** It sat in the header of every page, for
everybody, polling every thirty seconds — for a number that means something to
the handful of people who start an extraction and nothing at all to a learner
sitting a session. Extraction is workbench business and it lives there now:
Settings → Tools → Jobs, and a link from the workbench itself, which is where
one is started.

To answer the question it raised: a job ages off the list after a day, and the
steps behind it after an hour. Which is to say it disappears when Redis forgets
it, on its own, with nothing to tell you it had.

**So there is now a way to clear one.** "Forget" takes a job off your list, with
a confirm beside it. It stops nothing that is running — the button is not
offered for a running job — and deletes nothing the job produced; it clears a
line somebody has read and dealt with so the ones they have not are not buried
under it. Only from your own list: the id alone is not authority over anybody
else's, and the keys behind it are shared.

**And a way to read one.** The details panel is called "Log" now, because that
is what it is — every step the job took, in order, and the reason it stopped if
it stopped. That reason has been recorded all along and shown nowhere.

Also, on the deck: the way out is a back link above the title like every other
page rather than a small grey button in the bar of card controls, and the four
buttons that are the whole interaction are full size.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqXevQJhxFrM7jJg82cgZN
2026-09-13 03:41:22 +02:00
..
__init__.py Initial commit: PDF Quiz Generator app 2026-03-30 20:04:53 +00:00
access.py feat: question folders, per-section notes, and two feedback paths 2026-09-12 18:37:43 +02:00
admin.py feat: ground AI drafts in the library and PubMed, and mend the card system 2026-09-13 02:44:42 +02:00
ai_mode.py fix: moderator flag in /auth/me, and AI Mode answers that go wrong 2026-09-12 23:05:55 +02:00
articles.py feat: ground AI drafts in the library and PubMed, and mend the card system 2026-09-13 02:44:42 +02:00
attempts.py refactor: remove the LMS 2026-09-12 23:27:51 +02:00
auth.py feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
categories.py Major: categories, question bank, security fixes, mobile layout, UX improvements 2026-03-31 20:08:05 +02:00
collections.py feat: articles are collectible, and Summary is a toggle 2026-09-12 14:52:20 +02:00
contact.py fix: the contact form's messages were readable by anyone 2026-09-12 22:37:28 +02:00
documents.py Tag filtering, multi-category, bug fixes, image validation, docs 2026-04-04 22:48:26 +02:00
drafts.py feat: extracted questions are staged, and only acceptance takes an id 2026-09-11 22:57:08 +02:00
exams.py feat: exams are a group you can build, with the board's own blueprint 2026-09-11 20:27:48 +02:00
favorites.py Add switchable embedding model, Polly toggle, job cancellation, and UI fixes 2026-04-03 20:44:11 +02:00
feedback.py feat: question folders, per-section notes, and two feedback paths 2026-09-12 18:37:43 +02:00
flashcards.py feat: ground AI drafts in the library and PubMed, and mend the card system 2026-09-13 02:44:42 +02:00
folders.py feat: question folders, per-section notes, and two feedback paths 2026-09-12 18:37:43 +02:00
login_code.py feat: sign in with a code sent by email 2026-09-12 17:29:28 +02:00
media.py feat: figures are thumbnails that open into a viewer, with source and overlay 2026-09-12 20:33:00 +02:00
mynote.py Add persistent MyNote for quizzes 2026-05-12 17:51:23 +02:00
nextcloud.py Security hardening, async TeachChat, rate limit UX, unthrottle 2026-04-04 01:09:42 +02:00
public.py feat: the objective is not optional, and the site can count itself 2026-09-12 06:40:48 +02:00
question_categories.py feat: retire the tags, and stop settings from hiding from the page that 2026-09-12 05:06:58 +02:00
questions.py fix: the answer side of a question needs an attempt, or the job of writing it 2026-09-13 00:13:43 +02:00
quizzes.py feat: jobs move to the workbench, with their logs and a way to clear them 2026-09-13 03:41:22 +02:00
search.py feat: rerank what a learner is shown, with Cohere through the proxy 2026-09-12 18:23:06 +02:00
share.py refactor: remove the LMS 2026-09-12 23:27:51 +02:00
study_plans.py feat: study plans built to the board's content outline 2026-09-11 21:40:17 +02:00
study_tools.py feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
tags.py fix: put the disciplines and diseases back, and order Performance as shown 2026-09-12 05:39:22 +02:00
teach.py fix: WebP figures, the openai SDK removed, and a voice a site can add to 2026-09-12 17:13:05 +02:00
tts.py fix: WebP figures, the openai SDK removed, and a voice a site can add to 2026-09-12 17:13:05 +02:00
uploads.py feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00