Practice sets — browser pass, 2026-09-09
The real running app at localhost:3100, logged in as a student. Not a prototype — this is the shipped branch practice-sets, 15 commits. Desktop 1440×900 left, phone 390×844 right.
Format page — /mocks/TOEFL_IBT
Practice summary with the Continue control on the next unsat set, four skill cards, then the mock forms. Note Listening and Writing: "No practice sets yet — this section is in the full mock." with no pill. Only Speaking says Coming soon, because only Speaking is genuinely unbuilt. That was the defect this pass caught.
Library — /mocks/TOEFL_IBT/practice/reading
Two seeded Reading sets. Filter chips All / Not done / Done. Both rows link to the brief, never straight into a sitting.
Library, filtered to Done
Nothing sat yet, so this is the empty-filter state.
Unknown skill — /practice/telepathy
Renders the right copy. Answers 200, not 404 — a loading.tsx on the path opens a Suspense boundary and Next flushes the shell first. Known, measured, and decided in CLAUDE.md.
Catalogue — /mocks
Unchanged by this work, included so you can see it did not regress.
Screenshots only. Nothing pushed, nothing merged.