- Publish konten langsung menyinkronkan lesson registry dan merekomputasi
composite/state siswa bila jenis evaluasi (latihan/kuis) berubah, tanpa
menunggu restart server.
- TTL cache (`LESSON_LIST_CACHE_TTL`, default 30 detik) untuk daftar lesson
agar worker gunicorn lain ikut segar tanpa invalidasi lintas proses.
- Endpoint POST /content/sync-registry (teacher-only) + tombol Sinkronisasi di
/teacher/progress untuk menangkap perubahan konten di luar webapp.
- Notifikasi editor saat progress siswa dihitung ulang pasca-publish.
- `recompute_lesson_progress()`: skor historis tetap disimpan; state legacy
completed/scored tidak disentuh.
- Test unit (TTL cache + signature evaluasi) dan integrasi (publish recompute,
sync registry, endpoint auth) + dokumentasi.
Tanpa perubahan schema DB.