Changelog

The most important changes to the practice zone, newest first.

27 August 2026

Waiting indicators and the nightly activity endpoint

  • Animated hourglass waiting indicator shown on the service page run transcript, in the chat history for in-flight runs, and a spinner on the run buttons while a run is being started.
  • First phase of the nightly activity retrieval endpoint (GET /api/v1/activity): paginated per-learner practice activity for a course, in the format the course platform's connector expects. No API key yet — protection follows in the next phase.

26 August 2026

Mandatory engines, real progress and live credits

  • Mandatory AI engine per course / stage / service: admins can lock a stage service to a single engine, and the run flow then only asks for confirmation instead of offering the full engine catalog.
  • Course-driven banner naming: the header shows the course's whitelabel name (e.g. EDUardo Practice Zone) with the course name underneath.
  • Real "Done!" badges and stage progress bars, derived from your actual run history instead of mock data.
  • Authoritative credit balance: the remaining credits on the main page now come from the backend profile, with a local estimate as fallback.
  • AI answers are rendered as formatted text (headings, lists, tables, code blocks) on the service page and in the chat history.

Open issues & plans

Known issues and planned developments that have not been addressed yet.

API Endpoints security to improve with IP whitelist and API keys

The activity retrieval endpoint is currently unprotected; add IP allowlisting and API-key/Bearer authentication before exposing it to external platforms.

EDUardo design visuals

The EDUardo-branded look and feel is not applied yet; pages still use the default Practice Zone styling.

Input box rendering ("eg.eg.")

Variable input hints can render oddly (duplicated "eg. eg." placeholders); needs a cleanup pass.

LLM engine mandations

Mandatory engines are enforced per course / stage / service, but the surrounding admin tooling and backend sync are still being completed.

Workflow de-personalisations

Workflow runs still carry personalised inputs; de-personalisation is pending.