Commit Graph

22 Commits

Author SHA1 Message Date
Antigravity 4940f7daa7 build: add VersOne.Epub to server-side project for metadata extraction support 2026-05-11 18:07:05 +00:00
Antigravity f98c204a14 feat: implement server-side NativeStorageService for browser storage interoperability 2026-05-11 18:06:59 +00:00
Antigravity bd66f9165f refactor: update ServerIdentityService to implement IIdentityService abstraction 2026-05-11 18:06:38 +00:00
mjasin 0c3fccc91e feat: resolve role-based authorization by extracting Roles claim from JWT and storing in state provider 2026-05-10 20:24:59 +02:00
mjasin 5f39f2e063 fix: implement server-side logout by clearing token via INativeStorageService 2026-05-10 20:17:02 +02:00
mjasin 2e23a032d3 feat(ui): Hub Navigation, Profile Dashboard and Auth Stability Fixes (#31)
This PR implements the Hub Navigation system and the Profile Dashboard, while resolving critical session synchronization issues.

### Key Changes
- **Hub Navigation**: Introduced `MainHubLayout` with a premium glassmorphism sidebar, providing access to Dashboard, Library, Concepts Map, and Profile.
- **Profile Dashboard**: Implemented a high-fidelity Profile page (#27) with learning metrics, AI token usage tracking, and system rank visualization.
- **Stability Fixes**:
    - Resolved an infinite network loop on the `/profile` page by implementing request deduplication and in-memory caching in `IdentityService`.
    - Added environment-aware guards to prevent illegal JavaScript interop calls during server-side prerendering.
    - Implemented automatic session invalidation on `401 Unauthorized` responses to handle stale authentication states gracefully.
- **Reader Integration**: Added a "Return to Dashboard" option in the reader toolbar (#26).

Closes #26
Closes #27

Reviewed-on: #31
Co-authored-by: Marek Jasiński <jasins.marek@gmail.com>
Co-committed-by: Marek Jasiński <jasins.marek@gmail.com>
2026-05-10 17:36:35 +00:00
mjasin 9e77aee231 Refactor Intelligence Toolbar (#14) and fix auth regression (#24)
This PR resolves the authentication regression issue where users encountered "Unauthorized" errors after logging out and back in. This regression was identified during the refactoring of the Intelligence Toolbar.

Fixes #14

### Changes:
- **WASM Client**: Added `AuthenticationHeaderHandler` to automatically attach Bearer tokens to `HttpClient` requests.
- **Server**: Configured Cookie authentication to return `401 Unauthorized` for `/api` requests instead of redirecting to the login page.
- **Project Configuration**: Added `Microsoft.Extensions.Http` to the WASM client project to support `IHttpClientFactory` and message handlers.

Verified with local build.

Reviewed-on: #24
Co-authored-by: Marek Jasiński <jasins.marek@gmail.com>
Co-committed-by: Marek Jasiński <jasins.marek@gmail.com>
2026-05-08 18:50:15 +00:00
mjasin 775fb73fa9 [MN-04] Identity: Fix Google Callback Error Handling and Logging (#18)
This PR implements proper logging and error handling for the Google OAuth callback as requested in issue #3.

### Changes:
- Added `ILogger<Program>` to the Google callback endpoint.
- Logged warning if external login info is null.
- Logged error details from `userManager.CreateAsync` if provisioning fails.
- Introduced specific error codes `UserAlreadyExists` and `LockedOut` to improve UX.
- Updated `Login.razor` to display descriptive Polish error messages based on the query parameter.

Fixes #3

Reviewed-on: #18
Co-authored-by: Marek Jasiński <jasins.marek@gmail.com>
Co-committed-by: Marek Jasiński <jasins.marek@gmail.com>
2026-05-07 17:27:40 +00:00
mjasin 2248a2b757 fix: migrate to IDbContextFactory and remove direct AppDbContext from DI (#11)
Reviewed-on: #11
Co-authored-by: Marek Jasiński <jasins.marek@gmail.com>
Co-committed-by: Marek Jasiński <jasins.marek@gmail.com>
2026-05-07 16:39:21 +00:00
mjasin 311eaa8b04 feat: normalize subscription architecture, integrate pgvector, and implement Stripe webhook subscription management. 2026-05-05 15:07:48 +02:00
mjasin e21c24b66d feat: implement multi-tenancy support across knowledge services and normalize TenantId to string type. 2026-05-03 17:52:12 +02:00
mjasin 94ecc7a404 feat: implement cross-device reading progress synchronization using SignalR and remove legacy quiz generation services. 2026-05-02 19:55:07 +02:00
mjasin e5611758f1 feat: implement Stripe product configuration and add token-based input validation using Microsoft.ML.Tokenizers 2026-05-02 10:31:28 +02:00
mjasin 93d8dfde7e refactor: remove Stripe webhook controller, optimize MainLayout rendering, and update DI registration in Program.cs 2026-05-01 20:12:36 +02:00
mjasin 47bffd629f feat: add application preloader, identity roles, and resilient database initialization with automated seeding 2026-05-01 09:07:26 +02:00
mjasin 0210611edf feat: implement identity authentication, authorization policies, and MAUI platform support with Docker orchestration 2026-04-29 20:37:41 +02:00
mjasin 10efed0369 refactor: consolidate project structure by migrating authentication, identity, and shared UI components while removing legacy Web Client files. 2026-04-28 20:23:40 +02:00
mjasin 39a9ca5706 feat: integrate AI-driven selection panel with context-aware text summarization and quiz generation features. 2026-04-26 20:36:08 +02:00
mjasin 7859c9806f feat: implement dynamic knowledge graph updates and state management services 2026-04-26 14:53:48 +02:00
mjasin d8e6931289 feat: implement AI-driven knowledge extraction service with semantic caching and persistent storage 2026-04-26 08:51:46 +02:00
mjasin 59074a05a0 feat: implement epub service, navigation service, and global error boundary with updated reader UI layouts 2026-04-25 16:16:36 +02:00
Debian f3e94c4f42 Initial commit: NexusArchitect Professional Workstation Overhaul 2026-04-24 20:27:22 +02:00