MedaGuard — pesticide safety & counterfeit-detection PWA for Ethiopian smallholder farmers (retriever-not-adviser). STAGING demonstration, not a live safety service.
# Sebil Tena
**ሰቢል ጤና** ("path of health") — formerly *MedaGuard*. Staging demonstration:
.
Safety-critical tool that helps Ethiopian smallholder farmers use pesticides
safely and detect counterfeit / unregistered products. Farmers photograph a
bottle; Sebil Tena tells them — in their language, with voice for non-readers —
whether the product is genuine and registered, the correct dose for their crop,
the safety gear and waiting period, and emergency first-aid if poisoned. It also
reaches farmers with no smartphone at all, over SMS, and works with no signal.
This is a **demonstration build**, not a farmer-facing launch. The registry is
sample data and the first-aid content has not been reviewed by a toxicologist,
so the release gate below deliberately refuses to run it as production.
**Core principle: the AI is a retriever, not an adviser.** Dosage, first-aid,
PPE and pre-harvest interval are never generated by a language model — they are
looked up from a verified registry keyed on the official registration number.
See SAFETY.md. Do not break this boundary.
## Status
Milestones 1–14 complete:
- **M1** — Express + libSQL (Turso / local-SQLite fallback), schema, seed script,
`/api/verify-number`.
- **M2** — scan pipeline: `lib/aiClient.js` vision fallback chain
(Groq → OpenRouter → Gemini) and `/api/scan` with Tesseract-first OCR and a
format-agnostic, multi-field anchor match.
- **M3** — offline-first PWA frontend (`public/`): camera scan, colour+icon+voice
verdict cards, crop-icon dosage picker, safety card, 6-language switch (native
script) with auto-speak, pinned EMERGENCY, installable shell + service worker.
Adds `GET /api/dosage`.
- **M4** — (A) pre-recorded **audio-clip** layer (`public/js/audio.js`) replacing
the Web Speech dependency: clip → TTS bridge → silent, with a number composer;
(B) one-tap **offline poison-control** flow (route-of-exposure → DB first-aid,
step-by-step) with `GET /api/first-aid` + `GET /api/emergency-bundle`. First-aid
is pure DB …