Your code activity, made readable.
Install Nom in one click via GitHub → every push, PR, and release turns into a live feed you can follow, share, and reference.

We've added functionality to include institution-specific branding, such as logos, taglines, and watermarks, in the paginated exam paper printouts. This release introduces a new Branding interface and API integration, allowing users to toggle these branding elements on or off directly through the UI. It provides a more professional and customizable experience for exam administration. Added custom branding support

This update introduces browser violation tracking to the proctoring system, allowing for better monitoring of student behavior alongside traditional camera-based events. Additionally, we fixed issues with AI question generation where large batches would fail due to token limit exhaustion; the generation process is now chunked based on estimated cost, and requests are more resilient to partial failures. Already broken

We completely overhauled the question generation system to fix critical issues with bank usage, mark mismatches, and question duplication. The new question-generation-plan module ensures strict adherence to exam patterns, properly apportions demand between AI and bank sources, and enforces global deduplication. The UI now includes a unified generator with better visibility into mark availability, while the backend logic ensures that questions match requested marks exactly. Fixed the bug, but at what cost?

This update introduces significant improvements to the exam management suite, including an ApprovalChangeSummary component for tracking submission changes and better proctoring settings management via ProctoringSettingsDialog. We've also enhanced question-paper import robust validation and added support for automatic rubric generation in the ExamQuestionEditor to streamline grading. These changes significantly improve both the administrative approval process and teacher-side exam authoring experience. Refactoring plans

Updated the project configuration to integrate a new registry for @magicui, streamlining component management. Additionally, added shadcn as a devDependency and updated the lockfile to ensure environment consistency. A new HeroVideoDialog component has also been added to the UI library to support interactive video previews.

We have upgraded the chat interface to play source material videos directly within a modal dialog, eliminating the need to jump to a new browser tab. Additionally, if a student explicitly requests to watch a video, the system now promotes the relevant media to its own dedicated block above the documents and pages for better visibility. This improves content discovery and keeps the learning workflow uninterrupted. In-app playback is better

We've refactored deriveSourceMaterialsQuery to use Gemini Flash-lite instead of OpenAI's gpt-5-nano. This change yields a significant performance boost, reducing latency from 1.9s down to 0.7-1.0s, while also centralizing our chat infrastructure on a single provider and enabling automatic model-retirement fallbacks. Speed improvement

Resolved an issue where source materials were failing to load due to gpt-5-nano reasoning timeouts by reducing reasoning effort and extending the processing window. Additionally, adjusted chit-chat thresholds to better align with tutor prompt requirements and introduced a new health check endpoint to validate YouTube API keys during deployment. These changes ensure more reliable content retrieval and faster identification of configuration issues. Fixing bugs

Chat responses now automatically feature a 'Source materials' section containing relevant YouTube videos, internal library documents, and web-grounded results. After streaming, a nano model generates a search query that triggers parallel lookups, which are then persisted as SSE frames to ensure they survive page reloads. This update adds robust handling including Redis caching, YouTube API rate limiting, and deep-linking into our library documentation. Research I need to do more research!

The enrichment data file containing repository metadata like star counts and last commit timestamps has been automatically updated. Keeping this data fresh ensures accurate representation of project health and activity in the registry. Automated enrichment data updates

This update introduces significant improvements to unit testing and assignment workflows, including a new offline testing mode, unified exam/unit-test editors, and enhanced assignment lifecycle management. The unit-test question editor has been refactored to share robust, tree-aware components with the exam system, replacing a problematic flat editor and fixing data-loss issues. Additionally, assignment-related APIs have been streamlined for better security and error handling, complemented by improved teacher-guidance flows. Refactoring in progress

We have updated @opentelemetry/sdk-metrics and @opentelemetry/sdk-trace to 1.30.1, while also cleaning up the package-lock.json for better consistency. This update includes necessary adjustments to peer dependencies and engines for improved compatibility across the project. Updating dependencies

Replaced the ambiguous exam scheduling model with a structured approach using scheduleMode and latePolicy to eliminate silent duration clipping and configuration conflicts. All scheduling logic is now centralized in lib/exam-schedule.ts, ensuring consistent behavior across APIs and UI surfaces. This release also includes an upgrade to Next.js 16, transitioning to the new flat ESLint configuration and introducing a proxy-based approach for middleware. Scheduling logic simplified

This release introduces a robust course backlog system to manage student pass/fail lifecycles, replaces manual evaluation with a new offline OMR scanning workflow, and adds background AI-grading for exam submissions. We also significantly tightened teacher access controls, ensuring attendance and course management are correctly scoped to assigned batches. These changes replace several fragmented manual processes with automated, durable, and granular systems to improve overall platform stability and usability. Automated workflows

This update fixes a sidebar issue where nested routes caused multiple navigation items to highlight simultaneously by shifting to a longest-match path resolution strategy. Additionally, search performance across admin, teacher, and student portals has been drastically improved by introducing client-side searchable pickers and fixing debouncing race conditions. Users will now experience a snappier interface with clearer navigation state. Developer productivity restored.

Previously, teacher selection dropdowns were defaulting to a limit of 20 results, causing veteran teachers to be missing from lists in course and exam management. I increased the fetch limit to 200 and integrated the SearchableSelect component into multiple teacher-picking interfaces, allowing for quick client-side filtering without extra network requests. This ensures all teachers are accessible for assignments. Teacher search fix

This refactor addresses a critical bug where course pack enrollments were causing inflated student and capacity counts by treating each child course as a separate enrollment. The enrollment logic has been centralized into new modules, and admin dashboards now accurately report distinct student counts. Additionally, this update standardizes enrollment processes across all API routes and introduces a new integrity audit script to detect and resolve data drift. Refactoring fixing bugs

This comprehensive update introduces device session limits (max 2 concurrent logins), a new course change request system, cross-course attendance reporting for teachers, and automated notifications for exam and transcript releases. We have also significantly enhanced admin tooling with new access management controls, improved CSV importing, and robust scripts for seeding and managing tenant data. These changes improve security, streamline administrative tasks, and provide teachers with better visibility into student progress and attendance.

Semantic retrieval now defaults to auto-detection, enabling local embedding-based ranking whenever a runtime is reachable, while gracefully falling back to lexical search as a healthy state. This release introduces a resilient Runtime availability decorator that protects the server from runtime outages and provides actionable diagnostics via doctor and index status. These changes replace the previous opt-in model, ensuring that Memento leverages semantic context automatically on capable machines without sacrificing utility when a runtime is absent. Semantic retrieval is now auto-detected by default instead of opt-in

This release flips the default for Memento's semantic retrieval from disabled to auto-detect. Memento will now automatically leverage local embedding runtimes (like Ollama) when they are reachable, falling back gracefully to lexical retrieval if no runtime is available. We've also hardened the embedding pipeline to ensure vector sidecars are preserved during runtime outages and that index operations remain efficient even when semantic retrieval is temporarily unavailable. Update deployed