- Implement tests for retrieving a student's assignments, focus practices, finals, and returned worksheets in `test_my_tasks.py`.
- Ensure that the task list correctly reflects only the student's assignments and submissions.
- Add tests for quiz modes in `test_quiz_modes.py`, covering final quiz windows, sitting management, and grade release processes.
- Validate that only the class teacher can open final quiz windows and that practice is blocked while a final is active.
- Test the handling of photo submissions and the behavior of quiz sittings after deadlines.
10 days ago
feat: add AI queue for math requests, including database migration and tests
- Implemented a new table `math_ai_requests` to handle student requests for AI assistance in math problems.
- Created tests for the AI queue functionality, ensuring proper request handling and state management.
- Added browser tests to verify the user guide's accessibility and functionality for both students and teachers.
- Developed a class report feature for teachers to view student progress and grades.
11 days ago
Refactor code structure for improved readability and maintainability
- Implemented a new sketch board feature in static/math-board.js, allowing users to draw and submit answers for unit quizzes.
- Added tests in tests/test_board_browser.py to verify the functionality of the sketch board, including drawing, erasing, and submitting sketches.
- Enhanced existing unit tests in tests/test_unit_quiz.py to ensure proper integration of the sketch board with quiz questions.
feat(science): implement interactive riddle voting system with CSS animations
- Added science.css for styling the science path and its voting interface.
- Implemented science.js to handle the riddle voting logic, including room management and vote processing.
- Created a new database table `math_progress` to track student progress across devices.
- Developed tests for the progress tracking and science voting functionalities, ensuring proper behavior and error handling.
13 days ago
Add tests for open-ended questions, math sky features, and comet interactions
- Implement test for default locking of open-ended questions and grading key behavior.
- Enhance phone browser tests to ensure navigation and visibility of math skills.
- Introduce new JavaScript file for math sky features, including star and comet mechanics.
- Create math TeX rendering functionality for displaying mathematical expressions.
- Add comprehensive browser tests for night sky features, including star progression and comet collection.
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
- 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.
20 days ago
feat: update demo video scripts and HTML for improved functionality and user experience
- 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.
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.
21 days ago
feat: implement home component rendering and enhance lesson display logic
- Introduced a new utility function `minutesFor` to estimate time for actions based on item count.
- Updated the rendering of recommended actions on the learner home page to include estimated time for completion.
- Added a new test for the class week's performance metrics, ensuring accurate reporting without teacher data.
- Modified existing tests to reflect changes in the reminder prompt behavior after a good moment.
- Expanded progress tracking tests to include new streak states: "frozen" and "freeze_ready".
- Created a new test suite for practice streak logic, covering various scenarios including missed days and freeze conditions.
fix: update verb scoring and display logic in workbook and learner home
- Implement tests for saving and reading current lessons for learners.
- Create a mock authentication class to simulate Supabase interactions.
- Add tests for handling various scenarios including missing keys, table absence, and server downtime.
- Develop browser tests for the focused learner home page using headless Chrome.
- Validate lesson selection, reminders, and class-specific lesson handling.
- Ensure tests cover both successful and error scenarios for lesson management.
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…
feat(push): implement admin notification system with audience targeting and broadcast capabilities
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.
- 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.
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 data
feat(topic): enhance topic completion dialog with visual feedback and retry options
- 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>
feat(tts): improve cache_stats method with non-blocking file counting and wait option
- 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.
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.
fix: conditionally display heard words and update hint label for improved feedback
- 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