Davemaina1 learns the hard way that legal search doesn't want to live in Node

Five commits chasing a Kenyan-law search engine through crash after crash - and then abandoning the whole approach.

searchinfrastructure

Davemaina1's fork is building search over Kenyan case law, and this stretch of work is the record of trying to run the entire AI search engine inside the app's own JavaScript runtime. It didn't go well. The embedding model - the piece that turns legal text into something a computer can match and rank - kept failing silently, crashing under load with no error to show for it. Each commit patches one symptom, and the next one surfaces.

The thread ends with the team conceding the point: the next chunk of work rips all of this out and moves the AI search into a separate Python service. So this isn't a blueprint to copy - it's a cautionary tale, useful precisely because it's an honest record of what didn't hold up.

So what Anyone weighing whether to run AI search inside their existing app stack should read this as a free lesson in where that road dead-ends.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

5 commits from Davemaina1/iroh_, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
4d5ccd6e ChromaDB client: switch from path-based to HTTP (host/port/ssl) Davemaina1 2026-05-13 ↗ GitHub
bc9bc847 Add @chroma-core/default-embed to silence Chroma collection warning Davemaina1 2026-05-13 ↗ GitHub
73a68eee backend: split dev (no watch) and dev:watch - tsx watch breaks ONNX session Davemaina1 2026-05-13 ↗ GitHub
acc5ed8a gitignore: exclude local smoke.ts Davemaina1 2026-05-13 ↗ GitHub
4fcfaa29 Serialize embedder calls - concurrent ONNX inference segfaults backend Davemaina1 2026-05-13 ↗ GitHub

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-379.md from inside the repo you want the changes in.

⬇ Download capture-thread-379.md