All notable changes to this project will be documented in this file.
- UX: collapse language switcher into dropdown — all locales were shown as inline buttons cluttering the header
- Docker: set explicit
target: runneron app service build — scripts stage added after runner caused compose to pick scripts (last stage) as default, starting a Node REPL instead of the server
- Landing hub with global site header and navigation (#124, #125)
- i18n infrastructure with German (de) as first locale (#118)
- i18n phase 2:
CropTranslationtable, enrichment script, locale-aware crop search - i18n phase 3:
useTranslationswired into remaining components pnpm translate --fetch/--importtwo-step plant name translation scriptdev.shwithup/down/build/rebuildcommands
- GBIF enrichment: retry logic added, delay reduced to 200ms
- E2E smoke tests updated for new landing hub and i18n routing
- Botanical green theme — warm off-white light mode and deep green-gray dark mode replacing the default shadcn monochrome palette
- Crop display names now prefer
commonNames[0]over the technicalnamefield (e.g. "Potato" instead of "Irish Potato") - Crop names in bed cards are now consistently title-cased
- Search dropdown shows matched synonym hint when a query matches via a common name alias (e.g. search "aubergine" → shows "also: aubergine" under Eggplant)
pnpm enrich:wikipediascript to enrich cropcommonNamesfrom Wikipedia by botanical name
- Browse relationships page (
/relationships) with debounced search and cursor-based pagination - "Browse observations" link on home page
- Research pipeline: LLM extraction stage using OpenAI-compatible API (
LLM_BASE_URL,LLM_MODEL,LLM_API_KEY) - Research pipeline: import stage with confidence-weighted majority vote across conflicting papers
- 54 peer-reviewed crop relationships (45 companion, 9 avoid) backed by 93 paper sources
- LLM extraction is now provider-agnostic (works with OpenRouter, OpenAI, Ollama, etc.)
- Research pipeline: paper search stage via CrossRef (primary) and Semantic Scholar (secondary)
- Research pipeline: discovery stage scraping companion planting pair candidates
- GitHub Actions CI: unit tests on all PRs, E2E tests on PRs targeting
main - CONTRIBUTING.md with branching strategy (
feat/*→release/vX.Y.Z→main) and PR workflow
- Companion planting bed layout with conflict detection and spread-across-beds logic
- Crop relationship graph with COMPANION / AVOID types and confidence scores