style: complete Light Sepia theme overrides for user dashboard #78

Merged
mjasin merged 11 commits from feature/theme-sync-engine into develop 2026-06-07 16:56:37 +00:00

11 Commits

Author SHA1 Message Date
mjasin 4c12a0b104 merge: resolve merge conflicts with develop branch 2026-06-07 18:34:25 +02:00
mjasin ce923ab72a style: refactor light theme CSS overrides to use Blazor isolated scoping 2026-06-07 18:29:56 +02:00
mjasin f6277bacfe style(theme): complete warm sepia dashboard styles 2026-06-07 14:01:52 +02:00
mjasin 1eacf7ed93 fix(di): resolve client-side WASM dependency injection validation errors on login 2026-06-07 13:56:09 +02:00
mjasin dab698ee72 refactor: remove pgvector configuration as vectors are managed in Qdrant 2026-06-07 12:48:56 +02:00
mjasin c54ece9bd6 feat(theme): resolve database migration blocker and apply ThemePreference column 2026-06-07 12:45:56 +02:00
mjasin ce4687ee93 fix: resolve PR #76 review recommendations
- Add ILogger<GetContextualRecommendationsQueryHandler> with structured logging
- Guard empty embedding text in VectorSearchStore (return empty vector, skip search)
- Benchmark vector search and embedding latency with Stopwatch (LogDebug/LogInfo)
- Refine EnsureCollectionExistsAsync: log creation events and non-fatal errors
- Replace all Console.WriteLine with ILogger in UI components (AiAssistantBubble,
  AiResponseRenderer, IntelligenceToolbar, SelectionAiPanel, Catalog, Intelligence, MyBooks)
- Create IRecommendationService abstraction + RecommendationService WASM implementation
- Register IRecommendationService in Web.Client DI
- Add ContextualRecommendationsWidget component with loading spinner and design tokens
- Add ContextualRecommendationsWidget to Dashboard.razor
- Update test constructor with ILogger mock for GetContextualRecommendationsQueryHandler

Closes review items: 2, 3, 4, 5, 6, 7, 8, 9, 10
Item 1 (unit tests) was already completed in previous session
2026-06-06 14:54:44 +02:00
mjasin 94f6fe366d feat(recommendations): refactor handler to use clean IVectorSearchStore abstraction and fix unit tests 2026-06-06 11:28:14 +02:00
mjasin e9bb51af77 feat(ui): implement client-side [PAYWALL_TRIGGER] token parser, styling and tests 2026-06-06 11:07:21 +02:00
mjasin 93133a49b6 feat(intelligence): implement global hybrid search engine and monetization logic
- Created IUserLibraryStore and IVectorSearchStore abstractions to decouple relational DB and Qdrant gRPC logic from Application Layer
- Implemented MediatR GetGlobalIntelligenceQuery with value-first teaser RAG monetization logic
- Registered new request and response DTOs in AppJsonContext for Native AOT source-generated serialization
- Bound RagMonetizationOptions via IOptions pattern in appsettings.json configuration
- Added POST /api/intelligence endpoint on server and implemented GetGlobalIntelligenceAsync in WASM client service
- Refactored Intelligence.razor to consume the backend-driven global hybrid search Q&A engine
2026-06-06 10:55:58 +02:00
mjasin faf6ec826e feat(intelligence): implement Global AI Q&A screen and paywall blocker
- Implemented standard empty and active chat conversation states for the `/intelligence` page
- Created interactive `AiResponseRenderer` with AOT-compliant sentence splitting and payment gateway simulation
- Added scoped `LibraryStateService` to synchronize book ownership and updates across the application
- Obfuscated paywalled content in DOM to prevent inspection bypass
- Fixed local port connection mismatch by updating API configurations to use port 5104
2026-06-06 10:41:48 +02:00