{"items":[{"id":"8a1db9a7-06c4-4659-905d-c0d3b2069643","type":"push","org":"subh05sus","repo":"sparkmentis-fork","title":"Admins can now reassign a course's main teacher directly from the course settings","summary":"We've enabled admin control for updating a course's main teacher directly within the 'Settings > Teachers' sheet, including handling the 'Unassigned Teacher' placeholder. Previously, this required using the bulk action under 'All courses'. The new picker allows selecting from current co-teachers and assistants or any other available teacher, with automatic handling of timetable class reassignment and change history logging. ![Fixing a bug](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/9a0c8679-6ad2-4f60-bbd2-b79d7b0b4a45.jpg)","url":"https://nomit.dev/subh05sus/sparkmentis-fork/status/8d941d64e7880d278fd1a5c5f7ba3b87a034ad74b189f71bb002a2f945bbb2ed","author":"claude","contributors":["claude"],"updated_at":"2026-10-16T11:05:20+00:00"},{"id":"7c015684-ba5c-4143-9b09-99cbba73f961","type":"push","org":"subh05sus","repo":"sparkmentis-fork","title":"Documentation update for the README file","summary":"Performed a minor update to the README.md file to ensure the documentation remains accurate and up to date for project contributors and users. ![Updated README](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/subh05sus/sparkmentis-fork/success/24f316b2-3beb-42f4-9eea-74c8ba2d7601.png)","url":"https://nomit.dev/subh05sus/sparkmentis-fork/status/2b1de09468693e9005680a1cbeb7b419cc2f98b6034593103c4d3815de6f96c7","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-10-14T14:49:33+00:00"},{"id":"db74ff82-49cb-458e-9ff4-6cfde231cca1","type":"push","org":"subh05sus","repo":"sparkmentis-fork","title":"Fix for question generation retry race conditions and improved error logging","summary":"Resolved a critical race condition in the question generation drain where asynchronous checkpoint writes were causing retries to fail instantly. Checkpoint operations are now properly chained and awaited, and empty checkpoints will correctly trigger a chunk loop restart rather than an immediate job failure. Additionally, improved error handling ensures actual underlying API errors are now properly captured, logged, and surfaced in job results. ![Race Conditions](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/7dda838a-4b3e-410d-bf79-f1057cf29d85.jpg)","url":"https://nomit.dev/subh05sus/sparkmentis-fork/status/98deee8eb8c5cc5c6facb34733f21e645744827537f5417038fcb17afbf09136","author":"claude","contributors":["claude"],"updated_at":"2026-10-14T12:32:05+00:00"},{"id":"5a8467f0-1080-45c4-a97d-f40080cb583b","type":"push","org":"subh05sus","repo":"sparkmentis-fork","title":"Deprecating per-school token quotas in favor of SparkMentis limits","summary":"We have officially retired the legacy per-school AI token quota system, making AI settings read-only and transitioning management to SparkMentis. This involved cleaning up legacy usage tracking and quota checks across 18+ API routes and several core libraries. The AI usage dashboard now displays real-time request counts sourced directly from our usage meter, simplifying administration. ![Cleanup in progress](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/ce72e56c-80ba-4251-8df4-d9ce1708832f.jpg)","url":"https://nomit.dev/subh05sus/sparkmentis-fork/status/705c33ae8622ee1d725a3c39c9b317f62c9b7b99fa8a2e9e4ca1a6ec58ca43e9","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-10-13T14:49:31+00:00"},{"id":"99d15ff4-beec-4b8c-bb6b-2dea5cc054e2","type":"push","org":"subh05sus","repo":"sparkmentis-fork","title":"Implemented comprehensive AI usage tracking, per-school limits, and cost optimization","summary":"We have introduced a robust system for tracking AI usage across all Gemini calls, allowing for granular monitoring per school, user, model, and feature. This update includes configurable AI policies that support warnings or usage blocks based on daily, weekly, or monthly thresholds. Additionally, we implemented several cost-saving optimizations, such as request caching and utilizing Gemini 'Flex' tier for non-urgent background tasks, to ensure more efficient AI operations without sacrificing quality. ![AI cost reduction](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/subh05sus/sparkmentis-fork/money/474a7700-40fc-4778-98ee-f7472d07b228.png)","url":"https://nomit.dev/subh05sus/sparkmentis-fork/status/5318aa363cee69814470f7b9562d1f5737b737af1a05a263095bfc321eca5927","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-10-13T13:56:25+00:00"}],"pagination":{"offset":0,"limit":5,"has_more":true}}