Chamilo 3.0 – open-source LMS with native MCP server (PAuth2.1) Chamilo 3.0 has been released as an open-source learning management system with a native MCP server and PAuth2.1 support, according to the project's changelog. The release includes fixes across display, course, document, announcement, and learnpath modules, along with BuyCourses plugin improvements and removal of obsolete settings. The addition of a native MCP server positions the LMS to integrate with AI tooling via the Model Context Protocol. What's Changed - Display: Fix default home welcome visibility by @christianbeeznest https://github.com/christianbeeznest in 8182 https://github.com/chamilo/chamilo-lms/pull/8182 - Course: Fix default home welcome visibility by @christianbeeznest https://github.com/christianbeeznest in 8184 https://github.com/chamilo/chamilo-lms/pull/8184 - Internal: Use Request class instead of superglobals by @AngelFQC https://github.com/AngelFQC in 8186 https://github.com/chamilo/chamilo-lms/pull/8186 - Plugin buycourses2 1 by @christianbeeznest https://github.com/christianbeeznest in 8188 https://github.com/chamilo/chamilo-lms/pull/8188 - Plugin: Improve BuyCourses user service flow, validation and admin UX by @christianbeeznest https://github.com/christianbeeznest in 8199 https://github.com/chamilo/chamilo-lms/pull/8199 - Plugin: wrap all hardcoded UI strings in i18n calls across PHP and TPL files by @christianbeeznest https://github.com/christianbeeznest in 8200 https://github.com/chamilo/chamilo-lms/pull/8200 - Plugin: Fix service-based limits and admin course access by @christianbeeznest https://github.com/christianbeeznest in 8201 https://github.com/chamilo/chamilo-lms/pull/8201 - Document: Restore document.users copy files setting in modern Documents and Personal Files by @christianbeeznest https://github.com/christianbeeznest in 8202 https://github.com/chamilo/chamilo-lms/pull/8202 - Admin: Restore admin-only status settings in role-based user forms by @christianbeeznest https://github.com/christianbeeznest in 8204 https://github.com/chamilo/chamilo-lms/pull/8204 - Document: Use Symfony cache directory for temporary copy files by @christianbeeznest https://github.com/christianbeeznest in 8205 https://github.com/chamilo/chamilo-lms/pull/8205 - Admin: Implement career and promotion support in global agenda events setting allow careers in global agenda by @christianbeeznest https://github.com/christianbeeznest in 8206 https://github.com/chamilo/chamilo-lms/pull/8206 - Announcement: restore course announcement scheduled by date support by @christianbeeznest https://github.com/christianbeeznest in 8207 https://github.com/chamilo/chamilo-lms/pull/8207 - Announcement: remove obsolete anonymous global visibility setting by @christianbeeznest https://github.com/christianbeeznest in 8208 https://github.com/chamilo/chamilo-lms/pull/8208 - Migration: Remove obsolete setting hide global announcements when not… by @christianbeeznest https://github.com/christianbeeznest in 8209 https://github.com/chamilo/chamilo-lms/pull/8209 - Settings: remove obsolete settings and legacy mappings by @christianbeeznest https://github.com/christianbeeznest in 8210 https://github.com/chamilo/chamilo-lms/pull/8210 - Plugin: Fix BuyCourses course access and service limit flow by @christianbeeznest https://github.com/christianbeeznest in 8211 https://github.com/chamilo/chamilo-lms/pull/8211 - Learnpath: Reuse canonical learning path folder by @christianbeeznest https://github.com/christianbeeznest in 8212 https://github.com/chamilo/chamilo-lms/pull/8212 - Internal: Avoid mkdir warning when Serializer cache already exists by @christianbeeznest https://github.com/christianbeeznest in 8214 https://github.com/chamilo/chamilo-lms/pull/8214 - Learnpath: Disable forced SCORM debug logging by @christianbeeznest https://github.com/christianbeeznest in 8215 https://github.com/chamilo/chamilo-lms/pull/8215 - Internal: Use course locale only for requests with course context by @christianbeeznest https://github.com/christianbeeznest in 8216 https://github.com/chamilo/chamilo-lms/pull/8216 - User: Respect open course access setting by @christianbeeznest https://github.com/christianbeeznest in 8217 https://github.com/chamilo/chamilo-lms/pull/8217 - Learnpath: Fix LP files tab hierarchy flag by @christianbeeznest https://github.com/christianbeeznest in 8247 https://github.com/chamilo/chamilo-lms/pull/8247 - Internal: Wire finished reminder setting to cron command by @christianbeeznest https://github.com/christianbeeznest in 8251 https://github.com/chamilo/chamilo-lms/pull/8251 - Internal: Restore homepage course categories setting by @christianbeeznest https://github.com/christianbeeznest in 8253 https://github.com/chamilo/chamilo-lms/pull/8253 - Internal: Restore core editor settings support in TinyMCE by @christianbeeznest https://github.com/christianbeeznest in 8271 https://github.com/chamilo/chamilo-lms/pull/8271 - Migration: Add V210 migrations path for 2.1 by @christianbeeznest https://github.com/christianbeeznest in 8272 https://github.com/chamilo/chamilo-lms/pull/8272 - Internal: Remove dead legacy redirect after login logic by @christianbeeznest https://github.com/christianbeeznest in 8273 https://github.com/chamilo/chamilo-lms/pull/8273 - Dropbox: Restore dropbox mailing option in modern Vue flow by @christianbeeznest https://github.com/christianbeeznest in 8274 https://github.com/chamilo/chamilo-lms/pull/8274 - Exercise: Restore exercise settings behavior in legacy quiz flow by @christianbeeznest https://github.com/christianbeeznest in 8281 https://github.com/chamilo/chamilo-lms/pull/8281 - Forum: Restore forum settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8283 https://github.com/chamilo/chamilo-lms/pull/8283 - Learnpath: Make LP document folders collapsible by @christianbeeznest https://github.com/christianbeeznest in 8284 https://github.com/chamilo/chamilo-lms/pull/8284 - Course: Support categorized course settings safely by @christianbeeznest https://github.com/christianbeeznest in 8288 https://github.com/chamilo/chamilo-lms/pull/8288 - Gradebook: Restore gradebook settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8289 https://github.com/chamilo/chamilo-lms/pull/8289 - Language: Restore language settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8290 https://github.com/chamilo/chamilo-lms/pull/8290 - Internal: Restore mail settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8291 https://github.com/chamilo/chamilo-lms/pull/8291 - Message: Restore session message timeframe setting by @christianbeeznest https://github.com/christianbeeznest in 8292 https://github.com/chamilo/chamilo-lms/pull/8292 - User: Restore password reminder and chat profile settings by @christianbeeznest https://github.com/christianbeeznest in 8293 https://github.com/chamilo/chamilo-lms/pull/8293 - User: Restore registration settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8294 https://github.com/chamilo/chamilo-lms/pull/8294 - Internal: Restore webservice API key settings by @christianbeeznest https://github.com/christianbeeznest in 8295 https://github.com/chamilo/chamilo-lms/pull/8295 - Internal: Restore external webservice settings by @christianbeeznest https://github.com/christianbeeznest in 8296 https://github.com/chamilo/chamilo-lms/pull/8296 - User: Restore user workflow settings by @christianbeeznest https://github.com/christianbeeznest in 8305 https://github.com/chamilo/chamilo-lms/pull/8305 - User: Restore skill assignment notification setting by @christianbeeznest https://github.com/christianbeeznest in 8306 https://github.com/chamilo/chamilo-lms/pull/8306 - User: Restore skill badge notifications by @christianbeeznest https://github.com/christianbeeznest in 8307 https://github.com/chamilo/chamilo-lms/pull/8307 - User: Restore security settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8310 https://github.com/chamilo/chamilo-lms/pull/8310 - Internal: Restore custom platform settings behavior by @christianbeeznest https://github.com/christianbeeznest in 8324 https://github.com/chamilo/chamilo-lms/pull/8324 - Document: Consolidate API document downloads by @christianbeeznest https://github.com/christianbeeznest in 8325 https://github.com/chamilo/chamilo-lms/pull/8325 - Session: Restore legacy session settings by @christianbeeznest https://github.com/christianbeeznest in 8327 https://github.com/chamilo/chamilo-lms/pull/8327 - Learnpath: Restore LP availability visibility and prerequisite settings by @christianbeeznest https://github.com/christianbeeznest in 8329 https://github.com/chamilo/chamilo-lms/pull/8329 - Learnpath: Restore SCORM legacy settings by @christianbeeznest https://github.com/christianbeeznest in 8332 https://github.com/chamilo/chamilo-lms/pull/8332 - Learnpath: Restore legacy learning path settings by @christianbeeznest https://github.com/christianbeeznest in 8333 https://github.com/chamilo/chamilo-lms/pull/8333 - Course: Restore per-tool course introduction by @christianbeeznest https://github.com/christianbeeznest in 8336 https://github.com/chamilo/chamilo-lms/pull/8336 - Course: Restore tools shortcuts by @christianbeeznest https://github.com/christianbeeznest in 8337 https://github.com/chamilo/chamilo-lms/pull/8337 - Admin: Hide disabled settings in sub-URLs by @christianbeeznest https://github.com/christianbeeznest in 8338 https://github.com/chamilo/chamilo-lms/pull/8338 - Assignment: Implement my courses show pending work setting by @christianbeeznest https://github.com/christianbeeznest in 8339 https://github.com/chamilo/chamilo-lms/pull/8339 - Internal: Apply webservice API key settings by @christianbeeznest https://github.com/christianbeeznest in 8340 https://github.com/chamilo/chamilo-lms/pull/8340 - Internal: Apply session SameSite setting by @christianbeeznest https://github.com/christianbeeznest in 8341 https://github.com/chamilo/chamilo-lms/pull/8341 - User: Apply profile address setting by @christianbeeznest https://github.com/christianbeeznest in 8342 https://github.com/chamilo/chamilo-lms/pull/8342 - Learnpath: Apply video context menu setting by @christianbeeznest https://github.com/christianbeeznest in 8343 https://github.com/chamilo/chamilo-lms/pull/8343 - Course: Keep course home intro always available by @christianbeeznest https://github.com/christianbeeznest in 8344 https://github.com/chamilo/chamilo-lms/pull/8344 - Exercise: Implement pending exercise attempts list for MyCourses by @christianbeeznest https://github.com/christianbeeznest in 8345 https://github.com/chamilo/chamilo-lms/pull/8345 - Exercise: Add keep-alive ping during exercise attempts by @christianbeeznest https://github.com/christianbeeznest in 8346 https://github.com/chamilo/chamilo-lms/pull/8346 - Exercise: Apply session filter setting to pending tests by @christianbeeznest https://github.com/christianbeeznest in 8347 https://github.com/chamilo/chamilo-lms/pull/8347 - Learnpath: Restore learning path flow setting by @christianbeeznest https://github.com/christianbeeznest in 8348 https://github.com/chamilo/chamilo-lms/pull/8348 - Session: Allow base course teachers to view session assignments by @christianbeeznest https://github.com/christianbeeznest in 8349 https://github.com/chamilo/chamilo-lms/pull/8349 - Document: Support group document quota setting by @christianbeeznest https://github.com/christianbeeznest in 8350 https://github.com/chamilo/chamilo-lms/pull/8350 - User: Enforce prevent multiple simultaneous login on Symfony login by @christianbeeznest https://github.com/christianbeeznest in 8353 https://github.com/chamilo/chamilo-lms/pull/8353 - Admin: Allow admins to clear user active sessions - refs 3405 https://github.com/chamilo/chamilo-lms/issues/3405 by @christianbeeznest https://github.com/christianbeeznest in 8354 https://github.com/chamilo/chamilo-lms/pull/8354 - Course: Fix course creation capability pre-check fallback by @christianbeeznest https://github.com/christianbeeznest in 8356 https://github.com/chamilo/chamilo-lms/pull/8356 - Course: Apply max courses per user to course creation by @christianbeeznest https://github.com/christianbeeznest in 8357 https://github.com/chamilo/chamilo-lms/pull/8357 - Course: Improve course tool shortcuts visibility setting by @christianbeeznest https://github.com/christianbeeznest in 8358 https://github.com/chamilo/chamilo-lms/pull/8358 - Course: Add teacher badge to course cards by @christianbeeznest https://github.com/christianbeeznest in 8359 https://github.com/chamilo/chamilo-lms/pull/8359 - Admin: Fix tab persistence in user list by @ywarnier https://github.com/ywarnier in 8355 https://github.com/chamilo/chamilo-lms/pull/8355 - Document: Restore cloud link support by @christianbeeznest https://github.com/christianbeeznest in 8362 https://github.com/chamilo/chamilo-lms/pull/8362 - Document: Restore editable comments by @christianbeeznest https://github.com/christianbeeznest in 8364 https://github.com/chamilo/chamilo-lms/pull/8364 - Auth: LDAP: enable extra field synchronisation - refs BT 22093 by @NicoDucou https://github.com/NicoDucou in 8370 https://github.com/chamilo/chamilo-lms/pull/8370 - Auth: Ldap: enable the use of ldaps configuration -refs BT 22093 by @NicoDucou https://github.com/NicoDucou in 8371 https://github.com/chamilo/chamilo-lms/pull/8371 - Tracking: Restore compact skill layout - refs BT 23429 by @christianbeeznest https://github.com/christianbeeznest in 8375 https://github.com/chamilo/chamilo-lms/pull/8375 - Plugin: Complete BuyCourses recurring services and VAT handling by @christianbeeznest https://github.com/christianbeeznest in 8374 https://github.com/chamilo/chamilo-lms/pull/8374 - Plugin: Persist BuyCourses course creation display flag by @christianbeeznest https://github.com/christianbeeznest in 8376 https://github.com/chamilo/chamilo-lms/pull/8376 - Internal: Prevent autofocus on sortable pagination forms - refs BT 23432 by @christianbeeznest https://github.com/christianbeeznest in 8377 https://github.com/chamilo/chamilo-lms/pull/8377 - Display: Improve course and session picture management - refs 8331 https://github.com/chamilo/chamilo-lms/issues/8331 by @christianbeeznest https://github.com/christianbeeznest in 8379 https://github.com/chamilo/chamilo-lms/pull/8379 - Admin: Add admin password strength checker - refs 8077 https://github.com/chamilo/chamilo-lms/issues/8077 by @christianbeeznest https://github.com/christianbeeznest in 8380 https://github.com/chamilo/chamilo-lms/pull/8380 - User: Restore first login password change - refs 8078 https://github.com/chamilo/chamilo-lms/issues/8078 by @christianbeeznest https://github.com/christianbeeznest in 8381 https://github.com/chamilo/chamilo-lms/pull/8381 - User: Fix password escaping in user emails - refs 6963 https://github.com/chamilo/chamilo-lms/issues/6963 by @christianbeeznest https://github.com/christianbeeznest in 8382 https://github.com/chamilo/chamilo-lms/pull/8382 - Glossary: Generate glossary terms from documents - refs 8079 https://github.com/chamilo/chamilo-lms/issues/8079 by @christianbeeznest https://github.com/christianbeeznest in 8383 https://github.com/chamilo/chamilo-lms/pull/8383 - Glossary: Improve glossary export downloads - refs 8080 https://github.com/chamilo/chamilo-lms/issues/8080 by @christianbeeznest https://github.com/christianbeeznest in 8384 https://github.com/chamilo/chamilo-lms/pull/8384 - Course: Add selected text context to AI chat - refs 7372 https://github.com/chamilo/chamilo-lms/issues/7372 by @christianbeeznest https://github.com/christianbeeznest in 8385 https://github.com/chamilo/chamilo-lms/pull/8385 - Glossary: Exclude existing terms when generating through AI - refs 8372 https://github.com/chamilo/chamilo-lms/issues/8372 by @christianbeeznest https://github.com/christianbeeznest in 8386 https://github.com/chamilo/chamilo-lms/pull/8386 - Search: Improve search result thumbnails - refs 7268 https://github.com/chamilo/chamilo-lms/issues/7268 by @christianbeeznest https://github.com/christianbeeznest in 8387 https://github.com/chamilo/chamilo-lms/pull/8387 - Survey: Fix survey question option layout - refs 6450 https://github.com/chamilo/chamilo-lms/issues/6450 by @christianbeeznest https://github.com/christianbeeznest in 8388 https://github.com/chamilo/chamilo-lms/pull/8388 - User: Add crop and delete for profile photo - refs 5547 https://github.com/chamilo/chamilo-lms/issues/5547 by @christianbeeznest https://github.com/christianbeeznest in 8389 https://github.com/chamilo/chamilo-lms/pull/8389 - Exercise: Add answer feedback to more question types - refs 2044 https://github.com/chamilo/chamilo-lms/issues/2044 by @christianbeeznest https://github.com/christianbeeznest in 8391 https://github.com/chamilo/chamilo-lms/pull/8391 - User: Delete assignment files with users - refs 2596 https://github.com/chamilo/chamilo-lms/issues/2596 by @christianbeeznest https://github.com/christianbeeznest in 8392 https://github.com/chamilo/chamilo-lms/pull/8392 - Social: Show friends posts on social wall - refs 2677 https://github.com/chamilo/chamilo-lms/issues/2677 by @christianbeeznest https://github.com/christianbeeznest in 8393 https://github.com/chamilo/chamilo-lms/pull/8393 - Learnpath: Accept SCORM score after completed - refs 4595 https://github.com/chamilo/chamilo-lms/issues/4595 by @christianbeeznest https://github.com/christianbeeznest in 8394 https://github.com/chamilo/chamilo-lms/pull/8394 - Gradebook: Improve gradebook score input layout - refs 8081 https://github.com/chamilo/chamilo-lms/issues/8081 by @christianbeeznest https://github.com/christianbeeznest in 8395 https://github.com/chamilo/chamilo-lms/pull/8395 - Course: Add course tracking activity reports - refs 2239 https://github.com/chamilo/chamilo-lms/issues/2239 by @christianbeeznest https://github.com/christianbeeznest in 8396 https://github.com/chamilo/chamilo-lms/pull/8396 - Course: Track direct course resource access - refs 7939 https://github.com/chamilo/chamilo-lms/issues/7939 by @christianbeeznest https://github.com/christianbeeznest in 8397 https://github.com/chamilo/chamilo-lms/pull/8397 - Admin: Move activities audit to security block - refs 7322 https://github.com/chamilo/chamilo-lms/issues/7322 by @christianbeeznest https://github.com/christianbeeznest in 8398 https://github.com/chamilo/chamilo-lms/pull/8398 - Tracking: Add reports registry framework - refs 7325 https://github.com/chamilo/chamilo-lms/issues/7325 by @christianbeeznest https://github.com/christianbeeznest in 8399 https://github.com/chamilo/chamilo-lms/pull/8399 - Admin: Complete reports registry cleanup - refs 7325 https://github.com/chamilo/chamilo-lms/issues/7325 by @christianbeeznest https://github.com/christianbeeznest in 8400 https://github.com/chamilo/chamilo-lms/pull/8400 - Ticket: Prevent autofocus on ticket reply form - refs BT 23432 by @christianbeeznest https://github.com/christianbeeznest in 8401 https://github.com/chamilo/chamilo-lms/pull/8401 - Skill: Add certificate search and skills menu links - refs 7629 https://github.com/chamilo/chamilo-lms/issues/7629 by @christianbeeznest https://github.com/christianbeeznest in 8404 https://github.com/chamilo/chamilo-lms/pull/8404 - Bug : when reload page on quiz attempt, radio checked input are not displayed has checked. by @chamilo-uga https://github.com/chamilo-uga in 8402 https://github.com/chamilo/chamilo-lms/pull/8402 - Internal: Fix installer database password maxlength - refs 6915 https://github.com/chamilo/chamilo-lms/issues/6915 by @christianbeeznest https://github.com/christianbeeznest in 8407 https://github.com/chamilo/chamilo-lms/pull/8407 - Exercise: Fix course copy quiz question category settings - refs 2351 https://github.com/chamilo/chamilo-lms/issues/2351 by @christianbeeznest https://github.com/christianbeeznest in 8408 https://github.com/chamilo/chamilo-lms/pull/8408 - Group: Fix group auto-fill duplicate users - refs 2517 https://github.com/chamilo/chamilo-lms/issues/2517 by @christianbeeznest https://github.com/christianbeeznest in 8409 https://github.com/chamilo/chamilo-lms/pull/8409 - Agenda: Fix agenda event time selection - refs 8086 https://github.com/chamilo/chamilo-lms/issues/8086 by @christianbeeznest https://github.com/christianbeeznest in 8410 https://github.com/chamilo/chamilo-lms/pull/8410 - Session: Reimplement session result move tool - refs 7435 https://github.com/chamilo/chamilo-lms/issues/7435 by @christianbeeznest https://github.com/christianbeeznest in 8411 https://github.com/chamilo/chamilo-lms/pull/8411 - Attendance: Reimplement official code settings in C2 - refs 7498 https://github.com/chamilo/chamilo-lms/issues/7498 by @christianbeeznest https://github.com/christianbeeznest in 8412 https://github.com/chamilo/chamilo-lms/pull/8412 - Document: Add TinyMCE document autosave drafts - refs 2663 https://github.com/chamilo/chamilo-lms/issues/2663 by @christianbeeznest https://github.com/christianbeeznest in 8413 https://github.com/chamilo/chamilo-lms/pull/8413 - Course: Add support for language in resources - resf 7244 https://github.com/chamilo/chamilo-lms/issues/7244 by @christianbeeznest https://github.com/christianbeeznest in 8414 https://github.com/chamilo/chamilo-lms/pull/8414 - Internal: Fix mail template saving - resf 2941 https://github.com/chamilo/chamilo-lms/issues/2941 by @christianbeeznest https://github.com/christianbeeznest in 8415 https://github.com/chamilo/chamilo-lms/pull/8415 - Usergroup: Migrate interfaces to Vue by @ywarnier https://github.com/ywarnier in 8416 https://github.com/chamilo/chamilo-lms/pull/8416 - Search: Add Xapian extraction for modern office files - resf 7267 https://github.com/chamilo/chamilo-lms/issues/7267 by @christianbeeznest https://github.com/christianbeeznest in 8417 https://github.com/chamilo/chamilo-lms/pull/8417 - Search: Add AI media extraction to Xapian indexing - resf 7269 https://github.com/chamilo/chamilo-lms/issues/7269 by @christianbeeznest https://github.com/christianbeeznest in 8418 https://github.com/chamilo/chamilo-lms/pull/8418 - Document: Add SVG drawing editor to documents - refs 8282 https://github.com/chamilo/chamilo-lms/issues/8282 by @christianbeeznest https://github.com/christianbeeznest in 8420 https://github.com/chamilo/chamilo-lms/pull/8420 - Learnpath: Improve LP video next step overlay - refs 2668 https://github.com/chamilo/chamilo-lms/issues/2668 by @christianbeeznest https://github.com/christianbeeznest in 8421 https://github.com/chamilo/chamilo-lms/pull/8421 - Learnpath: Improve learning path style - refs 7534 https://github.com/chamilo/chamilo-lms/issues/7534 by @christianbeeznest https://github.com/christianbeeznest in 8422 https://github.com/chamilo/chamilo-lms/pull/8422 - Course: Add AI course analyzer proof of concept - refs 7310 https://github.com/chamilo/chamilo-lms/issues/7310 by @christianbeeznest https://github.com/christianbeeznest in 8424 https://github.com/chamilo/chamilo-lms/pull/8424 - Plugin: Check OpenSSL availability for IMS/LTI keys - refs 7294 https://github.com/chamilo/chamilo-lms/issues/7294 by @christianbeeznest https://github.com/christianbeeznest in 8425 https://github.com/chamilo/chamilo-lms/pull/8425 - Internal: Add NProgress for SPA route loading - refs 8142 https://github.com/chamilo/chamilo-lms/issues/8142 by @christianbeeznest https://github.com/christianbeeznest in 8426 https://github.com/chamilo/chamilo-lms/pull/8426 - Course: Show course categories on Vue homepage - refs 5201 https://github.com/chamilo/chamilo-lms/issues/5201 by @christianbeeznest https://github.com/christianbeeznest in 8427 https://github.com/chamilo/chamilo-lms/pull/8427 - Admin: Add usergroup members preview page - refs 6395 https://github.com/chamilo/chamilo-lms/pull/6395 by @christianbeeznest https://github.com/christianbeeznest in 8428 https://github.com/chamilo/chamilo-lms/pull/8428 - Learnpath: Add advanced learning path access by date - refs 6346 https://github.com/chamilo/chamilo-lms/issues/6346 by @christianbeeznest https://github.com/christianbeeznest in 8429 https://github.com/chamilo/chamilo-lms/pull/8429 - Course: Fix class-linked course group synchronization - refs 5774 https://github.com/chamilo/chamilo-lms/issues/5774 by @christianbeeznest https://github.com/christianbeeznest in 8430 https://github.com/chamilo/chamilo-lms/pull/8430 - Usergroup: Improve class group course synchronization - refs 1710 https://github.com/chamilo/chamilo-lms/issues/1710 by @christianbeeznest https://github.com/christianbeeznest in 8431 https://github.com/chamilo/chamilo-lms/pull/8431 - Plugin: Differentiate commercial plugins in admin - refs 7323 https://github.com/chamilo/chamilo-lms/issues/7323 by @christianbeeznest https://github.com/christianbeeznest in 8432 https://github.com/chamilo/chamilo-lms/pull/8432 - Social: Fix social group images in search results by @christianbeeznest https://github.com/christianbeeznest in 8433 https://github.com/chamilo/chamilo-lms/pull/8433 - Internal: Handle expired sessions in Tour AJAX by @christianbeeznest https://github.com/christianbeeznest in 8434 https://github.com/chamilo/chamilo-lms/pull/8434 - Internal: Handle invalid course context in CidReqListener by @christianbeeznest https://github.com/christianbeeznest in 8435 https://github.com/chamilo/chamilo-lms/pull/8435 - Internal: Fix quarterly statistics AJAX loading by @christianbeeznest https://github.com/christianbeeznest in 8436 https://github.com/chamilo/chamilo-lms/pull/8436 - Plugin: Adapt Zoom plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8439 https://github.com/chamilo/chamilo-lms/pull/8439 - Plugin: Adapt MaintenanceMode plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8440 https://github.com/chamilo/chamilo-lms/pull/8440 - Plugin: Improve plugin list filters by @christianbeeznest https://github.com/christianbeeznest in 8441 https://github.com/chamilo/chamilo-lms/pull/8441 - Plugin: Adapt Redirection plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8442 https://github.com/chamilo/chamilo-lms/pull/8442 - Plugin: Add verified plugin list filter by @christianbeeznest https://github.com/christianbeeznest in 8443 https://github.com/chamilo/chamilo-lms/pull/8443 - Learnpath: Restore AI study helper for LP documents by @christianbeeznest https://github.com/christianbeeznest in 8445 https://github.com/chamilo/chamilo-lms/pull/8445 - Plugin: Implement TopLinks course shortcuts integration by @christianbeeznest https://github.com/christianbeeznest in 8446 https://github.com/chamilo/chamilo-lms/pull/8446 - Plugin: Avoid BuyCourses table lookup before plugin install by @christianbeeznest https://github.com/christianbeeznest in 8447 https://github.com/chamilo/chamilo-lms/pull/8447 - Course: Enhance AI course analyzer with lesson context by @christianbeeznest https://github.com/christianbeeznest in 8448 https://github.com/chamilo/chamilo-lms/pull/8448 - Document: Make document autosave drafts collapsible by @christianbeeznest https://github.com/christianbeeznest in 8449 https://github.com/chamilo/chamilo-lms/pull/8449 - Plugin: Fix Zoom course meeting invitation flow by @christianbeeznest https://github.com/christianbeeznest in 8451 https://github.com/chamilo/chamilo-lms/pull/8451 - Course: Improve resource language advanced settings by @christianbeeznest https://github.com/christianbeeznest in 8452 https://github.com/chamilo/chamilo-lms/pull/8452 - Plugin: Harden ExternalNotificationConnect plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8453 https://github.com/chamilo/chamilo-lms/pull/8453 - Plugin: Adapt CourseHomeNotify to course home by @christianbeeznest https://github.com/christianbeeznest in 8456 https://github.com/chamilo/chamilo-lms/pull/8456 - Plugin: Adapt CourseLegal course agreement flow by @christianbeeznest https://github.com/christianbeeznest in 8458 https://github.com/chamilo/chamilo-lms/pull/8458 - Plugin: Update Static plugin compatibility by @christianbeeznest https://github.com/christianbeeznest in 8461 https://github.com/chamilo/chamilo-lms/pull/8461 - Plugin: Integrate ShowUserInfo plugin by @christianbeeznest https://github.com/christianbeeznest in 8466 https://github.com/chamilo/chamilo-lms/pull/8466 - Plugin: Integrate StudentFollowUp plugin by @christianbeeznest https://github.com/christianbeeznest in 8468 https://github.com/chamilo/chamilo-lms/pull/8468 - Plugin: Improve Learning Calendar plugin UI and agenda integration by @christianbeeznest https://github.com/christianbeeznest in 8470 https://github.com/chamilo/chamilo-lms/pull/8470 - Plugin: Improve survey export plugins by @christianbeeznest https://github.com/christianbeeznest in 8471 https://github.com/chamilo/chamilo-lms/pull/8471 - Plugin: Improve UserRemoteService plugin safety and UI by @christianbeeznest https://github.com/christianbeeznest in 8472 https://github.com/chamilo/chamilo-lms/pull/8472 - Plugin: Improve MigrationMoodle plugin safety and task flow by @christianbeeznest https://github.com/christianbeeznest in 8473 https://github.com/chamilo/chamilo-lms/pull/8473 - Plugin: Improve EmbedRegistry plugin safety by @christianbeeznest https://github.com/christianbeeznest in 8474 https://github.com/chamilo/chamilo-lms/pull/8474 - Plugin: Improve SearchCourse plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8475 https://github.com/chamilo/chamilo-lms/pull/8475 - Plugin: Improve Rss plugin region integration by @christianbeeznest https://github.com/christianbeeznest in 8476 https://github.com/chamilo/chamilo-lms/pull/8476 - Plugin: Improve Dictionary plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8477 https://github.com/chamilo/chamilo-lms/pull/8477 - Plugin: Improve GoogleMaps admin integration by @christianbeeznest https://github.com/christianbeeznest in 8478 https://github.com/chamilo/chamilo-lms/pull/8478 - Plugin: Improve BeforeLogin plugin integration by @christianbeeznest https://github.com/christianbeeznest in 8479 https://github.com/chamilo/chamilo-lms/pull/8479 - Plugin: Improve CourseBlock course settings integration by @christianbeeznest https://github.com/christianbeeznest in 8480 https://github.com/chamilo/chamilo-lms/pull/8480 - Plugin: Improve CustomFooter region integration by @christianbeeznest https://github.com/christianbeeznest in 8481 https://github.com/chamilo/chamilo-lms/pull/8481 - Plugin: Improve CustomCertificate integration by @christianbeeznest https://github.com/christianbeeznest in 8482 https://github.com/chamilo/chamilo-lms/pull/8482 - Plugin: Improve NoSearchIndex plugin behavior by @christianbeeznest https://github.com/christianbeeznest in 8484 https://github.com/chamilo/chamilo-lms/pull/8484 - Plugin: Fix BBB stale meeting closure by @christianbeeznest https://github.com/christianbeeznest in 8485 https://github.com/chamilo/chamilo-lms/pull/8485 - Plugin: Improve NotebookTeacher plugin behavior by @christianbeeznest https://github.com/christianbeeznest in 8488 https://github.com/chamilo/chamilo-lms/pull/8488 - Plugin: CStudio: Blank all unused files in plugin's vendor/jspdf lib … by @ywarnier https://github.com/ywarnier in 8489 https://github.com/chamilo/chamilo-lms/pull/8489 - Plugin: Improve Justification plugin management by @christianbeeznest https://github.com/christianbeeznest in 8492 https://github.com/chamilo/chamilo-lms/pull/8492 - Plugin: Improve QuestionOptionsEvaluation plugin management by @christianbeeznest https://github.com/christianbeeznest in 8493 https://github.com/chamilo/chamilo-lms/pull/8493 - Internal: API: Message: Replaces /api/messages/by-group/list?groupId=N endpoint with /usergroups/{usergroupId}/messages by @AngelFQC https://github.com/AngelFQC in 8454 https://github.com/chamilo/chamilo-lms/pull/8454 - Plugin: Restore ExerciseSignature signing flow by @christianbeeznest https://github.com/christianbeeznest in 8495 https://github.com/chamilo/chamilo-lms/pull/8495 - Plugin: Fix BBB recording dates and recording links rendering by @christianbeeznest https://github.com/christianbeeznest in 8496 https://github.com/chamilo/chamilo-lms/pull/8496 - install: Fix web installer migration flow by @christianbeeznest https://github.com/christianbeeznest in 8498 https://github.com/chamilo/chamilo-lms/pull/8498 - Plugin: Fix GradingElectronic gradebook export flow by @christianbeeznest https://github.com/christianbeeznest in 8505 https://github.com/chamilo/chamilo-lms/pull/8505 - Plugin: Fix CheckExtraFieldAuthorCompany field detection by @christianbeeznest https://github.com/christianbeeznest in 8507 https://github.com/chamilo/chamilo-lms/pull/8507 - Plugin: Adapt CleanDeletedFiles to new version storage by @christianbeeznest https://github.com/christianbeeznest in 8511 https://github.com/chamilo/chamilo-lms/pull/8511 - Plugin: Improve Dashboard plugin admin overview by @christianbeeznest https://github.com/christianbeeznest in 8512 https://github.com/chamilo/chamilo-lms/pull/8512 - Plugin: Adapt ExtraMenuFromWebservice to Vue topbar by @christianbeeznest https://github.com/christianbeeznest in 8514 https://github.com/chamilo/chamilo-lms/pull/8514 - Plugin: Adapt Mobidico launcher to new version by @christianbeeznest https://github.com/christianbeeznest in 8516 https://github.com/chamilo/chamilo-lms/pull/8516 - Plugin: Adapt ShowRegions to rendered Chamilo 2 regions by @christianbeeznest https://github.com/christianbeeznest in 8517 https://github.com/chamilo/chamilo-lms/pull/8517 - Plugin: Adapt HelloWorld plugin to Chamilo 2 regions by @christianbeeznest https://github.com/christianbeeznest in 8518 https://github.com/chamilo/chamilo-lms/pull/8518 - Plugin: Adapt ExtAuth logout behavior to Chamilo 2 Vue layout by @christianbeeznest https://github.com/christianbeeznest in 8519 https://github.com/chamilo/chamilo-lms/pull/8519 - Plugin: Apply resubscription check to admin session enrolment by @christianbeeznest https://github.com/christianbeeznest in 8521 https://github.com/chamilo/chamilo-lms/pull/8521 - Plugin: Classify commercial and freemium plugins by @christianbeeznest https://github.com/christianbeeznest in 8522 https://github.com/chamilo/chamilo-lms/pull/8522 - Document: Improve document editor defaults and option help by @christianbeeznest https://github.com/christianbeeznest in 8523 https://github.com/chamilo/chamilo-lms/pull/8523 - Replace all axios calls with baseService utilities by @AngelFQC https://github.com/AngelFQC in 8506 https://github.com/chamilo/chamilo-lms/pull/8506 - Ai helper: Add Claude AI provider support by @christianbeeznest https://github.com/christianbeeznest in 8525 https://github.com/chamilo/chamilo-lms/pull/8525 - Learnpath: Fix LP URL and media item rendering - refs 8483 https://github.com/chamilo/chamilo-lms/issues/8483 by @christianbeeznest https://github.com/christianbeeznest in 8526 https://github.com/chamilo/chamilo-lms/pull/8526 - Course: Improve course and document UI behavior - refs 8450 https://github.com/chamilo/chamilo-lms/issues/8450 by @christianbeeznest https://github.com/christianbeeznest in 8527 https://github.com/chamilo/chamilo-lms/pull/8527 - Internal: Remove duplicate student view switch by @christianbeeznest https://github.com/christianbeeznest in 8533 https://github.com/chamilo/chamilo-lms/pull/8533 - User: Fix login captcha activation and case handling - refs 8494 https://github.com/chamilo/chamilo-lms/issues/8494 by @christianbeeznest https://github.com/christianbeeznest in 8534 https://github.com/chamilo/chamilo-lms/pull/8534 - Introduce CourseContextRoleListener to dynamically assign contextual course roles by @AngelFQC https://github.com/AngelFQC in 8491 https://github.com/chamilo/chamilo-lms/pull/8491 - Learnpath: Fix LP item view initialization in student view - refs 8483 https://github.com/chamilo/chamilo-lms/issues/8483 by @christianbeeznest https://github.com/christianbeeznest in 8535 https://github.com/chamilo/chamilo-lms/pull/8535 - Link: Improve link management navigation - refs 8532 https://github.com/chamilo/chamilo-lms/issues/8532 by @christianbeeznest https://github.com/christianbeeznest in 8536 https://github.com/chamilo/chamilo-lms/pull/8536 - Plugin: Add map provider support for social locations by @christianbeeznest https://github.com/christianbeeznest in 8539 https://github.com/chamilo/chamilo-lms/pull/8539 - Document: Fix document quota display and validation by @christianbeeznest https://github.com/christianbeeznest in 8541 https://github.com/chamilo/chamilo-lms/pull/8541 - Tracking: Fix my space report metrics by @christianbeeznest https://github.com/christianbeeznest in 8542 https://github.com/chamilo/chamilo-lms/pull/8542 - Plugin: Improve dashboard admin overview by @christianbeeznest https://github.com/christianbeeznest in 8543 https://github.com/chamilo/chamilo-lms/pull/8543 - Plugin: Fix plugin commercial classifications by @christianbeeznest https://github.com/christianbeeznest in 8544 https://github.com/chamilo/chamilo-lms/pull/8544 - Plugin: Adapt external webservice menu to sidebar by @christianbeeznest https://github.com/christianbeeznest in 8545 https://github.com/chamilo/chamilo-lms/pull/8545 - Exercise: Fix hotspot AJAX course context by @christianbeeznest https://github.com/christianbeeznest in 8546 https://github.com/chamilo/chamilo-lms/pull/8546 - Admin: Improve admin user authentication forms by @christianbeeznest https://github.com/christianbeeznest in 8547 https://github.com/chamilo/chamilo-lms/pull/8547 - Admin: Always show session summary data to admins by @christianbeeznest https://github.com/christianbeeznest in 8550 https://github.com/chamilo/chamilo-lms/pull/8550 - Plugin: Improve CStudio editor labels, tooltips and UI behavior - refs 8552 https://github.com/chamilo/chamilo-lms/issues/8552 by @christianbeeznest https://github.com/christianbeeznest in 8554 https://github.com/chamilo/chamilo-lms/pull/8554 - Learnpath: Fix learning path visibility icon state - refs 8538 https://github.com/chamilo/chamilo-lms/issues/8538 by @christianbeeznest https://github.com/christianbeeznest in 8556 https://github.com/chamilo/chamilo-lms/pull/8556 - Forum: Migrate forum tool to Vue and API Platform by @christianbeeznest https://github.com/christianbeeznest in 8560 https://github.com/chamilo/chamilo-lms/pull/8560 - Survey: Migrate survey tool to Vue and API by @christianbeeznest https://github.com/christianbeeznest in 8562 https://github.com/chamilo/chamilo-lms/pull/8562 - Admin: Fix course tool visibility settings - refs BT 23501 by @christianbeeznest https://github.com/christianbeeznest in 8565 https://github.com/chamilo/chamilo-lms/pull/8565 - Internal: Enhance copy-paste blocking for TinyMCE editors - refs 8564 https://github.com/chamilo/chamilo-lms/issues/8564 by @christianbeeznest https://github.com/christianbeeznest in 8566 https://github.com/chamilo/chamilo-lms/pull/8566 - Internal: Improve personal file import dialog and folder actions - refs BT 23496 by @christianbeeznest https://github.com/christianbeeznest in 8567 https://github.com/chamilo/chamilo-lms/pull/8567 - Internal: Admin: Only limit access URL management to having Global Ad… by @NicoDucou https://github.com/NicoDucou in 8572 https://github.com/chamilo/chamilo-lms/pull/8572 - Install: Fix upgrade installer old root path input by @christianbeeznest https://github.com/christianbeeznest in 8573 https://github.com/chamilo/chamilo-lms/pull/8573 - Security: moodle import zip by @AngelFQC https://github.com/AngelFQC in 8574 https://github.com/chamilo/chamilo-lms/pull/8574 - Security: SSRF via unprotected mPDF in legacy certificate generation GHSA-mw74-xqfh-r8gj https://github.com/chamilo/chamilo-lms/security/advisories/GHSA-mw74-xqfh-r8gj by @AngelFQC https://github.com/AngelFQC in 8577 https://github.com/chamilo/chamilo-lms/pull/8577 - Refactor: Reusable single-page PDF rendering method in PDF class by @AngelFQC https://github.com/AngelFQC in 8578 https://github.com/chamilo/chamilo-lms/pull/8578 - Security: Restrict allowed classes in Sequence::getUnSerializeGraph by @AngelFQC https://github.com/AngelFQC in 8579 https://github.com/chamilo/chamilo-lms/pull/8579 - Migration: Add legacy migration support structures by @christianbeeznest https://github.com/christianbeeznest in 8581 https://github.com/chamilo/chamilo-lms/pull/8581 - Internal: Add Ricky legacy GradingElectronic data importer by @christianbeeznest https://github.com/christianbeeznest in 8582 https://github.com/chamilo/chamilo-lms/pull/8582 - Plugin: Add BuyCourses service copy action by @christianbeeznest https://github.com/christianbeeznest in 8586 https://github.com/chamilo/chamilo-lms/pull/8586 - Plugin: Add BuyCourses AI course benefits by @christianbeeznest https://github.com/christianbeeznest in 8587 https://github.com/chamilo/chamilo-lms/pull/8587 - Plugin: Add BuyCourses course creation service translations by @christianbeeznest https://github.com/christianbeeznest in 8588 https://github.com/chamilo/chamilo-lms/pull/8588 - Plugin: Add BuyCourses service link copy action by @christianbeeznest https://github.com/christianbeeznest in 8589 https://github.com/chamilo/chamilo-lms/pull/8589 - Plugin: Add BuyCourses monthly yearly service tabs by @christianbeeznest https://github.com/christianbeeznest in 8590 https://github.com/chamilo/chamilo-lms/pull/8590 - Plugin: Enforce AI token limits per user by @christianbeeznest https://github.com/christianbeeznest in 8591 https://github.com/chamilo/chamilo-lms/pull/8591 - Plugin: Fix BuyCourses student catalog sections by @christianbeeznest https://github.com/christianbeeznest in 8592 https://github.com/chamilo/chamilo-lms/pull/8592 - Plugin: Fix BuyCourses translated HTML descriptions by @christianbeeznest https://github.com/christianbeeznest in 8596 https://github.com/chamilo/chamilo-lms/pull/8596 - Plugin: Fix BuyCourses service availability checks by @christianbeeznest https://github.com/christianbeeznest in 8597 https://github.com/chamilo/chamilo-lms/pull/8597 - Plugin: Fix BuyCourses purchase and course creation UI by @christianbeeznest https://github.com/christianbeeznest in 8598 https://github.com/chamilo/chamilo-lms/pull/8598 - Plugin: Fix BuyCourses purchase and course limit bugs by @christianbeeznest https://github.com/christianbeeznest in 8601 https://github.com/chamilo/chamilo-lms/pull/8601 - Bump codecov/codecov-action from 5 to 7 by @dependabot https://github.com/dependabot bot in 8559 https://github.com/chamilo/chamilo-lms/pull/8559 - Plugin: Add BuyCourses empty catalog admin actions by @christianbeeznest https://github.com/christianbeeznest in 8603 https://github.com/chamilo/chamilo-lms/pull/8603 - Plugin: Improve BuyCourses plugin translations by @christianbeeznest https://github.com/christianbeeznest in 8604 https://github.com/chamilo/chamilo-lms/pull/8604 - Social: Fix personal files translated labels - refs BT 23496 by @christianbeeznest https://github.com/christianbeeznest in 8606 https://github.com/chamilo/chamilo-lms/pull/8606 - Display: Close sidebar menu on mobile navigation - refs BT 23519 by @christianbeeznest https://github.com/christianbeeznest in 8611 https://github.com/chamilo/chamilo-lms/pull/8611 - Forum: Organize state providers and processors by @christianbeeznest https://github.com/christianbeeznest in 8612 https://github.com/chamilo/chamilo-lms/pull/8612 - Forum: Restore basic forum settings by @christianbeeznest https://github.com/christianbeeznest in 8613 https://github.com/chamilo/chamilo-lms/pull/8613 - Forum: Improve migration legacy to vue + API by @christianbeeznest https://github.com/christianbeeznest in 8614 https://github.com/chamilo/chamilo-lms/pull/8614 - Survey: Organize state providers and processors by @christianbeeznest https://github.com/christianbeeznest in 8615 https://github.com/chamilo/chamilo-lms/pull/8615 - Internals: keep soft-deleted users out of the user-to-URL list by @AngelFQC https://github.com/AngelFQC in 8610 https://github.com/chamilo/chamilo-lms/pull/8610 - Security: stored XSS via language name in admin panel by @AngelFQC https://github.com/AngelFQC in 8607 https://github.com/chamilo/chamilo-lms/pull/8607 - Security: harden user-import XML parsing against XXE by @AngelFQC https://github.com/AngelFQC in 8609 https://github.com/chamilo/chamilo-lms/pull/8609 - Security: add CSRF tokens to gradebook delete/lock/form actions by @AngelFQC https://github.com/AngelFQC in 8625 https://github.com/chamilo/chamilo-lms/pull/8625 - Security: enforce CSRF token validation on state-changing admin endpoints by @AngelFQC https://github.com/AngelFQC in 8600 https://github.com/chamilo/chamilo-lms/pull/8600 - Assignment: Fix assignment attached document filtering - refs 8557 https://github.com/chamilo/chamilo-lms/discussions/8557 by @christianbeeznest https://github.com/christianbeeznest in 8626 https://github.com/chamilo/chamilo-lms/pull/8626 - Assignment: Add submission preview action - refs 6558 https://github.com/chamilo/chamilo-lms/pull/6558 by @christianbeeznest https://github.com/christianbeeznest in 8627 https://github.com/chamilo/chamilo-lms/pull/8627 - Course: Hide empty state when sticky courses exist by @christianbeeznest https://github.com/christianbeeznest in 8628 https://github.com/chamilo/chamilo-lms/pull/8628 - Admin: Fix admin dashboard assignment pages by @christianbeeznest https://github.com/christianbeeznest in 8629 https://github.com/chamilo/chamilo-lms/pull/8629 - Internal: Move course report toolbar above title by @christianbeeznest https://github.com/christianbeeznest in 8630 https://github.com/chamilo/chamilo-lms/pull/8630 - Admin: Fix admin question action links by @christianbeeznest https://github.com/christianbeeznest in 8631 https://github.com/chamilo/chamilo-lms/pull/8631 - Admin: Fix admin question pagination and preview by @christianbeeznest https://github.com/christianbeeznest in 8632 https://github.com/chamilo/chamilo-lms/pull/8632 - Search: Add pagination to content search results by @christianbeeznest https://github.com/christianbeeznest in 8633 https://github.com/chamilo/chamilo-lms/pull/8633 - Search: Add Xapian pagination and restore webpack config by @christianbeeznest https://github.com/christianbeeznest in 8634 https://github.com/chamilo/chamilo-lms/pull/8634 - Editor: Fix TinyMCE Firefox outline and spacing by @christianbeeznest https://github.com/christianbeeznest in 8635 https://github.com/chamilo/chamilo-lms/pull/8635 - Display: Fix learner tracking profile responsive layout by @christianbeeznest https://github.com/christianbeeznest in 8637 https://github.com/chamilo/chamilo-lms/pull/8637 - Display: Fix stable My courses sidebar loading state by @christianbeeznest https://github.com/christianbeeznest in 8638 https://github.com/chamilo/chamilo-lms/pull/8638 - Social: Fix folder label translation in personal files - refs BT 23496 by @christianbeeznest https://github.com/christianbeeznest in 8639 https://github.com/chamilo/chamilo-lms/pull/8639 - Display: Close login sidebar on mobile navigation - refs BT 23519 by @christianbeeznest https://github.com/christianbeeznest in 8640 https://github.com/chamilo/chamilo-lms/pull/8640 - Internal: Log task grading requests and disclose generated media by @christianbeeznest https://github.com/christianbeeznest in 8641 https://github.com/chamilo/chamilo-lms/pull/8641 - Learnpath: Fix undefined payload in LP advanced access delete by @christianbeeznest https://github.com/christianbeeznest in 8642 https://github.com/chamilo/chamilo-lms/pull/8642 - Bump the composer group across 1 directory with 5 updates by @dependabot https://github.com/dependabot bot in 8643 https://github.com/chamilo/chamilo-lms/pull/8643 - Revert legacy Ricky DB migration support structures by @christianbeeznest https://github.com/christianbeeznest in 8644 https://github.com/chamilo/chamilo-lms/pull/8644 - Security: enforce teacher-student enrollment check on student tracking page by @AngelFQC https://github.com/AngelFQC in 8602 https://github.com/chamilo/chamilo-lms/pull/8602 - Security: stored XSS via social group discussion thread title by @AngelFQC https://github.com/AngelFQC in 8595 https://github.com/chamilo/chamilo-lms/pull/8595 - Security: stored XSS in messages and social-group discussions via unsanitized v-html by @AngelFQC https://github.com/AngelFQC in 8594 https://github.com/chamilo/chamilo-lms/pull/8594 - Admin: Display single authentication method as read-only - refs 8540 https://github.com/chamilo/chamilo-lms/issues/8540 by @christianbeeznest https://github.com/christianbeeznest in 8648 https://github.com/chamilo/chamilo-lms/pull/8648 - Security: Fix IDOR and mass-assignment in PushSubscription API resource by @AngelFQC https://github.com/AngelFQC in 8651 https://github.com/chamilo/chamilo-lms/pull/8651 - Security: Path traversal + arbitrary file write via sub-language admin panel by @AngelFQC https://github.com/AngelFQC in 8652 https://github.com/chamilo/chamilo-lms/pull/8652 - Security: Exposed test token generation endpoint enables privilege escalation by @AngelFQC https://github.com/AngelFQC in 8654 https://github.com/chamilo/chamilo-lms/pull/8654 - Session: Fix user and class enrollment - refs 8551 https://github.com/chamilo/chamilo-lms/issues/8551 by @christianbeeznest https://github.com/christianbeeznest in 8655 https://github.com/chamilo/chamilo-lms/pull/8655 - Security: SSRF via mPDF/Dompdf in Wiki PDF export — route through the shared PDF class by @AngelFQC https://github.com/AngelFQC in 8593 https://github.com/chamilo/chamilo-lms/pull/8593 - Security: Remove path-traversal-prone placeholder endpoints in FileManagerController by @AngelFQC https://github.com/AngelFQC in 8653 https://github.com/chamilo/chamilo-lms/pull/8653 - Security: Unauthenticated Template Creation via /template/document-templates/create by @AngelFQC https://github.com/AngelFQC in 8659 https://github.com/chamilo/chamilo-lms/pull/8659 - Security: Unauthenticated Disclosure of Private Course Template Content by @AngelFQC https://github.com/AngelFQC in 8658 https://github.com/chamilo/chamilo-lms/pull/8658 - Security: Unauthenticated Template Deletion by @AngelFQC https://github.com/AngelFQC in 8657 https://github.com/chamilo/chamilo-lms/pull/8657 - Fix login as admin/hr + access to sessions report as HR by @ywarnier https://github.com/ywarnier in 8663 https://github.com/chamilo/chamilo-lms/pull/8663 - Security: Missing Source-Course Authorization in Course Maintenance Copy Endpoints by @AngelFQC https://github.com/AngelFQC in 8664 https://github.com/chamilo/chamilo-lms/pull/8664 - Bump actions/checkout from 6 to 7 by @dependabot https://github.com/dependabot bot in 8649 https://github.com/chamilo/chamilo-lms/pull/8649 - Security: Restrict Course Maintenance to teachers of the current course by @AngelFQC https://github.com/AngelFQC in 8665 https://github.com/chamilo/chamilo-lms/pull/8665 - Security: SQL Injection in ExtraField::get where clause via unescaped array filter values by @AngelFQC https://github.com/AngelFQC in 8666 https://github.com/chamilo/chamilo-lms/pull/8666 - Survey: Harden Vue writes and polish configuration UI by @christianbeeznest https://github.com/christianbeeznest in 8668 https://github.com/chamilo/chamilo-lms/pull/8668 - Forum: Improve Vue form reply and thread parity by @christianbeeznest https://github.com/christianbeeznest in 8669 https://github.com/chamilo/chamilo-lms/pull/8669 - Internal: Add signed update package verification - refs 5004 https://github.com/chamilo/chamilo-lms/issues/5004 by @christianbeeznest https://github.com/christianbeeznest in 8531 https://github.com/chamilo/chamilo-lms/pull/8531 - Forum: Improve default category and required errors by @christianbeeznest https://github.com/christianbeeznest in 8679 https://github.com/chamilo/chamilo-lms/pull/8679 - Plugin: CStudio: Improve editor access and navigation by @christianbeeznest https://github.com/christianbeeznest in 8680 https://github.com/chamilo/chamilo-lms/pull/8680 - Plugin: BuyCourses: Use Chamilo language codes for translated HTML by @christianbeeznest https://github.com/christianbeeznest in 8684 https://github.com/chamilo/chamilo-lms/pull/8684 - Plugin: BuyCourses: Link courses to service user limits by @christianbeeznest https://github.com/christianbeeznest in 8686 https://github.com/chamilo/chamilo-lms/pull/8686 - Fix: show correct status label for all user types in user information by @addow https://github.com/addow in 8676 https://github.com/chamilo/chamilo-lms/pull/8676 - Fix oauth2 invalid state retry by @AngelFQC https://github.com/AngelFQC in 8687 https://github.com/chamilo/chamilo-lms/pull/8687 - Fix: auto-retry OAuth2 flow on invalid state instead of showing error by @addow https://github.com/addow in 8674 https://github.com/chamilo/chamilo-lms/pull/8674 - Plugin: BuyCourses: Fix catalog labels and service states by @christianbeeznest https://github.com/christianbeeznest in 8688 https://github.com/chamilo/chamilo-lms/pull/8688 - Plugin: BuyCourses: Improve paid course display and cleanup by @christianbeeznest https://github.com/christianbeeznest in 8691 https://github.com/chamilo/chamilo-lms/pull/8691 - Plugin: BuyCourses: Improve selected service badge by @christianbeeznest https://github.com/christianbeeznest in 8692 https://github.com/chamilo/chamilo-lms/pull/8692 - AI: Avoid duplicate generated image badge by @christianbeeznest https://github.com/christianbeeznest in 8693 https://github.com/chamilo/chamilo-lms/pull/8693 - CI: Bump actions/cache from 5 to 6 by @dependabot https://github.com/dependabot bot in 8671 https://github.com/chamilo/chamilo-lms/pull/8671 - Plugin: BuyCourses: Clarify upgrade pricing and duration rules by @christianbeeznest https://github.com/christianbeeznest in 8695 https://github.com/chamilo/chamilo-lms/pull/8695 - Plugin: BuyCourses: Prefer highest active service by @christianbeeznest https://github.com/christianbeeznest in 8696 https://github.com/chamilo/chamilo-lms/pull/8696 - Course Description: migrate legacy tool to Vue and API Platform by @christianbeeznest https://github.com/christianbeeznest in 8697 https://github.com/chamilo/chamilo-lms/pull/8697 - BuyCourses: add service sale audit trail by @christianbeeznest https://github.com/christianbeeznest in 8701 https://github.com/chamilo/chamilo-lms/pull/8701 - BuyCourses: add service active state by @christianbeeznest https://github.com/christianbeeznest in 8702 https://github.com/chamilo/chamilo-lms/pull/8702 - Internal: Fix language flipping between SPA and legacy pages + tests for CourseFromRequestHelper by @AngelFQC https://github.com/AngelFQC in 8685 https://github.com/chamilo/chamilo-lms/pull/8685 - Announcement: Migrate announcements to Vue and API Platform by @christianbeeznest https://github.com/christianbeeznest in 8703 https://github.com/chamilo/chamilo-lms/pull/8703 - Learning path: fix item deletion indexing by @christianbeeznest https://github.com/christianbeeznest in 8706 https://github.com/chamilo/chamilo-lms/pull/8706 - Search: harden Xapian indexing failures by @christianbeeznest https://github.com/christianbeeznest in 8707 https://github.com/chamilo/chamilo-lms/pull/8707 - Course: show course details from catalogue by @christianbeeznest https://github.com/christianbeeznest in 8708 https://github.com/chamilo/chamilo-lms/pull/8708 - BuyCourses: fix missing coupon code warning by @christianbeeznest https://github.com/christianbeeznest in 8709 https://github.com/chamilo/chamilo-lms/pull/8709 - Search: add Xapian rebuild command by @christianbeeznest https://github.com/christianbeeznest in 8710 https://github.com/chamilo/chamilo-lms/pull/8710 - BuyCourses: document recurring services cron by @christianbeeznest https://github.com/christianbeeznest in 8711 https://github.com/chamilo/chamilo-lms/pull/8711 - BuyCourses: restore cancelled service renewal - refs 8704 https://github.com/chamilo/chamilo-lms/issues/8704 by @christianbeeznest https://github.com/christianbeeznest in 8712 https://github.com/chamilo/chamilo-lms/pull/8712 - Plugin: BuyCourses: limit coupon applications for services - refs 8705 https://github.com/chamilo/chamilo-lms/issues/8705 by @christianbeeznest https://github.com/christianbeeznest in 8713 https://github.com/chamilo/chamilo-lms/pull/8713 - Course: validate duplicate course creation by @christianbeeznest https://github.com/christianbeeznest in 8714 https://github.com/chamilo/chamilo-lms/pull/8714 - Course Progress: complete Vue migration by @christianbeeznest https://github.com/christianbeeznest in 8715 https://github.com/chamilo/chamilo-lms/pull/8715 - Fix repository PHP code style by @christianbeeznest https://github.com/christianbeeznest in 8716 https://github.com/chamilo/chamilo-lms/pull/8716 - Learnpath: Migrate legacy code to vue + Api symfony by @christianbeeznest https://github.com/christianbeeznest in 8667 https://github.com/chamilo/chamilo-lms/pull/8667 - Wiki: Migrate legacy tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8717 https://github.com/chamilo/chamilo-lms/pull/8717 - Notebook: Migrate legacy tool to Vue and Symfony by @christianbeeznest https://github.com/christianbeeznest in 8719 https://github.com/chamilo/chamilo-lms/pull/8719 - Fix ECS issues in migrated tools by @christianbeeznest https://github.com/christianbeeznest in 8720 https://github.com/chamilo/chamilo-lms/pull/8720 - Portfolio: Migrate legacy tool to Vue and Symfony by @christianbeeznest https://github.com/christianbeeznest in 8721 https://github.com/chamilo/chamilo-lms/pull/8721 - Learnpath: Fix post-merge builder and runtime issues by @christianbeeznest https://github.com/christianbeeznest in 8724 https://github.com/chamilo/chamilo-lms/pull/8724 - Security: Stored XSS in course chat sanitizer ran before Markdown by @AngelFQC https://github.com/AngelFQC in 8727 https://github.com/chamilo/chamilo-lms/pull/8727 - Migration: complete Ticket Vue administration and parity by @christianbeeznest https://github.com/christianbeeznest in 8731 https://github.com/chamilo/chamilo-lms/pull/8731 - Learnpath: Fix post-migration review observations by @christianbeeznest https://github.com/christianbeeznest in 8732 https://github.com/chamilo/chamilo-lms/pull/8732 - Learnpath: Add AI quick-test generation for documents - refs 8730 https://github.com/chamilo/chamilo-lms/issues/8730 by @christianbeeznest https://github.com/christianbeeznest in 8733 https://github.com/chamilo/chamilo-lms/pull/8733 - AI: Add WYSIWYG translations with translate html by @christianbeeznest https://github.com/christianbeeznest in 8734 https://github.com/chamilo/chamilo-lms/pull/8734 - AI: Add terms and conditions translation - refs 8363 https://github.com/chamilo/chamilo-lms/issues/8363 by @christianbeeznest https://github.com/christianbeeznest in 8736 https://github.com/chamilo/chamilo-lms/pull/8736 - Admin: Reuse installed version provider after removing installer - refs 8683 https://github.com/chamilo/chamilo-lms/issues/8683 by @christianbeeznest https://github.com/christianbeeznest in 8737 https://github.com/chamilo/chamilo-lms/pull/8737 - Gradebook: Apply Arabic font to complete result chart - refs 2852 https://github.com/chamilo/chamilo-lms/issues/2852 by @christianbeeznest https://github.com/christianbeeznest in 8738 https://github.com/chamilo/chamilo-lms/pull/8738 - Tools: Fix invalid introduction editor configuration by @christianbeeznest https://github.com/christianbeeznest in 8739 https://github.com/chamilo/chamilo-lms/pull/8739 - Internal: Standardize user-facing tutor terminology - refs 8390 https://github.com/chamilo/chamilo-lms/issues/8390 by @christianbeeznest https://github.com/christianbeeznest in 8740 https://github.com/chamilo/chamilo-lms/pull/8740 - Rooms: Link rooms to sessions and attendances - refs 7541 https://github.com/chamilo/chamilo-lms/issues/7541 by @christianbeeznest https://github.com/christianbeeznest in 8741 https://github.com/chamilo/chamilo-lms/pull/8741 - Learning paths: Report SCORM upload limit errors by @christianbeeznest https://github.com/christianbeeznest in 8744 https://github.com/chamilo/chamilo-lms/pull/8744 - Exercise: Fix numeric string score formatting by @christianbeeznest https://github.com/christianbeeznest in 8745 https://github.com/chamilo/chamilo-lms/pull/8745 - Surveys: Expose invitation learning path context by @christianbeeznest https://github.com/christianbeeznest in 8746 https://github.com/chamilo/chamilo-lms/pull/8746 - API: Support JWT access for Chamilo Mobile by @christianbeeznest https://github.com/christianbeeznest in 8747 https://github.com/chamilo/chamilo-lms/pull/8747 - API: support JWT learning path runtime writes by @christianbeeznest https://github.com/christianbeeznest in 8748 https://github.com/chamilo/chamilo-lms/pull/8748 - Migration: add normalized LP completion fields - refs BT 23461 by @christianbeeznest https://github.com/christianbeeznest in 8646 https://github.com/chamilo/chamilo-lms/pull/8646 - Sf7 ap4 migration by @AngelFQC https://github.com/AngelFQC in 8725 https://github.com/chamilo/chamilo-lms/pull/8725 - Fix CI for php-8.3 + s7 + ap4 by @AngelFQC https://github.com/AngelFQC in 8749 https://github.com/chamilo/chamilo-lms/pull/8749 - Learnpath: Migrate learning path final item runtime by @christianbeeznest https://github.com/christianbeeznest in 8750 https://github.com/chamilo/chamilo-lms/pull/8750 - Fix Symfony container validation errors by @christianbeeznest https://github.com/christianbeeznest in 8751 https://github.com/chamilo/chamilo-lms/pull/8751 - Security: Add File Integrity Monitoring page by @ywarnier https://github.com/ywarnier in 8752 https://github.com/chamilo/chamilo-lms/pull/8752 - Internal: Apply ECS formatting to learning path final item by @christianbeeznest https://github.com/christianbeeznest in 8753 https://github.com/chamilo/chamilo-lms/pull/8753 - Internal: Use AccessDecisionManager instead of Security::isGranted in voters by @AngelFQC https://github.com/AngelFQC in 8756 https://github.com/chamilo/chamilo-lms/pull/8756 - Learnpath: Fix certificate images in PDF export by @christianbeeznest https://github.com/christianbeeznest in 8757 https://github.com/chamilo/chamilo-lms/pull/8757 - Internal: Remove legacy admin table by @christianbeeznest https://github.com/christianbeeznest in 8759 https://github.com/chamilo/chamilo-lms/pull/8759 - Course: Restore course home tools and shortcuts by @christianbeeznest https://github.com/christianbeeznest in 8762 https://github.com/chamilo/chamilo-lms/pull/8762 - Learnpath: Clarify learning path user access modes by @christianbeeznest https://github.com/christianbeeznest in 8763 https://github.com/chamilo/chamilo-lms/pull/8763 - Internal: Rename name fields to title - refs 8326 https://github.com/chamilo/chamilo-lms/issues/8326 by @christianbeeznest https://github.com/christianbeeznest in 8765 https://github.com/chamilo/chamilo-lms/pull/8765 - Internal: Fix stale User admin association by @christianbeeznest https://github.com/christianbeeznest in 8767 https://github.com/chamilo/chamilo-lms/pull/8767 - Internal: migrating PUT operations to PATCH by @AngelFQC https://github.com/AngelFQC in 8766 https://github.com/chamilo/chamilo-lms/pull/8766 - Ticket: Fix ticket creation validation and assignee fallback- refs 8403 https://github.com/chamilo/chamilo-lms/issues/8403 by @christianbeeznest https://github.com/christianbeeznest in 8771 https://github.com/chamilo/chamilo-lms/pull/8771 - MCP: add course authoring and review workflow by @christianbeeznest https://github.com/christianbeeznest in 8770 https://github.com/chamilo/chamilo-lms/pull/8770 - Exercise: Migrate legacy exercise tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8580 https://github.com/chamilo/chamilo-lms/pull/8580 - Course: restore add teachers option mapping by @christianbeeznest https://github.com/christianbeeznest in 8773 https://github.com/chamilo/chamilo-lms/pull/8773 - Mobile: add FCM device registration API by @christianbeeznest https://github.com/christianbeeznest in 8774 https://github.com/chamilo/chamilo-lms/pull/8774 - Mobile: integrate messaging and assignment APIs by @christianbeeznest https://github.com/christianbeeznest in 8775 https://github.com/chamilo/chamilo-lms/pull/8775 - Upgrade Doctrine ORM to 3.x 8723 https://github.com/chamilo/chamilo-lms/issues/8723 by @AngelFQC https://github.com/AngelFQC in 8772 https://github.com/chamilo/chamilo-lms/pull/8772 - Ticket: Fix ticket assignee search and file information by @christianbeeznest https://github.com/christianbeeznest in 8781 https://github.com/chamilo/chamilo-lms/pull/8781 - MCP: Add full OAuth2.1 server feature to enable auto-connect from MCP… by @ywarnier https://github.com/ywarnier in 8780 https://github.com/chamilo/chamilo-lms/pull/8780 - Internal: Add resource language visibility setting by @christianbeeznest https://github.com/christianbeeznest in 8782 https://github.com/chamilo/chamilo-lms/pull/8782 - Migration: support long resource titles by @christianbeeznest https://github.com/christianbeeznest in 8786 https://github.com/chamilo/chamilo-lms/pull/8786 - MCP: complete follow-up tool improvements by @christianbeeznest https://github.com/christianbeeznest in 8787 https://github.com/chamilo/chamilo-lms/pull/8787 - Migration: prepare long resource titles in V200 by @christianbeeznest https://github.com/christianbeeznest in 8788 https://github.com/chamilo/chamilo-lms/pull/8788 - Migration: add safe Ricky certificate processing by @christianbeeznest https://github.com/christianbeeznest in 8789 https://github.com/chamilo/chamilo-lms/pull/8789 - Migration: Fix Ricky exercise runtime and restore quiz question/answer relations - refs BT 23466 by @christianbeeznest https://github.com/christianbeeznest in 8790 https://github.com/chamilo/chamilo-lms/pull/8790 - Refactor: remove client-specific migration identifiers by @christianbeeznest https://github.com/christianbeeznest in 8791 https://github.com/chamilo/chamilo-lms/pull/8791 - Security: add session expiration warning - refs BT 23459 by @christianbeeznest https://github.com/christianbeeznest in 8795 https://github.com/chamilo/chamilo-lms/pull/8795 - Security: MessageAttachment API item GET missing message-ownership check IDOR by @AngelFQC https://github.com/AngelFQC in 8794 https://github.com/chamilo/chamilo-lms/pull/8794 - Security: make session expiration warning configurable by @christianbeeznest https://github.com/christianbeeznest in 8797 https://github.com/chamilo/chamilo-lms/pull/8797 - Migration: remove audited quiz repair migrations by @christianbeeznest https://github.com/christianbeeznest in 8800 https://github.com/chamilo/chamilo-lms/pull/8800 - Security: predictable password reset / email confirmation tokens via api get unique id by @AngelFQC https://github.com/AngelFQC in 8793 https://github.com/chamilo/chamilo-lms/pull/8793 - Resource file deletion via delete variant by @AngelFQC https://github.com/AngelFQC in 8726 https://github.com/chamilo/chamilo-lms/pull/8726 - Security: Authenticated arbitrary resource file read via mismatched resourceFileId by @AngelFQC https://github.com/AngelFQC in 8728 https://github.com/chamilo/chamilo-lms/pull/8728 - Exercise: honor category matrix question limits by @christianbeeznest https://github.com/christianbeeznest in 8802 https://github.com/chamilo/chamilo-lms/pull/8802 - Security: Reflected XSS via access url id/add type attribute breakout in access url edit admin pages by @AngelFQC https://github.com/AngelFQC in 8792 https://github.com/chamilo/chamilo-lms/pull/8792 - Exercise: Fix official code settings for exercise PDF exports and class user ordering - refs 7498 https://github.com/chamilo/chamilo-lms/issues/7498 by @christianbeeznest https://github.com/christianbeeznest in 8805 https://github.com/chamilo/chamilo-lms/pull/8805 - Plugin: CStudio: Add AI-assisted content generation - refs 8785 https://github.com/chamilo/chamilo-lms/issues/8785 by @christianbeeznest https://github.com/christianbeeznest in 8806 https://github.com/chamilo/chamilo-lms/pull/8806 - Learning path: expose authorized SCORM runtime packages by @christianbeeznest https://github.com/christianbeeznest in 8809 https://github.com/chamilo/chamilo-lms/pull/8809 - Learning path: allow ZIP output for SCORM runtime packages by @christianbeeznest https://github.com/christianbeeznest in 8810 https://github.com/chamilo/chamilo-lms/pull/8810 - Security: Stored XSS via inline HTML delivery of social post attachments by @AngelFQC https://github.com/AngelFQC in 8808 https://github.com/chamilo/chamilo-lms/pull/8808 - Security: Missing authorization on ContactCategory CRUD routes by @AngelFQC https://github.com/AngelFQC in 8807 https://github.com/chamilo/chamilo-lms/pull/8807 - Ticket: restore teacher courses and course context by @christianbeeznest https://github.com/christianbeeznest in 8812 https://github.com/chamilo/chamilo-lms/pull/8812 - Course: Migrate course users tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8813 https://github.com/chamilo/chamilo-lms/pull/8813 - User: Migrate course sessions tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8815 https://github.com/chamilo/chamilo-lms/pull/8815 - User: Migrate course classes tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8814 https://github.com/chamilo/chamilo-lms/pull/8814 - Group: Migrate course groups tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8816 https://github.com/chamilo/chamilo-lms/pull/8816 - API Platform: read course context from CidReqHelper and declare cid/sid/gid in the operations LearningPath, Portfolio, Forum, CourseInvitation, Ai, CalendarEvent by @AngelFQC https://github.com/AngelFQC in 8818 https://github.com/chamilo/chamilo-lms/pull/8818 - Course: Migrate course settings tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8820 https://github.com/chamilo/chamilo-lms/pull/8820 - Admin: Migrate global question bank to Vue by @christianbeeznest https://github.com/christianbeeznest in 8821 https://github.com/chamilo/chamilo-lms/pull/8821 - Course: Fix password-protected course entry test by @christianbeeznest https://github.com/christianbeeznest in 8764 https://github.com/chamilo/chamilo-lms/pull/8764 - Settings: Add assignment download fullname option - refs 8286 https://github.com/chamilo/chamilo-lms/issues/8286 by @christianbeeznest https://github.com/christianbeeznest in 8823 https://github.com/chamilo/chamilo-lms/pull/8823 - Needs DB change before merging Work: add parameter to add user fullname in submission download indi… by @NicoDucou https://github.com/NicoDucou in 8285 https://github.com/chamilo/chamilo-lms/pull/8285 - CI: fix special case behat tests and complete with test for existing … by @NicoDucou https://github.com/NicoDucou in 8825 https://github.com/chamilo/chamilo-lms/pull/8825 - Security: Skip unregistered roles in ResourceAclHelper instead of crashing by @addow https://github.com/addow in 8735 https://github.com/chamilo/chamilo-lms/pull/8735 - Fix six export endpoints returning HTTP 500 after the CidReqHelper migration by @AngelFQC https://github.com/AngelFQC in 8826 https://github.com/chamilo/chamilo-lms/pull/8826 - Bump guzzlehttp/guzzle from 7.14.2 to 7.15.3 in the composer group across 1 directory by @dependabot https://github.com/dependabot bot in 8827 https://github.com/chamilo/chamilo-lms/pull/8827 - Gradebook: Add customizable grading modes and forum participation scoring by @AngelFQC https://github.com/AngelFQC in 8583 https://github.com/chamilo/chamilo-lms/pull/8583 - Course: Migrate course reporting tool to Vue by @christianbeeznest https://github.com/christianbeeznest in 8828 https://github.com/chamilo/chamilo-lms/pull/8828 - Admin: Fix document upload skip setting type by @christianbeeznest https://github.com/christianbeeznest in 8829 https://github.com/chamilo/chamilo-lms/pull/8829 - CI: Replace Behat with Playwright by @ywarnier https://github.com/ywarnier in 8796 https://github.com/chamilo/chamilo-lms/pull/8796 - Plugin: CStudio: fix repeated section creation - refs 8822 https://github.com/chamilo/chamilo-lms/issues/8822 by @christianbeeznest https://github.com/christianbeeznest in 8837 https://github.com/chamilo/chamilo-lms/pull/8837 - Reporting: Migrate global reporting suite to Vue by @christianbeeznest https://github.com/christianbeeznest in 8838 https://github.com/chamilo/chamilo-lms/pull/8838 - Flushfix2 by @ywarnier https://github.com/ywarnier in 8836 https://github.com/chamilo/chamilo-lms/pull/8836 - Internal: Write resource tracking events inside the flush transaction by @AngelFQC https://github.com/AngelFQC in 8840 https://github.com/chamilo/chamilo-lms/pull/8840 - Plugin: CStudio: add Chamilo course content blocks - refs 8824 https://github.com/chamilo/chamilo-lms/issues/8824 by @christianbeeznest https://github.com/christianbeeznest in 8841 https://github.com/chamilo/chamilo-lms/pull/8841 - Internal: Fix unnecessary plugin requests by @christianbeeznest https://github.com/christianbeeznest in 8842 https://github.com/chamilo/chamilo-lms/pull/8842 - Survey: Improve survey API error messages by @christianbeeznest https://github.com/christianbeeznest in 8844 https://github.com/chamilo/chamilo-lms/pull/8844 - Editor: Hide personal files in course file manager by @christianbeeznest https://github.com/christianbeeznest in 8847 https://github.com/chamilo/chamilo-lms/pull/8847 - Editor: Fix tiny filemanager navigation by @christianbeeznest https://github.com/christianbeeznest in 8848 https://github.com/chamilo/chamilo-lms/pull/8848 - User: Fix reporting navigation for students by @christianbeeznest https://github.com/christianbeeznest in 8849 https://github.com/chamilo/chamilo-lms/pull/8849 - Document: Fix learning paths folder access in documents by @christianbeeznest https://github.com/christianbeeznest in 8850 https://github.com/chamilo/chamilo-lms/pull/8850 - Learnpath: Fix learning path prerequisites, auto-launch and exercise settings by @christianbeeznest https://github.com/christianbeeznest in 8851 https://github.com/chamilo/chamilo-lms/pull/8851 - Learnpath: Improve learning path student view and exercise workflow by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8855 https://github.com/chamilo/chamilo-lms/pull/8855 - Bump squizlabs/php codesniffer from 3.13.5 to 3.13.6 in the composer group across 1 directory by @dependabot https://github.com/dependabot bot in https://github.com/chamilo/chamilo-lms/pull/8834 https://github.com/chamilo/chamilo-lms/pull/8834 - Course: Fix moodle4 course export import by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8856 https://github.com/chamilo/chamilo-lms/pull/8856 - Install: Add AI Act demo course to new installations by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8857 https://github.com/chamilo/chamilo-lms/pull/8857 - Updater: support V300 migration namespace by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8858 https://github.com/chamilo/chamilo-lms/pull/8858 - Internal: Restore MCP allowed roles value template by @krista445 https://github.com/krista445 in https://github.com/chamilo/chamilo-lms/pull/8843 https://github.com/chamilo/chamilo-lms/pull/8843 - Security: harden PENS remote transport against SSRF by @krista445 https://github.com/krista445 in https://github.com/chamilo/chamilo-lms/pull/8846 https://github.com/chamilo/chamilo-lms/pull/8846 - Plugin: OnlyOffice: restore modern document integrations by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8859 https://github.com/chamilo/chamilo-lms/pull/8859 - OnlyOffice: allow document creation in course root by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8860 https://github.com/chamilo/chamilo-lms/pull/8860 - Plugin: OnlyOffice: improve exercise editor integration by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8861 https://github.com/chamilo/chamilo-lms/pull/8861 - Course: preserve settings in full MBZ restore by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8862 https://github.com/chamilo/chamilo-lms/pull/8862 - Course: Moodle export: resolve stale learning path references by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8863 https://github.com/chamilo/chamilo-lms/pull/8863 - Plugin: CStudio: align editor styling with Chamilo by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8864 https://github.com/chamilo/chamilo-lms/pull/8864 - Plugin: CStudio: improve Chamilo visual integration by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8865 https://github.com/chamilo/chamilo-lms/pull/8865 - Internal: Fix ai act multilingual content by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8866 https://github.com/chamilo/chamilo-lms/pull/8866 - Install: update AI Act course backup by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8867 https://github.com/chamilo/chamilo-lms/pull/8867 - Security: Require teacher rights to reorder course tools by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8868 https://github.com/chamilo/chamilo-lms/pull/8868 - Security: Add central CSRF protection for API Platform and legacy AJAX by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8832 https://github.com/chamilo/chamilo-lms/pull/8832 - Documents: restore embedded images in learning paths by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8869 https://github.com/chamilo/chamilo-lms/pull/8869 - Security: Restrict SessionRelCourseRelUser API operations and scope its collection by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8870 https://github.com/chamilo/chamilo-lms/pull/8870 - Security: Tie UserRelCourseVote writes to the voting user and scope its collection by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8871 https://github.com/chamilo/chamilo-lms/pull/8871 - Security: Require teacher rights to reach the course settings form by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8872 https://github.com/chamilo/chamilo-lms/pull/8872 - Security: Scope the UserRelUser collection to the caller's own relations by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8874 https://github.com/chamilo/chamilo-lms/pull/8874 - Exercise: complete OnlyOffice editing and review - refs 7533 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8876 https://github.com/chamilo/chamilo-lms/pull/8876 - Security: Scope exercise results, tracking rows and user skills to their owner by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8875 https://github.com/chamilo/chamilo-lms/pull/8875 - Security: Require course membership to read a student publication resource by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8877 https://github.com/chamilo/chamilo-lms/pull/8877 - Security: Plugins: Validate the plugin name before using it to build a file path by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8879 https://github.com/chamilo/chamilo-lms/pull/8879 - Security: Onlyoffice: Take the callback document path only from the signed hash by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8881 https://github.com/chamilo/chamilo-lms/pull/8881 - Security: Onlyoffice: Restrict the callback download URL to the configured document server by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8880 https://github.com/chamilo/chamilo-lms/pull/8880 - Learnpath: Fix lp prerequisite scores by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8882 https://github.com/chamilo/chamilo-lms/pull/8882 - MCP: reduce registration log noise by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8883 https://github.com/chamilo/chamilo-lms/pull/8883 - Course: backup: preserve root-level document files by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8884 https://github.com/chamilo/chamilo-lms/pull/8884 - Course: backup: preserve normalized document paths by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8885 https://github.com/chamilo/chamilo-lms/pull/8885 - Install: refresh demo course backups by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8886 https://github.com/chamilo/chamilo-lms/pull/8886 - Course: import: resolve document sidecar path collisions by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8887 https://github.com/chamilo/chamilo-lms/pull/8887 - Install: add demo courses on updates by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8888 https://github.com/chamilo/chamilo-lms/pull/8888 - Ticket: fix reporter confirmation response - refs 8718 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8889 https://github.com/chamilo/chamilo-lms/pull/8889 - Admin: fix password checker bulk actions and speed - refs 8077 https://github.com/chamilo/chamilo-lms/issues/8077 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8890 https://github.com/chamilo/chamilo-lms/pull/8890 - UI: show flash messages after app is ready by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8891 https://github.com/chamilo/chamilo-lms/pull/8891 - Reporting: route catalogue to modern reports - refs 7325 https://github.com/chamilo/chamilo-lms/issues/7325 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8893 https://github.com/chamilo/chamilo-lms/pull/8893 - Plugins: fix PHP 8.2 dynamic property deprecations by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8894 https://github.com/chamilo/chamilo-lms/pull/8894 - Migration: normalize legacy quiz references by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8895 https://github.com/chamilo/chamilo-lms/pull/8895 - Migration: Improve quiz migration links by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8896 https://github.com/chamilo/chamilo-lms/pull/8896 - Admin: Fix report specific target contexts - refs 7325 https://github.com/chamilo/chamilo-lms/issues/7325 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8899 https://github.com/chamilo/chamilo-lms/pull/8899 - Admin: Fix common password scan in password strength checker by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8901 https://github.com/chamilo/chamilo-lms/pull/8901 - Gradebook: migrate legacy tool to Vue and Symfony by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8873 https://github.com/chamilo/chamilo-lms/pull/8873 - User: Fix ask for new password flow - refs 8078 https://github.com/chamilo/chamilo-lms/issues/8078 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8902 https://github.com/chamilo/chamilo-lms/pull/8902 - Security: sanitize chunk file name when finishing an exercise upload answer by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8898 https://github.com/chamilo/chamilo-lms/pull/8898 - Security: whitelist ORDER BY direction in MySpace session overview export by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8897 https://github.com/chamilo/chamilo-lms/pull/8897 - Security: check gradebook category write access against its own course by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8904 https://github.com/chamilo/chamilo-lms/pull/8904 - Security: sanitize forum post body in legacy thread view by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8905 https://github.com/chamilo/chamilo-lms/pull/8905 - Security: cast session id to integer in user export query by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8906 https://github.com/chamilo/chamilo-lms/pull/8906 - Security: sanitize survey title in legacy survey list by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8907 https://github.com/chamilo/chamilo-lms/pull/8907 - Migration: optimize legacy data migrations by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8910 https://github.com/chamilo/chamilo-lms/pull/8910 - Migration: harden legacy reference and resource migrations by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8911 https://github.com/chamilo/chamilo-lms/pull/8911 - Migration: harden legacy quiz reference normalization by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8912 https://github.com/chamilo/chamilo-lms/pull/8912 - Migration: harden partial quiz schema upgrades by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8913 https://github.com/chamilo/chamilo-lms/pull/8913 - Doc API operation query parameters by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8908 https://github.com/chamilo/chamilo-lms/pull/8908 - Migration: harden large legacy upgrades by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8915 https://github.com/chamilo/chamilo-lms/pull/8915 - Migration: bound remaining legacy ORM memory by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8916 https://github.com/chamilo/chamilo-lms/pull/8916 - Reporting: open specific learning path reports - refs 7325 https://github.com/chamilo/chamilo-lms/issues/7325 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8917 https://github.com/chamilo/chamilo-lms/pull/8917 - Studentview param by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8914 https://github.com/chamilo/chamilo-lms/pull/8914 - Plugin: BuyCourses: improve sales export report by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8918 https://github.com/chamilo/chamilo-lms/pull/8918 - Install: restore demo course settings from MBZ by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8919 https://github.com/chamilo/chamilo-lms/pull/8919 - AI: handle empty providers configuration by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8920 https://github.com/chamilo/chamilo-lms/pull/8920 - LP: fix reporting menu item width by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8921 https://github.com/chamilo/chamilo-lms/pull/8921 - Plugin: BBB: reconcile meetings ended outside Chamilo by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8922 https://github.com/chamilo/chamilo-lms/pull/8922 - Internal: Make the student view button the single activation point by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8924 https://github.com/chamilo/chamilo-lms/pull/8924 - Admin: Migrate admin statistics with legacy parity by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8926 https://github.com/chamilo/chamilo-lms/pull/8926 - Internal: Fix the student view Playwright scenarios against the live UI by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8927 https://github.com/chamilo/chamilo-lms/pull/8927 - Mobile API: improve message previews and course picture guidance by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8928 https://github.com/chamilo/chamilo-lms/pull/8928 - Migration: install missing demo courses on update by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8929 https://github.com/chamilo/chamilo-lms/pull/8929 - Mobile API: expose session course tracking metrics by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8930 https://github.com/chamilo/chamilo-lms/pull/8930 - Exercise: accept completed Office document answers by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8931 https://github.com/chamilo/chamilo-lms/pull/8931 - Plugin: BuyCourses: add upgrade CTAs for course limits by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8932 https://github.com/chamilo/chamilo-lms/pull/8932 - Display: fix platform header logo sizing by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8936 https://github.com/chamilo/chamilo-lms/pull/8936 - Ticket: separate active and closed tickets by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8940 https://github.com/chamilo/chamilo-lms/pull/8940 - Security: Restrict session subscription creation to self-service student enrolment by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8933 https://github.com/chamilo/chamilo-lms/pull/8933 - Security: Require edit permission on the resource node when adding a file variant by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8934 https://github.com/chamilo/chamilo-lms/pull/8934 - Security: Gate social post attachment reads on the parent post permission by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8935 https://github.com/chamilo/chamilo-lms/pull/8935 - Security: Make the personal file ownership filter a conjunction by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8937 https://github.com/chamilo/chamilo-lms/pull/8937 - Security: Validate the learning path item before unlocking a hidden course resource by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8938 https://github.com/chamilo/chamilo-lms/pull/8938 - Security: Require course membership for auto-generated survey invitations by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8939 https://github.com/chamilo/chamilo-lms/pull/8939 - Security: Restrict the session course notification to managers and the session own students by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8941 https://github.com/chamilo/chamilo-lms/pull/8941 - Security: Stop exposing the user current portal as a writable API field by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8942 https://github.com/chamilo/chamilo-lms/pull/8942 - Security: Keep peer students from editing or deleting a submission by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8943 https://github.com/chamilo/chamilo-lms/pull/8943 - Security: Require course edit rights to read a document template status by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8944 https://github.com/chamilo/chamilo-lms/pull/8944 - Exercise: accept JSON file answers in runtime by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8946 https://github.com/chamilo/chamilo-lms/pull/8946 - Security: Require the forum thread to belong to the course in the request by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8945 https://github.com/chamilo/chamilo-lms/pull/8945 - MCP: add exercise question regression suite by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8949 https://github.com/chamilo/chamilo-lms/pull/8949 - CI: Raise Psalm to errorLevel 6 by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8950 https://github.com/chamilo/chamilo-lms/pull/8950 - MCP: use modern exercise learning path items by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8951 https://github.com/chamilo/chamilo-lms/pull/8951 - MCP: Feature/mcp exercise topic regression suite by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8952 https://github.com/chamilo/chamilo-lms/pull/8952 - Exercise: fix OnlyOffice runtime file handling by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8953 https://github.com/chamilo/chamilo-lms/pull/8953 - Learnpath: Fix/scorm runtime upload errors by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8956 https://github.com/chamilo/chamilo-lms/pull/8956 - Display: center platform header logo by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8957 https://github.com/chamilo/chamilo-lms/pull/8957 - Learnpath: Add Articulate Rise progress fallback by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8958 https://github.com/chamilo/chamilo-lms/pull/8958 - Working Playwright test suite by @ywarnier https://github.com/ywarnier in https://github.com/chamilo/chamilo-lms/pull/8959 https://github.com/chamilo/chamilo-lms/pull/8959 - Learnpath: Fix SCORM 1.2 incomplete status on finish by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8961 https://github.com/chamilo/chamilo-lms/pull/8961 - Admin: improve users online statistics by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8962 https://github.com/chamilo/chamilo-lms/pull/8962 - Learnpath: Respect SCORM completion-on-leave setting by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8963 https://github.com/chamilo/chamilo-lms/pull/8963 - Learnpath: Detect Rise v2 wrapper package version by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8965 https://github.com/chamilo/chamilo-lms/pull/8965 - Replace abandoned Azure Blob SDK with azure-oss/storage-blob-flysystem by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/8964 https://github.com/chamilo/chamilo-lms/pull/8964 - AI: add Student Success AI Coach by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8966 https://github.com/chamilo/chamilo-lms/pull/8966 - Security: recover remembered session before showing session lost by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8968 https://github.com/chamilo/chamilo-lms/pull/8968 - Migration: fix demo course resource permissions by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8969 https://github.com/chamilo/chamilo-lms/pull/8969 - Exercise: improve next question navigation icon by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8970 https://github.com/chamilo/chamilo-lms/pull/8970 - AI: Make Grok text timeout configurable by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8971 https://github.com/chamilo/chamilo-lms/pull/8971 - Admin: Fix online users presence tracking by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8972 https://github.com/chamilo/chamilo-lms/pull/8972 - Editor: Fix hidden translated HTML content by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8973 https://github.com/chamilo/chamilo-lms/pull/8973 - Mcp: Fix OAuth login redirect flow by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8974 https://github.com/chamilo/chamilo-lms/pull/8974 - Gradebook: Fix Gradebook certificate template workflow by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8975 https://github.com/chamilo/chamilo-lms/pull/8975 - Internal: Fix city extra field labels by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8978 https://github.com/chamilo/chamilo-lms/pull/8978 - AI: Improve course analyzer navigation by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8979 https://github.com/chamilo/chamilo-lms/pull/8979 - Gradebook: Fix Gradebook weight edit permissions by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8980 https://github.com/chamilo/chamilo-lms/pull/8980 - Gradebook: Add default system document templates by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8981 https://github.com/chamilo/chamilo-lms/pull/8981 - 8955 - Finalize Fill the blank question to fit 2.0.3 functionnalities by @chamilo-uga https://github.com/chamilo-uga in https://github.com/chamilo/chamilo-lms/pull/8967 https://github.com/chamilo/chamilo-lms/pull/8967 - Course: Fix Student Success AI Coach feedback by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8983 https://github.com/chamilo/chamilo-lms/pull/8983 - Display: Fix course catalogue filter layout by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8984 https://github.com/chamilo/chamilo-lms/pull/8984 - Admin: Fix default user creation settings by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8986 https://github.com/chamilo/chamilo-lms/pull/8986 - Plugin: Fix IMS/LTI missing translations by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8987 https://github.com/chamilo/chamilo-lms/pull/8987 - Internal: Update development and testing instructions by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8988 https://github.com/chamilo/chamilo-lms/pull/8988 - AI tutor: add platform support mode by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8997 https://github.com/chamilo/chamilo-lms/pull/8997 - Internal: Fix pre-Chamilo 3 content regressions by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8998 https://github.com/chamilo/chamilo-lms/pull/8998 - AI tutor: improve course context and response feedback by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/8999 https://github.com/chamilo/chamilo-lms/pull/8999 - AI tutor: improve context and conversation handling by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9002 https://github.com/chamilo/chamilo-lms/pull/9002 - IA: Student success: localize pedagogical sources by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9003 https://github.com/chamilo/chamilo-lms/pull/9003 - Branch: preserve coordinate precision by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9006 https://github.com/chamilo/chamilo-lms/pull/9006 - MCP: add Student Success feedback tool by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9007 https://github.com/chamilo/chamilo-lms/pull/9007 - Course: Save course AI analysis to messages by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9008 https://github.com/chamilo/chamilo-lms/pull/9008 - Course: Fix AI chat exclusions in migrated tools by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9009 https://github.com/chamilo/chamilo-lms/pull/9009 - Chat: Update AI tutor student guide reference by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9010 https://github.com/chamilo/chamilo-lms/pull/9010 - Plugin: Fix CStudio right sidebar layout by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9011 https://github.com/chamilo/chamilo-lms/pull/9011 - Exercise: Fix multiple answer dropdown selection - refs 8992 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9012 https://github.com/chamilo/chamilo-lms/pull/9012 - Exercise: Fix reading comprehension question parity - refs 8993 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9013 https://github.com/chamilo/chamilo-lms/pull/9013 - Course: Fix default selection for Yes/No extra fields by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9014 https://github.com/chamilo/chamilo-lms/pull/9014 - Intenal: Fix ECS formatting in AI changes by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9015 https://github.com/chamilo/chamilo-lms/pull/9015 - Clean and fix phpunit tests by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/9005 https://github.com/chamilo/chamilo-lms/pull/9005 - Admin: Fix system status diagnostics by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9016 https://github.com/chamilo/chamilo-lms/pull/9016 - Refactor/mcp document creation by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/9018 https://github.com/chamilo/chamilo-lms/pull/9018 - Learnpath: Restore video runtime parity by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9019 https://github.com/chamilo/chamilo-lms/pull/9019 - Exercise: Complete answer feedback parity - refs 2044 https://github.com/chamilo/chamilo-lms/issues/2044 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9021 https://github.com/chamilo/chamilo-lms/pull/9021 - Drop three isset blocks in api get user info from entity that assign a key to itself by @darkdi https://github.com/darkdi in https://github.com/chamilo/chamilo-lms/pull/8991 https://github.com/chamilo/chamilo-lms/pull/8991 - Course: Show course room location on about page by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9022 https://github.com/chamilo/chamilo-lms/pull/9022 - Internal: Harden automated update workflow - refs 5004 https://github.com/chamilo/chamilo-lms/issues/5004 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9023 https://github.com/chamilo/chamilo-lms/pull/9023 - Internal: Fix updater preflight continuity - refs 5004 https://github.com/chamilo/chamilo-lms/issues/5004 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9025 https://github.com/chamilo/chamilo-lms/pull/9025 - Internal: Fix updater prod container compatibility - refs 5004 https://github.com/chamilo/chamilo-lms/issues/5004 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9029 https://github.com/chamilo/chamilo-lms/pull/9029 - Learnpath: Restore AI study helper in Vue runtime by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9032 https://github.com/chamilo/chamilo-lms/pull/9032 - Internal: Track system update package metadata by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9034 https://github.com/chamilo/chamilo-lms/pull/9034 - Course: stabilize resource language selection across course tools - refs 7156 by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9040 https://github.com/chamilo/chamilo-lms/pull/9040 - Admin: fix duplicated slash in system status path by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9041 https://github.com/chamilo/chamilo-lms/pull/9041 - Security: Bind the resource read fallback to real course access by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/9039 https://github.com/chamilo/chamilo-lms/pull/9039 - Security: Check course edit rights on AI document endpoints by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/9038 https://github.com/chamilo/chamilo-lms/pull/9038 - Install: support web upgrades from Chamilo 2.x by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9043 https://github.com/chamilo/chamilo-lms/pull/9043 - Forum: Fix the deletion of a thread whose posts form a parent chain by @AngelFQC https://github.com/AngelFQC in https://github.com/chamilo/chamilo-lms/pull/9042 https://github.com/chamilo/chamilo-lms/pull/9042 - Search: silence quiz indexing when Xapian is disabled by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9045 https://github.com/chamilo/chamilo-lms/pull/9045 - Install: load exact locale translations in requirements by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9046 https://github.com/chamilo/chamilo-lms/pull/9046 - Plugin: CStudio: fix legacy block icons in right palette by @christianbeeznest https://github.com/christianbeeznest in https://github.com/chamilo/chamilo-lms/pull/9050 https://github.com/chamilo/chamilo-lms/pull/9050 New Contributors - @krista445 https://github.com/krista445 made their first contribution in https://github.com/chamilo/chamilo-lms/pull/8843 https://github.com/chamilo/chamilo-lms/pull/8843 - @darkdi https://github.com/darkdi made their first contribution in https://github.com/chamilo/chamilo-lms/pull/8991 https://github.com/chamilo/chamilo-lms/pull/8991 Full Changelog : v2.0.0...v3.0.0