Skip to content

Conversation

@joe-replin
Copy link
Contributor

@joe-replin joe-replin commented Oct 29, 2025

Fix

  • Fixed course loading stuck in infinite spinning by properly managing wait states
  • Fixed statement validation errors showing "undefined" in verb.display and object.definition.name
  • Resolved Spoor/xAPI offlineStorage conflict (disabled Spoor for this branch)

Update

  • Enhanced StatementModel.send() with async/await, 3-retry logic (2s, 5s, 10s intervals), and 20-second timeout
  • Improved StateModel to be non-blocking when LRS unavailable, allowing course to load with LRS failures
  • Refactored LaunchModel with proper wait management and Rustici launch parameter handling
  • Enhanced error handling with detailed fetch error logging and user notifications throughout

New

  • Added _debugModeEnabled configuration flag with color-coded console logging utility (slogf())
  • Added _contentRelease and _revision fields to track course version information
  • Implemented sendCriticalStatement() method for completion/termination statements with fetch keepalive
  • Added statement failure error notifications with _statementFailures tracking option

Testing

  1. Build course with grunt build
  2. Launch with LRS endpoint configured (e.g., Learning Locker)
  3. Verify xAPI initialization, LRS connection, and statements send successfully
  4. Test with _debugModeEnabled: true to see color-coded console logging
  5. Test error handling by temporarily disabling LRS - course should load with error notifications
  6. Complete course and verify critical statements send with keepalive

@joe-replin joe-replin changed the title New: Plug-in Enhancements & Offline Queue (fixes #36) New: PR#1 Plug-in Enhancements (fixes #36) Nov 7, 2025
This was linked to issues Nov 7, 2025
@joe-replin joe-replin linked an issue Nov 10, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Potential race condition when loading state Add Enhancements to Plug-in improve error notifications

2 participants