Commit Graph

7 Commits

Author SHA1 Message Date
6cafb9218b Fix StoryReader compatibility and memory leak issues
🔧 Changes:
- StoryReader now handles both old/new text structures (original_language vs content)
- Fixed memory leak: properly remove global event listeners on destroy
- Added null check in _hideWordPopup() to prevent errors after DOM cleanup
- Fixed chapter list display (was showing only one chapter instead of all)
- Smart routing: only load chapter content when needed
- Use module ContentLoader for proper content loading with vocabulary

🐛 Bugs Fixed:
1. "Cannot read properties of undefined (reading 'split')" - StoryReader couldn't handle texts with 'content' field
2. "Cannot read properties of null (reading 'style')" - Event listeners firing after game cleanup
3. Chapter list showing only book ID instead of all chapters
4. Game compatibility scores dropping to 0.00 after navigation

 Architecture Improvements:
- Event listener cleanup follows best practices
- Proper handler reference storage for removeEventListener
- Defensive programming with null checks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 09:33:16 +08:00
3da40c0d73 Save current state before exploring first DRS commit
Preserving current work:
- Modified DRS modules and factories
- Updated content and progress tracking
- Deprecated PhraseModule moved to archive

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-12 08:47:23 +08:00
13f6d30e86 Implement robust progress system with ultra-strict validation
**Core Architecture:**
- StrictInterface: Base class with visual error enforcement (red screen, sound, shake)
- ProgressItemInterface: Strict contract requiring 4 methods (validate, serialize, getWeight, canComplete)
- Implementation validation at startup - app refuses to start if methods missing

**Progress Items (8 types with realistic weights):**
- VocabularyDiscoveryItem (1pt) - Passive word exposure, no prerequisites
- VocabularyMasteryItem (1pt) - Active flashcards, requires discovery
- PhraseItem (6pts, 3x vocab) - Requires vocabulary mastery
- DialogItem (12pts, 6x vocab) - Complex, requires vocabulary mastery
- TextItem (15pts, 7.5x vocab) - Most complex, requires vocabulary mastery
- AudioItem (12pts, 6x vocab) - Requires vocabulary mastery
- ImageItem (6pts, 3x vocab) - Requires vocabulary discovered
- GrammarItem (6pts, 3x vocab) - Requires vocabulary discovered

**Realistic Progress Calculation:**
- 1 vocab word = 2 points total (discovery + mastery)
- Other items weighted 3x-7.5x heavier for realistic progression
- Example: 171 vocab (342pts) + 75 phrases (450pts) + 6 dialogs (72pts) + 3 texts (45pts) = 909 total points
- Discovering all words = 38% progress (not 76%)

**Services:**
- ContentProgressAnalyzer: Scans chapter content, creates progress items, calculates total weight
- ProgressTracker: Manages state, tracks completion, saves progress to server
- ImplementationValidator: Validates all implementations at startup

**Integration:**
- Application.js validates ALL item implementations before startup
- Missing methods trigger full-screen red error with impossible-to-ignore UI
- Sound alert + screen shake in dev mode

**Pedagogical Flow Enforced:**
Discovery (passive) → Mastery (active) → Application (context)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 15:26:42 +08:00
f5cef0c913 Add comprehensive testing suite with UI/UX and E2E integration tests
- Create complete integration test system (test-integration.js)
- Add UI/UX interaction testing with real event simulation (test-uiux-integration.js)
- Implement end-to-end scenario testing for user journeys (test-e2e-scenarios.js)
- Add console testing commands for rapid development testing (test-console-commands.js)
- Create comprehensive test guide documentation (TEST-GUIDE.md)
- Integrate test buttons in debug panel (F12 → 3 test types)
- Add vocabulary modal two-progress-bar system integration
- Fix flashcard retry system for "don't know" cards
- Update IntelligentSequencer for task distribution validation

🧪 Testing Coverage:
- 35+ integration tests (architecture/modules)
- 20+ UI/UX tests (real user interactions)
- 5 E2E scenarios (complete user journeys)
- Console commands for rapid testing
- Debug panel integration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 23:04:38 +08:00
a6c81a8ec3 Implement Intelligent QCM system with AI-generated plausible distractors
- Transform ContentLoader from hardcoded QCM to AI-powered exercises
- Remove all mock content generators (_generateTextExercise, etc.)
- Add pure AI content generation with 6-option QCM (1 correct + 5 distractors)
- Create intelligent distractors testing common learning mistakes:
  * Text: main idea confusion, partial truths, logical but wrong conclusions
  * Audio: mishearing, speaker confusion, context misunderstanding
  * Image: object similarity, spatial confusion, descriptive errors
  * Grammar: common errors, tense mistakes, wrong constructions
- Reduce random success chance from 25% to 16.7% for better learning assessment
- Make AI mandatory - no fallback without IAEngine availability
- Update CLAUDE.md plan with dual exercise approach documentation
- Fix async/await issues in ContentLoader module loading chain

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 10:47:48 +08:00
05142bdfbc Implement comprehensive AI text report/export system
- Add AIReportSystem.js for detailed AI response capture and report generation
- Add AIReportInterface.js UI component for report access and export
- Integrate AI reporting into LLMValidator and SmartPreviewOrchestrator
- Add missing modules to Application.js configuration (unifiedDRS, smartPreviewOrchestrator)
- Create missing content/chapters/sbs.json for book metadata
- Enhance Application.js with debug logging for module loading
- Add multi-format export capabilities (text, HTML, JSON)
- Implement automatic learning insights extraction from AI feedback
- Add session management and performance tracking for AI reports

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 21:24:13 +08:00
38920cc858 Complete architectural rewrite with ultra-modular system
Major Changes:
- Moved legacy system to Legacy/ folder for archival
- Built new modular architecture with strict separation of concerns
- Created core system: Module, EventBus, ModuleLoader, Router
- Added Application bootstrap with auto-start functionality
- Implemented development server with ES6 modules support
- Created comprehensive documentation and project context
- Converted SBS-7-8 content to JSON format
- Copied all legacy games and content to new structure

New Architecture Features:
- Sealed modules with WeakMap private data
- Strict dependency injection system
- Event-driven communication only
- Inviolable responsibility patterns
- Auto-initialization without commands
- Component-based UI foundation ready

Technical Stack:
- Vanilla JS/HTML/CSS only
- ES6 modules with proper imports/exports
- HTTP development server (no file:// protocol)
- Modular CSS with component scoping
- Comprehensive error handling and debugging

Ready for Phase 2: Converting legacy modules to new architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 07:08:39 +08:00