- Updated the logo animation in `logo-intro.svg` to enhance visual effects and timing.
- Changed the service worker cache version from v7 to v17 and removed an unused logo file.
- Adjusted test cases to reflect the updated logo path.
- Introduced a new `live.py` module to manage live class sessions, including session creation, participant management, and question handling.
- Added tests for the new live session functionality to ensure correct behavior for student participation and session lifecycle.
Update service worker cache version and add new logo assets
- Changed cache version from v3 to v7 in service-worker.js.
- Added new logo assets: logo-intro-alt.svg and logo-math.svg.
- Updated trace.html to include a new exemption name for onset transient.
- Added tests for onset transient behavior in test_scoring.py.
7 days ago
Enhance scoring and training scripts with new features and benchmarks
- Updated test_scoring.py to include subject handling in save_class and added assertions for progress tracking.
- Modified finetune.py to introduce new command-line arguments for layer training, optimizer selection, gradient checkpointing, and maximum training steps.
- Added minerva_benchmark.py for benchmarking phoneme models on Minerva lines, including false flag detection and planted mistake scoring.
- Created minerva_dataset.py to cut reviewed Minerva lines into a training set, ensuring a proper split by video and maintaining CSV compatibility for training.
fix: adjust word_min_weight and gop leniency for improved scoring accuracy
- Implemented a new KeyStore class to handle API keys securely, encrypting them and ensuring they are never exposed.
- Added functionality to load, save, and clear keys, with validation against their respective providers.
- Created tests for the KeyStore to ensure keys are stored encrypted, swapped in place, and reverted to environment variables when cleared.
- Updated existing tests to include checks for new functionality related to API keys and tutor model management.
feat: enhance flagging system to retain audio recordings in private storage
- Updated the flagging process to no longer store user audio recordings, retaining only structured diagnostics.
- Modified the `add_flag` method to accept only the row data without audio parameters.
- Adjusted related API endpoints and tests to reflect the removal of audio storage.
- Updated documentation to clarify changes in flagging behavior and data storage.
9 days ago
Enhance GOP pooling and grading pipeline with new rules and configurations
- Updated `gop-pooling.md` to clarify the context for consonants in token alignment.
- Added new grading rules for unmarked short vowels, final b devoicing, and word-final vowel linking in `grading-pipeline.md`.
- Modified `trace-schema.ts` to include new exemptions in the TraceConfig interface.
- Enhanced UI in `trace.html` and `index.html` to support new frame playback features and display additional exemption information.
- Improved tests in `test_gop_pooling.py`, `test_scoring.py`, and `test_minerva_import.py` to validate new grading rules and ensure correct behavior of the scoring system.
Refactor tutor game references from "בחכי ערבי" to "ערבוט" across application files; update access management features and permissions handling in the management panel; enhance user interface for access permissions; add access management functionality in the management system; improve test setup for authentication.
- Removed hardcoded video data and replaced it with dynamic loading from `data/minerva_metadata.json`.
- Updated the `phrases` function to handle metadata and return structured data for each reviewed line.
- Modified command-line arguments to allow importing specific YouTube IDs.
- Enhanced validation checks to ensure the integrity of imported lines.
- Updated tests to reflect changes in the import logic and ensure coverage for new functionality.
feat: add TUTOR_MODEL environment variable and update tutor initialization
- Implement tests to verify lesson scenarios and their corresponding lines.
- Ensure vocabulary expands correctly with each lesson.
- Validate conversation flow, including turn handling and summary generation.
- Test for new words and their recognition in lessons.
- Check that corrections without changes are ignored.
- Confirm that only teachers can initiate sessions until opened.
- Validate daily limits based on stored data.
- Ensure conversations are restricted to the respective students.
- Implement input validation for start parameters.
- Handle refused answers appropriately without counting them.
Add tests for GOP pooling and windowing functionality
- Implemented tests for GOP frame pooling in `test_gop_pooling.py` to validate the scoring of synthetic CTC emissions, including various scenarios for vowel and consonant recognition.
- Created tests for class-based GOP windows in `test_gop_window.py`, ensuring proper handling of vowel and consonant transitions, substitutions, and deletions.
- Added a test for the Minerva import functionality in `test_minerva_import.py` to verify the integrity of the pilot manifest and associated phrases.
10 days ago
Add comprehensive tests for lab functionality and scoring
- Introduced a new test suite in `tests/test_lab.py` to validate the lab scoring system.
- Implemented mock classes for TTS and authentication to facilitate testing.
- Added tests for item validation, lab scores, flagging, and rescore functionality.
- Verified the integration of TTS with lab scoring and ensured proper handling of audio files.
- Included benchmarks for false rejections and caught mistakes in scoring.
11 days ago
feat: enhance TTS functionality with dialogue speaker support and update guide content
- Implemented a test to verify conservative calibration for deleted 'ayin' phoneme.
- Updated the expected categories for workbook lessons 1, 2, and others to reflect new structure.
- Added a new test for validating new words in workbook lessons.
- Ensured that all lessons correctly filter out word topics in category assertions.
- Implemented `arabic_diacritics.py` to add Arabic vowel marks to words based on their IPA pronunciation.
- Created tests for the diacritics functionality in `test_arabic_diacritics.py`, covering various cases including short and long vowels, gemination, and phrase handling.
- Updated grading pipeline documentation to include detailed explanations of the scoring process and audio handling.
feat: add support for natural vowell initial form in 'ana' pronoun and corresponding test
- Updated pronunciation rules in `pronunciation-rules.md` to clarify the handling of shwa and kubutz sounds, including new examples and scoring rules.
- Modified `index.html` to integrate scoring rules display, allowing teachers to toggle rules on and off.
- Added tests in `test_scoring.py` to verify the functionality of newly implemented scoring rules and their impact on pronunciation scoring.
- Introduced a new script `compare_verbs.py` to check the phonemes of Arabic verbs against the scorer's expectations, ensuring consistency in pronunciation handling.
Add unit tests for pronunciation rules parsing and detection
- Implement tests to ensure all YAML blocks in pronunciation-rules.md are parsed correctly into rules.
- Verify that every heard symbol has a corresponding Hebrew label.
- Check correct realizations per letter and dialect associations.
- Report undetectable rules and validate their detection status.
Refactor scoring tests and add pronunciation rules documentation
- Updated test_sign_in_guards_the_practice_endpoints to reflect changes in scoring logic for unmatched recordings.
- Enhanced test_spoken_questions_keep_expected_forms_server_side to assert additional properties of speech phrases.
- Introduced a new markdown file for pronunciation rules tailored for Hebrew speakers learning Palestinian Arabic, detailing articulation, dialect differences, and self-practice guidelines.
12 days ago
fix: remove unused pronunciation adjustments for Palestinian past forms in TTS
- Updated privacy policy to clarify that regular student recordings are not stored, with exceptions for teacher-reported issues.
- Revised the description of data retention for practice sessions to include technical summaries of sound analysis.
- Added tests for phrase calibration to ensure correct handling of confusion cases and scoring.
- Implemented additional test cases for flagging recordings and managing calibration statuses, including creation, updating, and deletion of calibrations.
feat: enhance video library management with renaming and ordering functionality
- Add SpeechEvaluationService for handling speech scoring with uncertainty management.
- Introduce verb game mechanics for generating exercises and server-side checking for "פועל יוצא" levels 1-5.
- Create tests for speech evaluation and verb game functionalities to ensure correctness and reliability.
- Enhance existing test suite with new scenarios for tutor and student interactions in the scoring system.
14 days ago
fix: update course level names from "רמה" to "שלב" for consistency
- Updated lesson IDs and categories for level 2 workbook lessons 1-9.
- Added new phrases and tasks for lessons 2.1 to 2.9.
- Adjusted assertions to reflect changes in lesson structure and content.
- Ensured consistency in phrase translations and tasks across lessons.
- Introduced a new structure for handling daily videos, allowing classes to assign videos with specific dates.
- Updated the `save_class` method to accommodate daily video assignments.
- Added methods for adding, deleting, and retrieving daily videos.
- Modified tests to validate the functionality of daily video management, including error handling for invalid inputs.
- Ensured that daily videos are correctly associated with classes and accessible to teachers.
Enhance status messages and lesson assertions in the application
- Updated the status message to dynamically reflect whether the conversation or story has ended.
- Modified the lesson assertions in the scoring tests to include additional lesson IDs for consistency.
- Added new tests for workbook lessons 3, 4, 5, 6, 7, 8, 9, and 10 to ensure comprehensive coverage of lesson content and structure.
- Ensured that the story and task assertions in the tests accurately reflect the expected content and format.
feat: update Vimeo embed URLs to hide branding and titles for improved user experience
- Updated the class model to support multiple homeworks, each with its own due date.
- Modified the API to handle the new homeworks structure, allowing for multiple topics per class.
- Adjusted the frontend to display and manage multiple homeworks, including UI changes for adding and editing homeworks.
- Updated tests to cover the new homework functionality, ensuring proper handling of multiple homeworks and validation.
- Introduced a new topic type "write" for homework, allowing students to write sentences in Arabic.
- Updated the LESSONS and WRITING structures to accommodate the new homework type.
- Enhanced the UI to support writing tasks, including a dialog for input and display of written sentences.
- Implemented functionality to save and retrieve written sentences for students, ensuring data persistence across devices.
- Updated privacy policy to reflect the storage of written homework in Supabase.
- Added tests to verify the new writing functionality and ensure proper handling of homework submissions.
Add text handling functionality and update scoring tests
- Introduced a new module `texts.py` to manage text entries added by teachers, including story and dialogue formats.
- Implemented functions for processing Arabic text transliterations, phonetics, and reading rules.
- Enhanced the scoring tests in `test_scoring.py` to accommodate the new text functionalities, including adding, deleting, and ordering texts alongside videos.
- Updated API endpoints to handle content that includes both videos and texts, ensuring proper validation and response handling.
fix: update video API to restrict URL access for students
- Implemented functionality for teachers to add, order, and delete lesson videos in the management panel.
- Introduced new API endpoints for video operations, including adding videos, ordering them, and deleting them.
- Updated the frontend to display videos alongside lesson topics, allowing teachers to manage their placement.
- Enhanced privacy policy to include Vimeo as a service used for hosting lesson videos.
- Added tests to ensure proper functionality of video management features and access controls.
- Added assertions to verify the handling of recordings and tries for classes based on their opening times.
- Implemented checks for unmatched recordings and their impact on scoring summaries.
- Ensured that the state of student records reflects accurate counts of best scores, tries, and unmatched recordings.
- Updated tests to cover scenarios where classes are opened after recordings are made.
Enhance class management in scoring tests: add homework and due date handling
- Updated `save_class` method to include optional homework and due date parameters.
- Adjusted assertions in tests to verify homework and due date functionality for classes.
- Ensured homework is correctly assigned and displayed for students based on class lessons.
- Added validation for homework and due date in class creation to prevent incorrect submissions.
- Enhanced test coverage for class management scenarios involving homework.
Refactor tests to account for lesson visibility and class lesson assignments
- Updated assertions in `test_api_end_to_end_with_stub_model` to check for lessons that are not marked as "soon" and added checks for the number of lessons and levels.
- Modified `test_workbook_lesson_1` to filter out lessons marked as "soon" when asserting lesson IDs.
- Introduced `test_levels_plan_every_lesson` to validate lesson and level relationships, ensuring all lessons are accounted for in their respective levels.
- Enhanced `test_sign_in_guards_the_practice_endpoints` to include lesson assignments in class creation and retrieval, ensuring students see the correct lessons based on their class memberships.
- Adjusted assertions to reflect changes in class and lesson handling, ensuring proper validation of class creation and student visibility.
- Added functionality for teachers to create, edit, and delete classes.
- Updated authentication to restrict access based on class enrollment.
- Modified user response to include class information for signed-in students.
- Enhanced UI to display class details and student lists.
- Removed the ALLOWED_EMAILS environment variable as class enrollment now governs access.
- Introduced error handling for class conflicts and missing class data.
17 days ago
Add teacher management panel functionality and related configurations