f18663426b
Reorganized the reader toolbar and layout grid to improve visual consistency and layout robustness in Focus Mode. Fixed outline SVG rendering bugs that caused icons to show as solid dots. Closes #70 --------- Co-authored-by: Marek Jasiński <jasins.marek@gmail.com> Reviewed-on: #69 Co-authored-by: Antigravity <antigravity@google.com> Co-committed-by: Antigravity <antigravity@google.com>
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# 📖 Nexus Reader
|
|
|
|
Nexus Reader is a state-of-the-art, cross-platform Blazor .NET 10 immersive e-book reader, powered by **Native AOT**, **Clean Architecture**, **CQRS**, and interactive **D3.js Relationship Graphs** built on vector-based AI semantics.
|
|
|
|
---
|
|
|
|
## ✨ Features & Architecture Highlights
|
|
|
|
### 📁 Ingestion & Description persistence
|
|
- Extracted and persistent **book descriptions** from EPUB package metadata during book ingestion.
|
|
- The `Description` field propagates cleanly from the `Ebook` entity through Mapster to `LastReadBookDto` and `UserProfileDto`.
|
|
|
|
### 🔗 Deep-Link Routing
|
|
- Implemented deep-link route activation: `/reader/{bookId}?chapter=N`.
|
|
- Allows instant resume of reading session coordinates and loads the specific chapter chapter directly via URL query parameters.
|
|
|
|
### 🛡️ Downstream AI Resilience
|
|
- Standard resilience engine in `DependencyInjection.cs` utilizing the **Polly** package (`ai-retry`).
|
|
- Automatically intercepts, handles, and retries on both rate-limits (`429 Too Many Requests`) and downstream capacity overloads (`503 ServiceUnavailable` / `high demand`).
|
|
|
|
### ⚙️ Concurrent Request Deduplication
|
|
- Multi-client InteractiveAuto Blazor circuit synchronization is backed by a thread-safe active task registry in `KnowledgeService` which ensures that identical concurrent requests await a single shared task instance, eliminating redundant LLM queries.
|
|
|
|
---
|
|
|
|
## 🛠️ Build & Verification Gate
|
|
|
|
Ensure the dotnet workload matches the active SDK, and compile the full solution utilizing:
|
|
|
|
```bash
|
|
dotnet build NexusReader.slnx --no-restore
|
|
```
|
|
|
|
Run test suite:
|
|
|
|
```bash
|
|
dotnet test --no-restore
|
|
```
|
|
|
|
## 🗄️ Database Migrations
|
|
|
|
Automatic database migrations at startup (`MigrateAsync()`) have been disabled to ensure compatibility with Native AOT compilation and prevent locking issues in multi-instance environments.
|
|
|
|
To apply database migrations locally, run the EF Core migration command from the solution root:
|
|
|
|
```bash
|
|
dotnet ef database update --project src/NexusReader.Infrastructure --startup-project src/NexusReader.Web
|
|
```
|