====== Release Notes — 16 May 2026 ====== The largest single-day release in the platform's history. Fourteen distinct new features shipped across LMS parity, enterprise security, AI enrichment, and learner engagement. ===== Instructor-Led Training (ILT) ===== New ILT Sessions module (''admin/ilt-sessions.php'') enables scheduling and tracking of face-to-face or virtual instructor-led sessions alongside online learning. Features: session creation with date/time/location/instructor, learner enrolment, attendance recording, and session reports. Database: ''ILTSession'' table (K70). ===== Cohorts ===== Cohort management (''admin/cohorts.php'', ''admin/cohort-progress.php'') groups learners into named cohorts for tracking learning progress at a group level. Administrators can create cohorts, assign learners, and view aggregated progress reports across all cohort members. Database: ''Cohort'' / ''CohortMember'' tables (K71). ===== Course Catalog ===== Public-facing course catalog (''catalog.php'', ''catalog/course.php'') lets prospective learners browse available courses and programmes before enrolment. Each course entry shows title, description, learning outcomes, duration, and enrolment link. Database: ''CourseEnrollment'' table (K72). ===== Gamification ===== Learner engagement layer adding: * **Streak tracking** — daily learning streaks tracked via cron (''cron/jobs/streak_check.php''); displayed on the learner dashboard * **Leaderboard** (''learner/leaderboard.php'') — learner rankings by points/activity within an association * **Skill Gaps** — ''learner/skill-gap.php'' and ''admin/skill-gaps.php'' show gap analysis between a learner's current skills and a target role * **Points system** — configurable point awards for completing lessons, quizzes, and badges Database: ''Gamification'' table (K73); social learning tables (K76). ===== SSO / SAML Configuration ===== SAML 2.0 Single Sign-On configuration panel (''admin/sso-config.php'') allows platform administrators to connect an enterprise Identity Provider (IdP). Administrators enter: IdP metadata URL, entity ID, SSO endpoint, and certificate. SAML assertions are mapped to LEAST user attributes on login. Database: ''SAMLConfig'' table (K74). See: [[admin:security|Security & MFA]] ===== Learner Profile ===== Rich learner profile page (''learner/profile.php'') centralising: earned badges, completed lessons, skill tags, gamification points, streak history, and social connections. Accessible to the learner and to educators with class list permission. ===== Training Effectiveness ===== Training effectiveness dashboard (''admin/training-effectiveness.php'') reports on learning impact metrics: before/after skill assessments, completion rates by programme, correlation between learning activity and performance indicators. Database: ''TrainingEffectiveness'' tables (K75). ===== Training Calendar + iCal Export ===== Training calendar (''admin/training-calendar.php'', ''learner/calendar.php'') shows scheduled ILT sessions, quiz deadlines, and course milestones in a calendar view. Exports to iCal format via ''api/api-training-calendar-ical.php'' for import into Google Calendar, Outlook, or Apple Calendar. ===== Multi-Factor Authentication (TOTP) ===== TOTP-based two-factor authentication (compatible with Google Authenticator, Authy, and any RFC 6238 app). Users enrol via QR code scan; login requires the 6-digit time-based code after password entry. Admins can reset MFA for locked-out users. Migration K79. See: [[admin:security|Security & MFA]] ===== LTI 1.3 Tool Provider ===== Full LTI 1.3 implementation making LEAST an interoperable Tool Provider for Moodle, Canvas, Blackboard, D2L, and any IMS-certified Platform. Features: OIDC initiation, RS256 JWT verification, JWKS endpoint, JIT user provisioning from LTI claims, and an admin configuration UI (''admin/lti-config.php''). Database: ''AssociationLTI'' + ''LTIState'' tables (K78). See: [[admin:lti|LTI 1.3 Configuration]] · [[developer:lti|LTI 1.3 Integration]] ===== Quiz Controls — Timer & Cooldown ===== New quiz controls (K77): * **Timer** — configurable per-quiz time limit; countdown displayed during attempt; auto-submits on expiry * **Cooldown** — minimum time between retake attempts (configurable in minutes/hours/days) * **Attempt limit** — maximum number of attempts enforced server-side See: [[educator:quizzes|Quiz Builder]] ===== Bulk User Import (CSV/HRIS) ===== CSV-based bulk user creation tool (''admin/user-import.php''). Upload a CSV, preview validated rows, and commit to create accounts in bulk. Each imported user receives a welcome email with a temporary password. Supports HRIS-style exports with configurable column mapping. Database: ''UserImportLog'' table (K77). See: [[admin:import|Bulk User Import]] ===== Question Bank ===== Centralised question bank (''admin/question-bank.php'', ''admin/quiz-pool-config.php'') allowing questions to be authored once and reused across multiple quizzes. Pool-based quiz configuration randomly selects N questions from a pool, ensuring each attempt presents a different question set. Database: ''QuizPool'' configuration (G-06). See: [[educator:quizzes|Quiz Builder]] ===== KeyRing — Lesson Ref Display Mode ===== New ''LessonRef'' display mode for KeyRings renders a parameterised carousel filtered by lesson reference. Enables dynamic KeyRings that automatically populate with related lessons based on a shared reference tag, without manual curation. Migration K85. See: [[educator:keyring|KeyRing Display Modes]] ===== History Timeline ===== History Timeline widget available in the collection engine display layer. Records a chronological event feed for any collection, rendered as a vertical timeline with timestamps, actor names, and action descriptions. Driven by the IX interaction table — no additional storage required. ===== Selectize UI Helper ===== Selectize.js integrated as a platform-wide UI helper for multi-select and tag-input fields. Replaces raw ''