Build Log · July 7, 2026

The Medina Square — Live Testing Hardening

Zeb live-tested the app against real questions and real mobile devices; every bug found (branding leaks, vague fallback copy, sourcing caution scoped wrong, unformatted answers, HTTPS-only voice input) got fixed at the root, and the app was renamed from medina-navigator to medina-square end to end.

  • Medina Square
  • Bug Fix
  • AI Prompting
  • Mobile UX
  • Architecture
spins fixed via live testing
6

spins fixed via live testing

starter prompts refreshed with tested, real questions
7

starter prompts refreshed with tested, real questions

new data pattern (sourceScope on Evidence)
1

new data pattern (sourceScope on Evidence)

Timeline

  1. Start

    Continued from prior session

    Voice input/output feature work in progress

  2. Early

    Voice input + output shipped

    Browser-native SpeechRecognition + SpeechSynthesis, no external service

  3. Mid

    Mobile bug hunt

    allowedDevOrigins fix, HTTPS-only mic limitation surfaced and explained to the user

  4. Mid-late

    Sourcing Anvil

    ChatGPT comparison exposed a real gap — sourceScope field added to Evidence, scales beyond one resource

  5. Late

    Starter prompts rebuilt

    All 7 replaced one at a time with real, live-tested questions

  6. Close

    Renamed medina-navigator → medina-square

    Full path fix across package.json, vercel.json, root workspace config, lockfile regen

What shipped

  • Voice input (speech-to-text) wired into GuidedFlow.tsx and AskForm.tsx via a shared useSpeechToText hook — browser-native Web Speech API, zero external dependency

  • Voice output (read-aloud) for Plan results via useSpeechOutput hook and a 'Read aloud' button on PlanView.tsx

  • tel: and mailto: links for every phone number and email across ResourceCard.tsx and PlanView.tsx — mobile users can tap to call/email directly

  • MarkdownLite.tsx — small dependency-free markdown renderer (bold + lists) for Evidence answers, replacing a single-paragraph dump

  • New sourceScope field ('hyperlocal' | 'standardized_program') on the Evidence type — required, TypeScript-enforced across all 7 existing records

  • Real, sourced SNAP/Medicaid document checklist Evidence record, citing Ohio Benefits' official 'Things You Need To Apply' page — closes the gap exposed by a ChatGPT comparison

  • 7 starter prompts on /ask fully rebuilt with real, live-tested questions covering utilities, senior services, housing crisis, permits, employer/workforce, and financial hardship

  • Renamed the entire app from medina-navigator to medina-square: folder, package.json name, vercel.json build command, root workspace registration, all script names (dev/build/deploy:medina-square), console.error log labels, regenerated package-lock.json

“ok, this is not a good look for us... how are we going to handle this at scale?”
— Zeb, after pasting a ChatGPT answer that outperformed The Medina Square's SNAP/Medicaid response — the question that triggered the sourceScope architecture fix