- 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.
10 days ago
Refactor code structure for improved readability and maintainability
- 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.
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.
13 days ago
feat: Implement speech evaluation service and verb game mechanics
- 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.
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.
- 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.
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.
17 days ago
Add story playback feature with voice integration and UI updates
- Updated the assertion in test_workbook_lesson_1 to include lesson IDs "1", "2", and "free".
- Added a new test function test_workbook_lesson_2 to validate categories and phrases for lesson 2, including checks for specific translations and variants.
Enhance Hebrew phrase handling by adding support for pointed text in prompts and updating related tests