Week in Review: Reading Recovery, Session Recovery, and a Smarter Scribe

30 commits this week, but a lot of them were the kind that stop weird behaviour before users even realise there was a problem.

30 commits this week. Smaller number, still plenty going on.

This was a bug-and-calibration week. Less spectacle, more “why is this behaving like that then”.

english-exercises.org

I added another reading article module: Attention Myths 2026.

Then I did the more important bit and made it better:

  • tightened the B2 difficulty
  • balanced multiple-choice option lengths
  • fixed a logical contradiction in the text
  • added click-to-reveal vocabulary definitions
  • slimmed the article UI down to the useful essentials

Reading modules are very unforgiving. If the copy is off, the level is off. If the options are sloppy, the whole task feels fake. So this week was mostly about cleaning the bits that make reading tasks feel cheap.

Impossible English also got topic-pack support and calmer feedback behaviour. Slightly less chaotic. Not too much less.

Firstly Academy

Firstly got a solid round of stability work:

  • Scribe prompt improvements
  • wasted extraction fields removed
  • teacher-only audio context added
  • empty student dropdown on SPA navigation fixed
  • session restoration guards for Use of English Part 3
  • duplicate attempt prevention with a proper unique constraint

That last cluster matters a lot. Session recovery bugs create a special kind of nonsense because users feel like they are doing the right thing and the system is still gaslighting them.

No thanks.

Lesson Planning

I also added more PAU writing material and new student resources in lesson-planning, which is slowly becoming less of a folder of files and more of an actual operating system for teaching.

The Mood

Not a loud week.

Useful though. The products came out of it a bit less fragile, which is usually a good sign that the next sprint will be less annoying than the last one.