Releases: open-horizon-labs/northwoods
Releases · open-horizon-labs/northwoods
Release list
Release v1.0.3
What's Changed
- fix: support image uploads in document source viewer by @muness in #193
- feat: add PWA manifest for mobile Add to Home Screen by @muness in #194
Full Changelog: v1.0.2...v1.0.3
Release v1.0.2
What's Changed
Full Changelog: v1.0.1...v1.0.2
Release v1.0.1
What's Changed
Full Changelog: v1.0.0...v1.0.1
Release v1.0.0
Northwoods v1.0.0 — the complete CTO programming exercise submission.
What Northwoods does
Northwoods turns scanned handwritten intake forms into structured, searchable case records. Intake workers upload documents, an AI extraction pipeline (OpenAI Vision) reads them, and reviewers verify the results in a confidence-guided workflow. A 5-signal hybrid RAG system surfaces similar historical cases during review to support decision-making.
Platform
- .NET 10 API + extraction worker (Minimal APIs, Dapper)
- React 19 + Vite + Tailwind CSS v4 frontend with PDF.js viewer
- Postgres 18 with pgvector, pg_trgm, full-text search
- Multi-tenant with Row-Level Security on all 7 tables
- Docker multi-stage builds, deployed to Render via ghcr.io
Key capabilities
Intake pipeline
- Template-guided upload with 4 form types
- OpenAI Vision extraction with nano → mini model escalation on low confidence
- Confidence scoring per field with color-coded review UI
- Downloadable blank PDFs for each template
Review workflow
- Side-by-side PDF viewer + extracted fields with drag-to-resize panels
- Confidence-based field highlighting (green/blue/amber/red)
- Inline correction, reviewer notes, and finalization with audit trail
- Auto-accept for high-confidence documents
Hybrid RAG retrieval
- 5-signal Reciprocal Rank Fusion: full-text search + vector cosine + name trigram + address trigram + DOB exact match
- OpenAI text-embedding-3-small (1536d) with HNSW index
- Surfaces similar historical cases during review
- RAG quality report at
/rag-report
Search and case management
- Cross-field search across all intakes
- Case timeline view aggregating documents per applicant
Multi-tenancy
- JWT-based auth with tenant claim
SET LOCAL app.tenant_idper database session- RLS policies on every table, verified by CI (ADR compliance check)
- Two demo tenants: Sunrise Community Services, Lakewood Family Center
Infrastructure
- CI: 5 checks per PR — Build, Test, Playwright e2e, ADR Compliance, Secret Scan
- Code quality: GitHub CodeQL + CodeRabbit AI review on every PR
- Deploy: Tag-triggered pipeline builds Docker images, pushes to ghcr.io, deploys to Render, runs production smoke test
- Branch protection: PRs required, all checks must pass
Documentation
- Submission package — CTO-oriented overview
- User guide — Worker, Reviewer, Admin workflows
- Architecture diagram — d2 sketch-style system overview
- 5 ADRs — Key architectural decisions with rationale
- Handwriting test — Mobile end-to-end test script
- OpenAPI docs — Interactive API reference
Demo
- Live: https://northwoods.muness.com
- Click "Reviewing Muness's submission?" on the login page for quick credentials
- 184 synthetic intake documents across 40 fictional people with designed narrative arcs
Stats
- 201 commits, 189 PRs
- 40-person synthetic corpus with longitudinal care patterns
- 5-signal retrieval completing in 50–200ms
What's Changed
- fix: remove /#dev smoke test — page was deleted in #187 by @muness in #188
- release: v1.0.0 — outcomes delivered + handwriting test by @muness in #189
Full Changelog: v0.7.3...v1.0.0
Release v0.7.3
What's Changed
Full Changelog: v0.7.2...v0.7.3
Release v0.7.2
What's Changed
Full Changelog: v0.7.1...v0.7.2
Release v0.7.1
What's Changed
- fix: replace ChatGPT sample PDFs with blank v2 template PDFs by @muness in #176
- fix: remove RAG Report link from login page by @muness in #178
- fix: reviewer login should route to review queue, not RAG Report by @muness in #180
- fix: simplify RAG Report to minimal layout by @muness in #182
- feat: resizable PDF preview and sidebar in reviewer view by @muness in #184
Full Changelog: v0.7.0...v0.7.1
Release v0.7.0
What's Changed
- fix: update Docker images from .NET 10 preview to GA by @muness in #164
- feat: mobile-responsive layout for Worker dashboard by @muness in #171
- fix: remove RAG Report link from reviewer navigation by @muness in #169
- feat: improve reviewer credentials dialog with all tenants and users by @muness in #170
- feat: resizable PDF/form panel split with localStorage persistence by @muness in #172
- feat: URL deep linking for reviewer dashboard views by @muness in #173
- chore: upgrade all dependencies to latest stable versions by @muness in #174
Full Changelog: v0.6.1...v0.7.0
Release v0.6.1
Full Changelog: v0.6.0...v0.6.1
Release v0.6.0
What's Changed
- fix: include Admin role in auth restore + seed blank template PDFs by @muness in #160
- fix: correct documentation accuracy — threshold, Playwright, API table, model names by @muness in #161
- feat: add Scalar API docs, search empty state, queue name fallback by @muness in #162
- refactor: extract ReviewerDashboard components + consolidate duplicate code by @muness in #163
Full Changelog: v0.5.0...v0.6.0