Skip to content

Enhancements to Classroom Progress Updates, RAG Ingestion, and Protobuf Contracts#291

Merged
halinhtvn3a merged 37 commits intomainfrom
dev
Dec 23, 2025
Merged

Enhancements to Classroom Progress Updates, RAG Ingestion, and Protobuf Contracts#291
halinhtvn3a merged 37 commits intomainfrom
dev

Conversation

@halinhtvn3a
Copy link
Copy Markdown
Contributor

This pull request introduces several new features and improvements across multiple services, focusing on event-driven classroom progress updates, RAG (Retrieval-Augmented Generation) ingestion, and enhancements to protobuf contracts for classroom and subscription management. The most significant changes include the addition of test endpoints for triggering classroom progress events, integration of a debounced RAG ingestion service, and updates to protobuf definitions to support richer data exchange between services.

Event-driven classroom progress and RAG ingestion:

  • Added a /test/trigger-progress-event endpoint in teacher.py to simulate student progress updates, supporting both RabbitMQ and direct invocation modes for testing the event-driven flow and RAG ingestion debounce logic. [1] [2]
  • Integrated IngestionService with debouncing and TTL support into the AI service dependency injection, wiring it into classroom snapshot event handlers and teacher service to enable scheduled RAG indexing after progress events. [1] [2] [3]

Protobuf contract enhancements:

  • Added GrpcStudentProgressSummary and included student_progress_summaries in GrpcClassroomLearningSnapshotResponse to enable richer classroom analytics. [1] [2]
  • Introduced GrpcCertificateDetail message and updated GetCertificateById RPC to return detailed certificate data. [1] [2]
  • Enhanced CurriculumSubscriptionInfo to include planName for better subscription plan tracking.
  • Added CancelOrganizationSubscriptionOrderRequest message and corresponding RPC for canceling organization subscription orders. [1] [2]

Infrastructure and configuration:

  • Added Pdflayer__ApiKey environment variable to docker-compose.yml for PDF generation service configuration.
  • Fixed typo in PdfService to correctly read Pdflayer:ApiKey from configuration.

Logging and diagnostics:

  • Improved logging in JITContextBuilder to provide detailed diagnostics at each stage of context building (gather, select, structure, compress, and token estimation).
  • Reduced log verbosity in plan_solve_agent.py by removing full prompt logging before LLM calls. [1] [2] [3]

Domain events:

  • Added SubscriptionCancelledEvent domain event to support event-driven workflows for subscription cancellations.

meewaldor and others added 30 commits December 20, 2025 12:00
- Added image URLs for several educational institutions in `organizationData.json`.
- Updated answer correctness in `answerData.json` for multiple questions.
- Modified assignment descriptions in `assignmentQuestionData.json` for micro:bit projects.
- Introduced new content sections in `contentData.json` about drawbridges.
- Expanded rubric criteria in `rubricCriterionData.json` with detailed descriptions and point allocations.
Updated `DeleteSectionCommandHandler.cs` to differentiate
between Draft and Published sections during deletion.
Draft sections are deleted permanently, while Published
sections are marked as Deleted, allowing for potential
recovery and better auditing.
- Enhanced filtering conditions for quiz and assignment scores in GetClassroomStatisticQueryHandler.cs.
- Removed NotificationDbContextSeed instantiation and its registration in DependencyInjection.cs, eliminating database seeding during startup.
- Cleared multiple entries from notificationData.json, indicating a reset of initial user notifications.
- Updated Notification.Infrastructure.csproj to stop copying notificationData.json to output.
- Completely removed NotificationDbContextSeed.cs file, eliminating the seeding logic.
- Adjusted age ranges in ageRangeData.json, changing labels and corresponding age limits.
Modified user activation to prevent re-activation of already active or deleted users in AcceptInvitationCommandHandler. Updated AccountController to always set cookies as secure and set the domain based on request security.
Updated notification messages in `CourseCompletedConsumer.cs` and `EnrollmentCreatedConsumer.cs` to provide localized titles and messages in Vietnamese, improving user experience for Vietnamese-speaking users.
Changed the error message for non-unique group codes from English to Vietnamese to support localization efforts.
Changed the correct answer's `QuestionId` from 19 to 39.
Updated the content from "Science – Technology – Engineering – Mathematics" to "Science – Teaching – English – Math" to reflect the new subject matter.
Introduces the ability to cancel organization subscription orders via gRPC and application command. Adds new proto definitions, command, command handler, and event for handling cancellation, including revoking active license assignments and publishing a cancellation event.
Removed OTEL_RESOURCE_ATTRIBUTES and added Pdflayer__ApiKey.
Retained existing API keys and adjusted port formatting.
Commented out depends_on section and set restart policy to
unless-stopped.
th3y3m and others added 7 commits December 23, 2025 01:10
Introduced compact per-student progress summaries in GetClassroomLearningSnapshotQueryHandler to provide assessment and content completion rates. Updated ServiceExtensions to add RabbitMQ service reference and environment variable configuration for improved service integration.
Adds a new IngestionService for RAG indexing with debouncing and TTL, integrates it into event handling and teacher service, and exposes a test endpoint for triggering progress events. Improves context gathering to prioritize ingestion documents, adds richer logging throughout the context and agent pipelines, and enhances student/class data tools to utilize progress summaries. Also updates content generation to support language selection and improves robustness in graph building and agent analysis.
Removed debug logging from TeacherService and enhanced student status classification to account for new students based on enrollment duration. Student 'joined_at' is now included in overviews, and the student analysis agent now provides a mapping of student IDs to names for more natural responses. The agent prompt was streamlined for clarity, emphasizing the use of student names, improved date handling, and more concise, actionable guidance for teachers.
@halinhtvn3a halinhtvn3a merged commit 314450b into main Dec 23, 2025
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants