- Added push notification functionality in app/push.py to notify phones when a photo of an answer is requested from the computer.
- Created a new service worker (static/service-worker.js) to handle push notifications.
- Introduced a new database table (supabase/migrations/20261103180000_math_push_subs.sql) to store push subscriptions.
- Updated the frontend (static/math.js, static/math.css) to remove phone pairing functionality and adjust UI accordingly.
- Removed related tests (tests/test_phone_browser.py) and added new tests for push notifications (tests/test_push.py).
- Ensured proper handling of push subscription lifecycle and error cases.
14 days ago
feat: Implement grading functionality for handwritten answers
Your Name
6f5ba40
- Added `grade` method to `AnswerScans` class for initiating grading actions.
- Enhanced error handling for grading limits and busy states in the grading process.
- Updated `public_result` function to clean up grading-related fields from results.
- Introduced new grading verification tests to ensure correct behavior of grading API.
- Created `AnswerGrader` class to handle grading logic and validation of assessment results.
- Added database migration for `math_answer_grades` table to store grading results.
- Updated front-end JavaScript to handle grading states and display results appropriately.
- Enhanced CSS styles for grading feedback display.
- Implemented comprehensive tests for grading functionality, including edge cases and error handling.
feat: add additive answer-scanning schema and related functionality
Your Name
f14ef69
- Introduced new JavaScript file for shared camera preparation for answer scans.
- Created new tables in the Supabase database for managing math question attempts, answer scans, and attachments.
- Implemented row-level security and policies for data access control.
- Added a new RPC function for handling answer scans, including actions for creating, confirming, and finalizing scans.
- Developed tests for the new functionality, ensuring proper handling of answer scans, including retries and error management.
- Established a local testing environment with PostgreSQL and integrated Playwright for end-to-end testing of the answer scanning process.
18 days ago
Remove obsolete test files and training scripts for phoneme CTC model on Palestinian Arabic recordings
- Implemented a new MCP connector for managing library videos through Grok.
- Added authentication middleware for the MCP endpoint using a dedicated bearer token.
- Introduced tools for listing, preparing, publishing, and renaming library videos.
- Ensured input validation and duplicate checks for video titles and URLs.
- Implemented an approval system for publishing videos with expiration and single-use constraints.
- Refactored library operations into shared helpers to maintain consistency across API and MCP tools.
- Updated requirements to include the official MCP SDK and anyio for compatibility.
- Added comprehensive tests for the new MCP functionality and ensured existing library API compatibility.
- Updated promo.html to improve layout and styling for new features, including enhanced word display and interaction elements.
- Modified promo.py to include new marks for user interactions and improved timing for screen recordings.
- Adjusted index.html to refine lesson continuation logic and ensure proper voice configuration for TTS.
- Enhanced test cases for Arabic diacritics and learner home browser to validate new story resumption logic and TTS playback configurations.
- Added tests for TTS endpoint to ensure proper audio serving and voice ID handling.
- Introduced a new OpenSpec configuration for the Grok library MCP.
21 days ago
feat: add support for measuring long vowels said short by duration
- Implemented a mechanism in the scorer to evaluate long vowels pronounced short based on their duration, following rule 3.8.
- Updated the Rules class to include a new length attribute for tracking long vowel duration.
- Enhanced the scoring logic to incorporate checks for shortened long vowels and adjusted the scoring stages accordingly.
- Added tests to validate the new functionality, ensuring that long vowels pronounced short are flagged correctly and that the scoring reflects this.
- Updated documentation to reflect changes in pronunciation rules and scoring behavior.
- Introduced a new audio storage test suite to verify audio migration and storage functionality.
- Implemented promo.py to record and render a promotional video for the app, utilizing Playwright for screen recording and frame manipulation.
- Created promo.html for displaying the recorded frames in a 3D iPhone interface with animated captions.
- Added tests for the Nakdan module to ensure correct handling of Hebrew niqqud and caching behavior.
- Developed tests for the Push module to validate subscription management and notification sending logic.
27 days ago
Add keystore for managing API keys securely and update tests
- 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.
28 days ago
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.
- 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.
- 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 deployment metadata display for teacher panel with versioning and commit info
- 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.
- 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.
Add teacher management panel functionality and related configurations