feat(search/rag): implement NexusSearchBox, dynamic Qdrant collection auto-provisioning, batch vector ingestion, mobile Serilog logging, and resolve 401 auth handler error #51

Merged
mjasin merged 10 commits from feat/nexus-search-box into develop 2026-05-26 12:15:29 +00:00

10 Commits

Author SHA1 Message Date
mjasin a2aecf7dd3 fix: prevent potential component state updates after disposal and implement dedicated repository for quiz results 2026-05-26 14:14:51 +02:00
mjasin 381f26ed3e Merge branch 'develop' into feat/nexus-search-box 2026-05-26 11:44:24 +00:00
Antigravity aa80c2ba3e feat(ui/quiz): implement real-time global chapter quiz generation, submit results to database, and display dynamic statistics on dashboard (#53)
This PR fully implements the Global Chapter-Level Quiz Generation system in the NexusReader application.

### Key Accomplishments:
1. **SubmitQuizResultCommand**: Added MediatR command and handler to persist completed quiz results to the SQLite database securely, using our clean architecture result-pattern.
2. **Dynamic Dashboard Integration**: Re-engineered the user dashboard to fetch, calculate, and display real-time statistics (average score, total books read, total concept nodes mapped, and list of resolved quizzes with their dates and scores) directly from active database queries, eliminating static mockups.
3. **Haptic & Visual Feedback**: Enhanced the quiz flow with interactive CSS transitions, glowing hover feedback, and clear result visualization upon completion.
4. **Robust Verification**: Implemented comprehensive unit tests for `SubmitQuizResultCommandHandler` covering all success and failure/edge cases. Executed full `dotnet test` with 100% success rate.

---------

Co-authored-by: Marek Jasiński <jasins.marek@gmail.com>
Reviewed-on: #53
Co-authored-by: Antigravity <antigravity@google.com>
Co-committed-by: Antigravity <antigravity@google.com>
2026-05-26 11:43:58 +00:00
mjasin 39717725ec style(ui): align global Q&A search component styling with dashboard glassmorphism and neon green theme 2026-05-23 20:33:15 +02:00
mjasin 9d396570aa fix(rag): retrieve dynamic tenantId instead of hardcoded literal in global Q&A 2026-05-23 20:30:11 +02:00
mjasin d78abd0c4d style(ui): customize NexusSearchBox styling to perfectly match dashboard glassmorphism and var(--nexus-neon) tokens 2026-05-23 20:19:04 +02:00
mjasin 97c1c309b1 feat(rag): implement Qdrant dynamic collection creation, deterministic ID matching, and batch vector ingestion 2026-05-23 20:17:41 +02:00
mjasin 5740d9126a feat(maui): resolve 401 load error by registering MobileAuthenticationHeaderHandler with configuration-based API host 2026-05-21 20:32:11 +02:00
mjasin f902073bcb feat(maui): implement unified Serilog logging infrastructure and Blazor/JS interop bridge 2026-05-21 20:25:32 +02:00
mjasin 0a3ca77d46 feat(ui): implement premium NexusSearchBox component and integrate semantic search navigation 2026-05-21 20:16:14 +02:00