Commit History
6 days ago
-
feat: add "מרוץ גמלים" (Camel Race) game for teachers, including API endpoints and frontend integration
- Implemented the Camel Race game logic in a new `camel_race.py` file. - Added API endpoints for fetching race items and TTS functionality. - Updated frontend to include game setup and interaction for teachers. - Enhanced permission checks to ensure only teachers can access the game. - Updated tests to cover new game functionality and ensure proper access control. - Modified existing features to include the new game in access permissions and UI elements.bc4aa97
13 days ago
-
Refactor Hebrew phoneme mapping and enhance test coverage
- Updated the Hebrew phoneme mapping in `trace.html` to correct the representation of the letter "ד" with a rafe. - Modified `conftest.py` to ensure no sensitive environment variables are set during tests. - Enhanced the `test_learner_home_browser.py` to include additional assertions for verb grouping and visibility of elements. - Expanded `test_monitoring.py` to include checks for reliability index coverage and error reporting. - Added tests in `test_scoring.py` to handle edge cases with vowels and their impact on scoring. - Introduced a new script `backfill_flag_links.py` to link historical score reports to attempts based on specific criteria. - Created tests for the new backfill functionality in `test_backfill_flag_links.py`. - Implemented telemetry for authentication failures in `test_auth_failure_telemetry.py`. - Added linkage tests for reports in `test_flag_linkage.py` to ensure proper association with attempts.611de4c
15 days ago
-
fix(mcp): diagnose and survive failed MCP calls (-32603)
A Supabase connection dropped mid-response raised RemoteDisconnected, which the auth layer did not catch. In the per-request token check that escaped as a bare HTTP 500, which MCP clients report as "-32603 Internal error". - auth: treat dropped/reset connections as AuthUnavailable; retry a dropped read (GET) once, never a write - mcp: per-request diagnostics (app/mcp_diagnostics.py): one `mcp_request` log line per call with request id, method, tool, auth result, timings and failure category; redacted tracebacks; X-Request-Id header and `ref <id>` in client-facing errors; no tokens, arguments or learner data logged - mcp: Supabase outage during verification is a retryable 503 (still denied) instead of a 401 that makes clients drop a valid token - mcp: tool crashes return {ok:false, error_category, request_id} - mcp: serve /mcp without redirecting to http:// behind the Space proxy - access: one shared mcp_access_decision; tolerate a missing user email - scripts/check_mcp_acces…4e8ad95
17 days ago
-
fix: Update text references in demo video scripts and adjust cover image size
5012b7a
18 days ago
-
chore: remove Mathly cross-deployment
c3a5f92 -
Add script for generating installation demo videos for iOS and Android
- Introduced a new Python script `install.py` in the `scripts/demo_video` directory. - The script captures screenshots of the app's first screen on both iPhone and Android devices. - It supports generating video files from the captured images using FFmpeg. - Added command-line arguments for specifying the app URL, target OS, output directory, and specific frames to capture.fa24f80
19 days ago
-
Enhance demo video and TTS integration
- 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.4d3eef0
20 days ago
-
feat: update demo video scripts and HTML for improved functionality and user experience
fa4aab8 -
Add tests for models tab and POWSM ONNX export, and implement fine-tuning for POWSM-CTC
- Created `test_models_tab.py` to verify the functionality of the models tab, including model switching and settings management. - Introduced `test_powsm_onnx.py` to test the POWSM ONNX export functionality, ensuring correct handling of model exports and environmental configurations. - Developed `finetune_powsm.py` for fine-tuning the POWSM-CTC model on Palestinian Arabic recordings, including support for dynamic padding and training configurations.d90ca95 -
feat: enhance scoring logic to handle reference noise and improve learner feedback
b145821 -
feat: enhance shadda rendering in complete-path labels
- Updated the learner home browser tests to support mobile rendering of shadda-bearing Hebrew letters. - Added a new test to ensure correct rendering of shadda in complete-path labels on mobile devices. - Modified the scoring logic to ensure that baseline references only compensate for substitutions when the reference also lost the sound. - Introduced a requirement for evidence before showing substitution tips, ensuring that tips are only displayed when the competing sound has sufficient acoustic evidence. - Documented design decisions and migration plans for the changes related to shadda rendering and baseline forgiveness in the respective markdown files. - Added new specifications and tasks to ensure thorough testing and validation of the new behavior.0c674a8
21 days ago
-
feat: implement home component rendering and enhance lesson display logic
5e9b127 -
Add requirements browser and diagram rendering enhancements
- Introduced a local, read-only requirements browser for inspecting OpenSpec specifications and changes, ensuring it operates solely on the loopback interface. - Implemented a standalone Python server for the requirements browser, utilizing OpenSpec CLI output for project inventory and ensuring all reads are confined to resolved paths. - Developed structured JSON responses and a responsive HTML/CSS/JavaScript interface for the requirements browser, focusing on accessibility and usability. - Enhanced the Atlas to render fenced `mermaid` diagrams as visual representations while preserving the original source as inert text, ensuring no external dependencies or interactive elements are introduced. - Added a pinned Mermaid library for local rendering of diagrams, with strict security configurations to prevent any active content from being executed. - Ensured that all new features maintain the existing read-only and local-only boundaries of the Atlas, with comprehensive testing for functiona…7123d5f -
feat: add local requirements browser for OpenSpec
- Introduced a read-only local browser interface for inspecting OpenSpec capabilities, requirements, and changes. - Implemented a standalone Python module to serve the browser and handle OpenSpec CLI commands. - Created a structured HTML/CSS/JavaScript interface for displaying specifications and active changes. - Added functionality for searching and navigating requirements without modifying any OpenSpec artifacts. - Included comprehensive tests to ensure the reliability of the new browser and its integration with existing OpenSpec functionality.52ba002
22 days ago
-
Add script to create promotional booklet video assets
This commit introduces a new Python script, `make_book.py`, which generates the cover and pages for a promotional booklet video. The script processes a cover photo by straightening it and applying a white overlay to a stage line, and it extracts pages from a provided PDF using the `pdftoppm` utility. The output includes a JPEG cover and individual page images, facilitating the creation of a video showcasing the booklet.2d2e873 -
feat(tts): implement tts_arabic function for improved Arabic pronunciation handling and update references
6b773fd -
Add promo video generation scripts and tests
- 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.670a451
23 days ago
-
feat(auth): increase MAX_MONITOR_ATTEMPTS for improved pronunciation pattern sampling
feat(main): update class progress handling to retain student history across classes feat(index): enhance logout button styling for better accessibility and visibility test: adjust assertions to reflect changes in class progress tracking and student data252b1a8 -
feat(scoring): measure against فدوى too, and show every native baseline in the trace dashboard
- The native baseline now uses two TTS voices: ראאף (generated on demand) and فدوى (used when cached). Each sound is still measured against the lowest score any voice got on it. - References are read with wav_for_voice: wav() turned any voice outside playback into ראאף. - Each Reference carries its voice name; the trace keeps every voice's score per sound (baseline stage `refs`, references[].voice). - Trace dashboard: a row per voice under each sound (the voice used in bold), a marker per voice on the waterfall's baseline step, per-voice tooltip and table columns. - The mock trace has two voices. Bench on 2,828 lab recordings (all said right): false rejections 3.6% -> 2.9% (ħ 6.0 -> 2.8%, h 9.7 -> 5.4%, ɣ 20.6 -> 12.5%, ʕ 12.5 -> 9.5%). Detection is not measured: the lab has no recordings with a planted mistake yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>b6579f5 -
Update demo video duration and enhance logo animation
- Updated the demo video duration from 82 seconds to 97 seconds in README.md. - Adjusted the logo animation timing in record.py to ensure it holds until the dots settle. - Enhanced the SVG logo animation with new keyframes and clip paths for improved visual effects. - Updated service worker cache version from v19 to v21 for better asset management.ee6bcf6
24 days ago
-
feat(demo_video): add demo video recording and voiceover functionality
- Updated service worker cache version to v19. - Created a new directory for demo video scripts and added .gitignore. - Added README.md for demo video instructions, including setup and usage. - Implemented make_takes.py to generate student voice takes using TTS. - Developed make_voice.py to create Hebrew voiceovers from script lines. - Introduced music.py to synthesize background music for the demo video. - Added overlay.js for captioning and tap effects during the demo. - Created record.py to handle the recording of the demo video with sound and captions. - Defined script.py to manage captions and voice lines for the demo video.3d347f0
25 days ago
-
Add the mathly deploy script
41efb32
26 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.f98e127
27 days ago
-
feat: enhance lab sample upload with retry mechanism and update learn drive UI interactions
24a3395
28 days ago
-
Refactor Minerva import script to use metadata and improve functionality
- 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.0a65ab2 -
Add comprehensive tests for the Tutor module in test_tutor.py
- 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.ac702e3 -
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.8d3d08e
29 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.0cfc3a7
30 days ago
-
Enhance pronunciation rules and scoring system
- 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.269a3c8 -
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.0af696f
-
Update TTS voice ID for Amir, enhance recording status messages, and add voice activity detection; introduce script to concatenate .oga files
1adcd96