diff options
| author | Tyler Hoang <tyler@tylerhoang.xyz> | 2026-05-08 03:24:36 -0700 |
|---|---|---|
| committer | Tyler Hoang <tyler@tylerhoang.xyz> | 2026-05-08 03:24:36 -0700 |
| commit | 3de7c5eed5ba262abf0d746211e33800db6d66df (patch) | |
| tree | 6fddb5381fb178423eac34894add5b611babe300 /static/favicon.svg | |
| parent | f361e7599d9a11ad3397b7b6bffee151ab9bdde9 (diff) | |
Add recipe suggestions, chat tab, and major workflow improvements
- Replace 7-day grid menu with browsable recipe suggestion cards (swap, remove, make this)
- Add Chat tab: conversational AI with full pantry/menu/grocery context
- Grocery list works without a menu (pantry-only mode)
- Individual grocery checkboxes auto-add items to pantry
- Swap modal with optional preference input
- User notes textarea on menu and grocery generation
- Clear button for menu and grocery list
- LLM notes/summary displayed after generation, persisted to DB
- Favicon linked in HTML
- Category dropdown styled for dark theme
- System prompt configurable via SYSTEM_PROMPT in .env
- Fix startup error (ollama_timeout default), DB migration for menu_plans.notes
- Simplify: batch N+1 queries, extract _current_monday(), merge chat sync fns,
asyncio.get_running_loop(), fix currentGroceryId bug, cap chat history
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'static/favicon.svg')
| -rw-r--r-- | static/favicon.svg | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/static/favicon.svg b/static/favicon.svg new file mode 100644 index 0000000..7122059 --- /dev/null +++ b/static/favicon.svg @@ -0,0 +1,34 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"> + <!-- Background circle --> + <circle cx="32" cy="32" r="32" fill="#FF6B35"/> + + <!-- Chef hat (white puff top) --> + <ellipse cx="32" cy="18" rx="13" ry="11" fill="white"/> + <!-- Hat brim --> + <rect x="19" y="24" width="26" height="7" rx="3" fill="white"/> + + <!-- Hat shine --> + <ellipse cx="27" cy="14" rx="4" ry="3" fill="rgba(255,255,255,0.4)"/> + + <!-- Face --> + <circle cx="32" cy="42" r="13" fill="#FDDBB4"/> + + <!-- Rosy cheeks --> + <circle cx="24" cy="44" r="3.5" fill="#FFB3A7" opacity="0.7"/> + <circle cx="40" cy="44" r="3.5" fill="#FFB3A7" opacity="0.7"/> + + <!-- Eyes (cute closed/happy) --> + <path d="M27 40 Q28.5 38 30 40" stroke="#5C3317" stroke-width="1.8" fill="none" stroke-linecap="round"/> + <path d="M34 40 Q35.5 38 37 40" stroke="#5C3317" stroke-width="1.8" fill="none" stroke-linecap="round"/> + + <!-- Smile --> + <path d="M27 46 Q32 51 37 46" stroke="#5C3317" stroke-width="1.8" fill="none" stroke-linecap="round"/> + + <!-- Little nose dot --> + <circle cx="32" cy="43.5" r="1" fill="#C68642"/> + + <!-- Tiny sparkle top right --> + <g fill="white" opacity="0.9"> + <polygon points="56,10 57,13 60,13 57.5,15 58.5,18 56,16 53.5,18 54.5,15 52,13 55,13" transform="scale(0.6) translate(38, 4)"/> + </g> +</svg> |
