377-line operations and architecture README for the Olava deployment

Replaces three lines with a full handoff document covering the production topology, all env vars, vLLM specifics, and operational gotchas. If you're evaluating what nwhitehouse actually built and how it runs, this is the single best artifact in the fork.

infrastructureknowledge-management

The document covers the full stack: Next.js 16 / React 19 on Vercel, Express 4 on Railway (with LibreOffice via Nixpacks for DOC/DOCX conversion), Supabase for Postgres + Auth + Storage, Resend for transactional email, and vLLM on RunPod serving the Qwen/Qwen3.6-35B-A3B base with the olava-extract LoRA via --enable-auto-tool-choice --tool-call-parser hermes. The architecture ASCII diagram shows the full request path from browser through Vercel → Railway → Supabase/Storage/vLLM.

The vLLM section is operationally specific: reasoning fields (delta.reasoning vs delta.reasoning_content vs inline <think> blocks), the custom <tool_call><function=name><parameter=key> markup format the LoRA emits, and the client-side fallback parser the fork ships because vLLM streaming drops the tool-call payload. The auth section explains the email-domain whitelist trigger in 001_email_domain_whitelist.sql and how RLS keeps multi-tenant data separate without per-route auth code.

The gotchas section has genuine operational lore: Mimecast strips Supabase magic-link confirmation emails (swap to email/password with confirmation toggled off for corporate clients), Vercel auto-deploys require verified commits so preview-branch URLs don't work until the branch is pushed to the verified remote, Nixpacks defaults to Node 18 rather than Node 22 unless backend/nixpacks.toml pins it, and CORS has to be explicitly widened for tryolava.ai alongside api.tryolava.ai. These are the kind of integration details you only encounter by running the system.

The repo history note is useful context for reading the codebase: the project was willchen96/mike → Finch → Olava, and internal type aliases like MikeMessage and MikeChat still reflect the original name. The README flags deferred cleanup items for whoever picks this up next.

So what Read this before reading any other nwhitehouse commit. The deployment topology and vLLM particulars explain why the code looks the way it does. Not directly portable if your stack differs - the env var names, Railway/Vercel-specific notes, and RunPod setup are nwhitehouse's deployment - but the Mimecast/Supabase confirmation link gotcha is worth knowing for any Supabase Auth deployment in a corporate email environment.

View this fork on GitHub →

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

Commits in this thread

1 commit from nwhitehouse/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
9a360516 README: comprehensive handoff doc Nick Whitehouse 2026-05-02 ↗ GitHub
commit body
Replace the upstream's three-line README with a full operations and architecture guide for the Olava deploy: tech stack, repo layout, local dev path, the live Vercel + Railway + Supabase + Resend topology with all env vars, the email-domain whitelist + RLS story, the Olava-001 vLLM particulars (reasoning fields, custom tool-call format, fallback parser), known gotchas (Mimecast, Vercel verified commits, Nixpacks Node 18, CORS for the custom domain), and a backlog of deferred cleanups for the next person.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

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-122.md from inside the repo you want the changes in.

⬇ Download capture-thread-122.md