Follow-up to the Workstream C answer-key deprecation (pre-revamp quiz batch, epic #537).
Today the generate response ships the full answer key to the browser — per-option correct booleans (routes/quiz.py:85-89). Workstream C adds include_answer_key (default true) so the current QuizPanel.tsx keeps working, and logs every request that uses it.
Once the revamped client ships and grades exclusively through POST /api/quiz/attempts/{id}/answer:
- Flip the
include_answer_key default to false. - After a deprecation window with zero logged uses, delete the parameter and the key-mapping code entirely.
Removing the client-side key is a hard requirement of #537 — any client-graded flow leaks every correct answer to devtools before the student answers.
Blocked by: #541 (adds the flag) and the #537 client rewrite (removes the consumer).
Follow-up to the Workstream C answer-key deprecation (pre-revamp quiz batch, epic #537).
Today the generate response ships the full answer key to the browser — per-option
correctbooleans (routes/quiz.py:85-89). Workstream C addsinclude_answer_key(defaulttrue) so the currentQuizPanel.tsxkeeps working, and logs every request that uses it.Once the revamped client ships and grades exclusively through
POST /api/quiz/attempts/{id}/answer:include_answer_keydefault tofalse.Removing the client-side key is a hard requirement of #537 — any client-graded flow leaks every correct answer to devtools before the student answers.
Blocked by: #541 (adds the flag) and the #537 client rewrite (removes the consumer).