- Remove node_modules, dist, .next from git tracking
- Add .next and *.tsbuildinfo to .gitignore
- Remove Iranian mirrors from Dockerfiles (arvancloud.ir)
- Add npm ci step for dependency installation
- Ready for VPN-based internet access workflow
- Hero.tsx reads hero_image_url from uiText store first, falls back to banners then default
- Seed script now only creates keys that don't exist (no overwrite)
- Added hero_image_url key to seed + admin panel UI texts groups
- Reverted DEFAULT_TEXTS initialization (caused hydration mismatch)
- settingsStore back to empty init, fetchSettings populates from API
- blog/[slug]/page.tsx: fix params type to Promise and await it
- wiki/[slug]/page.tsx: fix params type to Promise and await it + Fix API port from 4000 to 4001
- blog/page.tsx: fix fallback API URL from port 4000 to 4001
- Fix seed-products.ts TS error (implicit any) and BOM handling
- Re-run full seed to restore correct Persian encoding in DB
- Fix productService query→search param mismatch
- Fix IngredientWiki hardcoded port 4000→use settingsStore
- Restore seed-products-data.json from git after accidental corruption
- Add 20 new products to frontend products.ts (total 29 products)
- Enrich existing 9 product descriptions with biochemical/clinical details
- Add new blog articles with real content from research document
- Update UI texts with Canina brand history (1984 founding, IFS/HACCP)
- Add 9 new scientific terms (Ca:P, D3, BARF, biotin, taurine, etc.)
- Expand INGREDIENTS_WIKI with collagens, biotin, taurine entries
- Add new medical options (heart disease, parasites) to SmartAdvisor