feat: AI-native rebuild + production polish (closes #8 #9 #13 #15 #30 #31)#51
Merged
Conversation
…erizer seam (Refs #41)
…bound-sources + agent tool endpoints (Refs #41)
…zod frontend (Refs #41)
…ts, new conversation; raise agent num_ctx so vision attachments are not truncated (Closes #43)
…rmat-aware download (Closes #46)
Render ingested raster images and rendered PDF pages as a real document viewer in the review split-view: zoom, fit-to-width, page navigation, loading state, and citation bounding-box overlays that scale with zoom. Workspace queue rows show a page thumbnail for image and PDF documents, falling back to the document icon for digital files. Wire the image OCR path to emit a page (stored image plus real pixel dimensions) and real-dimension source spans so image documents render with overlays. Replace the reflection-based OpenCV region reader with the typed RotatedRect API so per-line bounding boxes are captured instead of a full-page fallback (also fixes citations on the scanned-PDF path). Seed a scanned-bordereau image sample so the preview and overlays are demonstrable end to end. Closes #50
…agement, default template Add two persisted app settings — money reconciliation tolerance and a local LLM-assist toggle — and surface them on the Settings page alongside a default export-template selector and demo data management (reseed and clear). The reconciliation engine reads the configured tolerance instead of a fixed threshold, and ingestion only invokes the LLM extractor when assist is enabled so extraction stays fully deterministic by default. New POST /api/data/reseed and /api/data/clear endpoints back the data-management actions, and the export view pre-selects the configured default template. Closes #44
Run the end-to-end suite against the live stack and bring it to green: - a shared fixture suppresses the first-run tour so specs start unobstructed - a new assistant spec covers opening the dock and sending a message - the onboarding spec drives the tour to completion via the persisted flag, tolerating route changes and auto-skipped steps - correct the review field-row selector after the verdict-first redesign Accessibility: zero serious or critical axe violations on /, /review, /export, and /settings. Wrap queue rows in listitem (aria-required-children), mark the collapsed assistant dock inert so its controls leave the focus and a11y tree, label the upload file input, underline in-text links, and raise the subtle-foreground and success token contrast to meet WCAG AA. Closes #48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rebuilds Reva as an AI-native, fully-offline reinsurance bordereaux ingestion + reconciliation product and polishes it to production quality. The .NET domain (Core + Infrastructure) is kept and extended; the Blazor UI is replaced by a Next.js 16 + Vercel AI SDK 6 frontend; the AI engine is local and keyless (Ollama qwen3-vl for chat/vision, native PaddleOCR for OCR). One branch, 19 commits, merging the rebuild (epic #41) and the polish wave (epic #42).
Rebuild — epic #41
BdxReviewPayloadcarries source spans + citations; page-image endpoint.ILlmFieldExtractor→ Ollama behind a deterministic-first merge; off by default (keyless/deterministic), never on the correctness path.IInboundDocumentSource+IDocumentParserAdapter; Docling behind a flag; file-based .eml/.msg source.Polish wave — epic #42
num_ctxtruncation that dropped attached images.RotatedRectbbox capture; seeded scanned bordereau sample.Proof
dotnet build Reva.slnx -warnaserror0/0 ·dotnet testUnit 37 + Integration 16 · Reva.E2E API-smoke 1 ·dotnet format --verify-no-changesclean.tsc --noEmit0 ·eslint .0 ·next build0 · Playwright 10/10 (incl. 4 axe routes + assistant/chat).Acceptance mapping
Closes #8
Closes #9
Closes #13
Closes #15
Closes #30
Closes #31
Closes #41
Closes #42