- Introduced detailed specifications for exercise tests to enhance student practice under test conditions.
- Established a unified grading system across quizzes and tests, ensuring consistent evaluation.
- Defined the learning path structure, emphasizing skill mastery and navigation.
- Created lesson quizzes that allow retakes and provide feedback on skill performance.
- Implemented a readiness meter to assess student preparedness for upcoming tests.
- Added functionality for teachers to set and manage real tests within the app.
- Developed a rewards system to motivate student engagement and practice.
- Specified requirements for simulation tests to provide students with a rehearsal for real tests.
- Outlined skill mastery criteria to ensure accurate tracking of student progress.
- Designed a smart board feature for interactive problem-solving and submission of solutions.
- Enhanced the student home screen to streamline access to tasks and upcoming tests.
- Implemented a countdown plan…
8 days ago
feat: implement prompter functionality with save, edit, and delete features, including API routes and tests
- 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.
9 days ago
Add end-to-end tests for worksheets functionality with Playwright
- Implement tests for teacher and student interactions with assignments and worksheets.
- Cover scenarios including PDF upload, photo submissions, grading, and worksheet removal.
- Ensure proper handling of errors and UI feedback during the workflow.
- Validate the visibility of classes and assignments for teachers and students.
10 days ago
Add tests for drafting and reviewing student answers
- Implement tests for the drafting of worked examples in `test_draft_examples.py`, ensuring well-formed drafts are generated for skills without examples, and that the model's responses are validated.
- Create tests in `test_teacher_review.py` to cover the teacher's review process of student answers, including handling review requests, score validation, and ensuring proper access control for teachers and students.
- Ensure that the tests cover various scenarios, including error handling and edge cases, to maintain robustness in the review and drafting functionalities.
feat: implement server-side grading for unit quizzes
- Added `math_quiz_sittings` table to store quiz sittings on the server.
- Introduced functions `math_quiz_sitting_json` and `math_quiz_action` for handling quiz data.
- Updated `sitting_view` to compute grades based on stored attempts and checks.
- Enhanced tests to validate the new grading logic and ensure correct behavior of quiz sittings.
- Modified existing tests to reflect changes in quiz grading and reporting.
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
feat: implement AI usage tracking and monitoring for Claude API calls
- 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.
feat: enhance phone integration UI and error handling for push notifications
- 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.
feat: add misconception patterns tracking and UI enhancements
- Introduced a new log for tracking misconceptions across multiple-choice answers, capturing details such as skill, question, and activity type.
- Implemented a "patterns that come back" card on the math home screen to display recurring misconceptions, enhancing student feedback.
- Developed a patterns sheet that shows detailed information about misconceptions, including tips and practice links.
- Updated the UI to reflect these changes, ensuring a consistent user experience.
- Added tests to validate the new functionality and ensure existing features remain unaffected.
- Modified database schema to accommodate new scan states for answer submissions.
- Updated `requirements-dev.txt` to include `sympy` for algebra answer recomputation in tests.
- Modified `math.js` to implement a new round system for skills with more than 10 questions, ensuring unsolved questions are prioritized.
- Adjusted question navigation logic to accommodate the new round system.
- Enhanced the user interface to reflect the current question progress based on rounds.
- Added tests in `test_math_skills.py` to verify the correctness of algebraic expressions and equations, ensuring marked answers are accurate.
- Implemented new tests in `test_sky_browser.py` to validate the round functionality and progress tracking for skills.
13 days ago
feat: add lesson resources feature for teachers to photograph and manage unit resources
Your Name
8e0e8fe
- Implemented frontend components in math.js and math.css for resource management.
- Created backend API in unit_resources.py to handle resource storage and retrieval.
- Added database migration for math_unit_resources table to store resource metadata.
- Developed tests for resource management functionality, including adding, listing, and deleting resources.
- Enabled teachers to photograph exercises and explanations, with appropriate permissions and validations.
Refactor math.js to update views and enhance streak tracking
- Changed the default view from "home" to "path" in math.js.
- Updated the subject selection logic to set the view correctly.
- Introduced a daily goal button and a streak calendar for better user engagement.
- Modified the path and collection views to include new daily and exam tracking features.
- Adjusted the top bar to display additional statistics related to stars and comets.
Enhance tests for math skills and sky browser
- Updated geometry units to include new identifiers.
- Adjusted tests to reflect changes in the algebra graph structure.
- Added tests to ensure no unit has more than six subunits.
- Modified sky browser tests to validate the new streak calendar and home view functionality.
- Ensured that the home view displays the correct tally and opens at the next skill.
Enhance monitoring features with action logging and recent activity tracking
- Implemented a new monitoring module to track system health, error logs, and open-answer activity.
- Added endpoints for monitoring summaries, Supabase status, and activity tracking.
- Created a logging handler to count errors and maintain recent log entries for monitoring.
- Enhanced the CSS for monitoring UI components.
- Developed tests for monitoring functionalities to ensure proper access control and data accuracy.
Add endpoint for retired service worker to clear cache and update app
- 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.
Preserve class, subject-navigation, and exam-board structure while replacing the math graph and related identifiers with the revised remote curriculum.
Additive migration stores exam schedules on classes. Unit subjects drive subject selection and route learners into the matching path.
Refactor math skills and update CSS styles; adjust tests for new skill identifiers
Your Name
d05b676
- Updated math_skills.py to reflect changes in the teaching schedule and skill prerequisites.
- Modified CSS variables for improved styling consistency.
- Adjusted test_answer_browser.py and related test files to use new skill identifiers (e.g., a_30_side instead of g_triangle_area).
- Added documentation for the 9th-grade teaching schedule.
Fix Anthropic grading schema compatibility
Your Name
63ddff9
Grade handwritten answers automatically after upload
Your Name
bc8af21
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
feat: add phone photo feature for solving math problems
Your Name
9f81a43
- Implemented a new endpoint for pairing phone and computer for photo uploads.
- Added functionality to generate QR codes for easy linking between devices.
- Created a new HTML page for phone users to capture and send math problems.
- Enhanced the backend to handle photo sessions with expiration and state management.
- Updated the frontend to support photo uploads and display results dynamically.
- Introduced new geometry-related skills and problems in the math curriculum.
- Added tests for the new phone photo functionality and ensured robust error handling.
Remove obsolete test files and training scripts for phoneme CTC model on Palestinian Arabic recordings
- 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.
19 days ago
feat: Add MCP learning analytics tools for exercise difficulty, pronunciation, progress, and bottlenecks
- Implemented scoped attempts with optional diagnostics in SupabaseAuth.
- Extended LibraryAuth to support new analytics tools and modified existing methods for compatibility.
- Introduced new tests for pronunciation difficulties, learning progress, class comparisons, and learning bottlenecks.
- Updated OpenSpec documentation and specifications to reflect new analytics capabilities and privacy requirements.
- Ensured all new tools adhere to existing authorization and privacy standards, suppressing small cohort data.
- 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.
20 days ago
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.
feat: enhance scoring logic to handle reference noise and improve learner feedback
- 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: 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.
feat: enhance learner home functionality and add practice streak tests
- 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.