Loop Simulator — Data Sources
The Loop Simulator at ella.navgurukul.org/v2/conversation-flow/ is a developer tool for testing the full learning loop. It has several panels on the right side. Here is where each panel gets its data.Panel Data Sources
| Panel | Source | Persisted? |
|---|---|---|
| Memory | GET /users/me/memory (backend DB) | Yes |
| API Calls | Browser log of all fetch() calls to the backend | No — lost on refresh |
| Session | Assembled locally from judge response + chat messages | No — lost on refresh |
| Due_next | From GET /users/me/memory response | Yes (in DB) |
| Skills | From curriculum_data.py static data (rendered client-side) | Static — never changes |
| History | Accumulated locally across multiple chats in one session | No — lost on refresh |
What Is Persisted vs Ephemeral
Persisted in PostgreSQL (survives refresh, device switch, etc.):- User profile (name, age, city, level)
- skills_progress (owned, emerging, sightings, strength)
- due_next (what the next session targets)
- persona_memory (facts about the student)
- Messages (every conversation turn)
- Session analyses (judge scores, state changes)
- Session logs in the Session tab
- API call logs in the API Calls tab
- History chart data
- Chat messages displayed on screen (until saved to DB by turn endpoint)
The Learning Loop (API sequence)
Session Tab Structure
Each entry in the Session tab is assembled locally after the judge grades a conversation:/llm/judge response combined with the local chat transcript. It is NOT fetched from a separate endpoint.