feat(ui/graph): optimize graph dynamics, immersive reader, and code blocks

- Fix #16: Implement D3.js transitions and active state badges for Knowledge Graph.
- Fix #12: Implement Immersive Reader Layout with Merriweather typography.
- Fix #20: Professional code block styling with high contrast and monospace fonts.
- Resolve DI runtime error in WASM by adding dummy services.
- Replace generic 'Not Found' message with Nexus preloader.
- Enforce 'no async void' architecture across UI services.
This commit is contained in:
2026-05-08 20:13:39 +02:00
parent 00c5658662
commit 06f8c823a6
33 changed files with 370 additions and 149 deletions
@@ -29,9 +29,12 @@ This skill defines the architectural guardrails for the NexusReader project to e
- Use `FluentResults` (`Result<T>`) for all Application services and handlers.
- Avoid throwing exceptions for expected business failures; use `Result.Fail()`.
### 4. MediatR Patterns
- **Queries**: Read-only operations. Should return `Result<T>`. Use `AsNoTracking()` in EF Core.
- **Commands**: State-changing operations. Should return `Result` or `Result<T>`.
+
+### 5. Async Operations (Zero Tolerance for `async void`)
+- All asynchronous operations MUST return `Task` or `ValueTask`.
+- Event handlers MUST use `Func<Task>` or async-compatible patterns.
+- UI components MUST await all service calls and use `InvokeAsync(StateHasChanged)` for state updates within async contexts.
## Audit Scripts
- [ArchCheck.sh](scripts/arch_check.sh): A shell script to scan for illegal cross-layer imports.