brewlog/templates
Jon Seager b668d368e7
feat(ai): add AI-powered extraction for roaster and roast forms
Users can upload a photo of a coffee bag or type a text prompt to
auto-fill roaster/roast form fields via OpenRouter's chat completions
API. The feature is opt-in: hidden when BREWLOG_OPENROUTER_API_KEY is
not set.

- Add src/infrastructure/ai.rs with OpenRouter client, prompt
  templates, JSON extraction from model responses, and unit tests
- Add extract-roaster and extract-roast API endpoints behind auth
- Add extraction UI (photo button + text input) to both form templates
- Add openrouter_api_key and openrouter_model to CLI args and AppState
- Enable reqwest gzip feature for compressed API responses
- Default model set to openrouter/free (auto-selects available models)
- Prompts instruct model to use web search for missing details
2026-02-03 18:00:19 +00:00
..
partials feat(cups): add web views, templates, and navigation 2026-02-03 16:36:35 +00:00
bags.html fix(templates): prefix Datastar signals with underscore to mark as local 2026-02-03 13:37:50 +00:00
base.html fix(mobile): hide infinite scroll sentinel on desktop 2026-02-03 12:52:23 +00:00
brews.html feat(brews): pre-populate Add Brew form with last recorded brew values 2026-02-03 14:01:41 +00:00
cafe_detail.html feat(cafes): add CLI commands, web views, and templates 2026-02-03 14:53:00 +00:00
cafes.html feat(cafes): add geolocation search UI to new cafe form 2026-02-03 15:56:35 +00:00
cups.html feat(cups): add web views, templates, and navigation 2026-02-03 16:36:35 +00:00
favicon.ico feat: bootstrap brewlog platform 2025-11-24 11:44:12 +00:00
gear.html fix(templates): prefix Datastar signals with underscore to mark as local 2026-02-03 13:37:50 +00:00
login.html feat(frontend): add login page and session-based authentication 2025-11-25 16:28:47 +00:00
nav.html feat(cups): add web views, templates, and navigation 2026-02-03 16:36:35 +00:00
roast_detail.html feat: add bags web views and templates 2025-11-27 14:02:55 +00:00
roaster_detail.html feat: bootstrap brewlog platform 2025-11-24 11:44:12 +00:00
roasters.html feat(ai): add AI-powered extraction for roaster and roast forms 2026-02-03 18:00:19 +00:00
roasts.html feat(ai): add AI-powered extraction for roaster and roast forms 2026-02-03 18:00:19 +00:00
styles.css fix(timeline): centre line behind cards on mobile for full-width layout 2026-02-03 13:21:55 +00:00
timeline.html fix(timeline): restore sticky month headers and jump-to-top button 2026-02-03 13:29:46 +00:00