mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-18 08:49:39 +02:00
refactor: rename nutriphi module to food (Essen)
Complete rename across the entire monorepo pre-launch: - Module, routes, API, i18n, standalone landing app directories - All code identifiers, display names, logo component - German user-facing label: "Essen" (English brand stays "Food") - Dexie table nutriFavorites -> foodFavorites - Infra configs (docker-compose, cloudflared, nginx, wrangler) Zero residue of nutriphi remains. No data migration needed (pre-launch). Follow-up: run pnpm install, update Cloudflare DNS (food.mana.how), rename Cloudflare Pages project. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f5cb833b04
commit
53b3746b98
196 changed files with 863 additions and 719 deletions
|
|
@ -51,7 +51,7 @@ injectUmamiAnalytics(html) → <script defer src="stats.mana.how/script.js" d
|
|||
| Clock | `UMAMI_WEBSITE_ID_CLOCK_LANDING` |
|
||||
| Picture | `UMAMI_WEBSITE_ID_PICTURE_LANDING` |
|
||||
| Todo | `UMAMI_WEBSITE_ID_TODO_LANDING` |
|
||||
| NutriPhi | `UMAMI_WEBSITE_ID_NUTRIPHI_LANDING` |
|
||||
| Food | `UMAMI_WEBSITE_ID_FOOD_LANDING` |
|
||||
| Presi | `UMAMI_WEBSITE_ID_PRESI_LANDING` |
|
||||
| Mukke | `UMAMI_WEBSITE_ID_MUKKE_LANDING` |
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ injectUmamiAnalytics(html) → <script defer src="stats.mana.how/script.js" d
|
|||
| Questions | `UMAMI_WEBSITE_ID_QUESTIONS` |
|
||||
| Zitare | `UMAMI_WEBSITE_ID_ZITARE` |
|
||||
| Presi | `UMAMI_WEBSITE_ID_PRESI` |
|
||||
| NutriPhi | `UMAMI_WEBSITE_ID_NUTRIPHI` |
|
||||
| Food | `UMAMI_WEBSITE_ID_FOOD` |
|
||||
| Storage | `UMAMI_WEBSITE_ID_STORAGE` |
|
||||
| Photos | `UMAMI_WEBSITE_ID_PHOTOS` |
|
||||
| SkillTree | `UMAMI_WEBSITE_ID_SKILLTREE` |
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ In zwei intensiven Sessions wurde die gesamte Mana-Architektur von einem **API-f
|
|||
| Presi | — | ~150 | (existierte schon) |
|
||||
| Context | 3020 | 94 | AI Text Generation |
|
||||
| Planta | 3022 | 104 | Photo Upload, AI Plant Analysis |
|
||||
| NutriPhi | 3023 | 154 | AI Meal Analysis, Recommendations |
|
||||
| Food | 3023 | 154 | AI Meal Analysis, Recommendations |
|
||||
| Traces | 3026 | 108 | AI Guide Generation, Location Sync |
|
||||
| **Σ Compute** | | **~1.537** | | **~40.000 LOC NestJS** |
|
||||
|
||||
|
|
@ -326,7 +326,7 @@ mana-analytics (Hono, 475 LOC)
|
|||
| 7 | Presi | decks, slides | ✅ Komplett |
|
||||
| 8 | Picture | images, boards, boardItems, tags, imageTags | ✅ Komplett |
|
||||
| 9 | Inventar | collections, items, locations, categories | ✅ Komplett |
|
||||
| 10 | NutriPhi | meals, goals, favorites | ✅ Komplett |
|
||||
| 10 | Food | meals, goals, favorites | ✅ Komplett |
|
||||
| 11 | Planta | plants, plantPhotos, wateringSchedules, wateringLogs | ✅ Komplett |
|
||||
| 12 | Storage | files, folders, tags, fileTags | ✅ Komplett |
|
||||
| 13 | Chat | conversations, messages, templates | ✅ Komplett |
|
||||
|
|
@ -363,7 +363,7 @@ shared-feedback-types + shared-feedback-service + shared-feedback-ui → 3 Pack
|
|||
shared-help-types + shared-help-content + shared-help-ui + shared-help-mobile → 4 Packages
|
||||
shared-subscription-types + shared-subscription-ui → 2 Packages
|
||||
credit-operations + shared-credit-service + shared-credit-ui → 3 Packages
|
||||
shared-gpu, nutriphi-database → 2 unbenutzt
|
||||
shared-gpu, food-database → 2 unbenutzt
|
||||
```
|
||||
|
||||
### 8.2 Nachher: 43 Packages (-26%)
|
||||
|
|
@ -374,7 +374,7 @@ shared-gpu, nutriphi-database → 2 unb
|
|||
| Help 4→1 | shared-help-{types,content,ui,mobile} | `@mana/help` | -3 |
|
||||
| Subscription 2→1 | shared-subscription-{types,ui} | `@mana/subscriptions` | -1 |
|
||||
| Credits 3→1 | credit-operations, shared-credit-{service,ui} | `@mana/credits` | -2 |
|
||||
| Unbenutzt geloescht | shared-gpu, nutriphi-database | — | -2 |
|
||||
| Unbenutzt geloescht | shared-gpu, food-database | — | -2 |
|
||||
| NestJS-spezifisch entfernt | shared-nestjs-{auth,health,metrics,setup}, mana-core-nestjs-integration | — | -5 |
|
||||
| **Gesamt** | **58** | **43** | **-15** |
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Für jede Domain: **CNAME Record hinzufügen** (oder bestehenden ändern), Proxi
|
|||
|--------|-----|------|--------|
|
||||
| `it` | CNAME | `bb0ea86d-8253-4a54-838b-107bb7945be9.cfargotunnel.com` | **Neu erstellen** |
|
||||
| `citycorners` | CNAME | `bb0ea86d-8253-4a54-838b-107bb7945be9.cfargotunnel.com` | **Neu erstellen** |
|
||||
| `nutriphi` | CNAME | `bb0ea86d-8253-4a54-838b-107bb7945be9.cfargotunnel.com` | **Neu erstellen** |
|
||||
| `food` | CNAME | `bb0ea86d-8253-4a54-838b-107bb7945be9.cfargotunnel.com` | **Neu erstellen** |
|
||||
| `cards` | CNAME | `bb0ea86d-8253-4a54-838b-107bb7945be9.cfargotunnel.com` | **Neu erstellen** |
|
||||
| `docs` | CNAME | `bb0ea86d-8253-4a54-838b-107bb7945be9.cfargotunnel.com` | **Neu erstellen** |
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ Diese Domains zeigen noch auf Cloudflare Pages. Um sie auf Self-Hosted umzustell
|
|||
|
||||
### Reihenfolge
|
||||
|
||||
1. **Zuerst:** Neue Domains erstellen (`it`, `citycorners`, `nutriphi`, `cards`, `docs`)
|
||||
1. **Zuerst:** Neue Domains erstellen (`it`, `citycorners`, `food`, `cards`, `docs`)
|
||||
2. **Danach:** Bestehende Landing-Domains von Pages auf Tunnel migrieren (eine nach der anderen, testen)
|
||||
3. **Zuletzt:** Alte CF Pages Projekte löschen (optional, kosten nichts)
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ Cloudflare Tunnel (bb0ea86d...)
|
|||
| `storage.mana.how` | Storage Web | 5015 |
|
||||
| `storage-api.mana.how` | Storage API | 3035 |
|
||||
| `presi.mana.how` | Presi Web | 5016 |
|
||||
| `nutriphi.mana.how` | NutriPhi Web | 5017 |
|
||||
| `food.mana.how` | Food Web | 5017 |
|
||||
| `photos.mana.how` | Photos Web | 5019 |
|
||||
| `mukke.mana.how` | Mukke Web | 5180 |
|
||||
| `picture.mana.how` | Picture Web | 5021 |
|
||||
|
|
@ -110,7 +110,7 @@ Cloudflare Tunnel (bb0ea86d...)
|
|||
| `presis.mana.how` | Presi Landing | `/srv/landings/presi` |
|
||||
| `clocks.mana.how` | Clock Landing | `/srv/landings/clock` |
|
||||
| `cards.mana.how` | Cards Landing | `/srv/landings/cards` |
|
||||
| `nutriphi.mana.how` | NutriPhi Landing | `/srv/landings/nutriphi` |
|
||||
| `food.mana.how` | Food Landing | `/srv/landings/food` |
|
||||
| `citycorners.mana.how` | CityCorners Landing | `/srv/landings/citycorners` |
|
||||
| `docs.mana.how` | Dokumentation | `/srv/landings/docs` |
|
||||
|
||||
|
|
|
|||
|
|
@ -179,11 +179,11 @@ presi-api.mana.how {
|
|||
reverse_proxy 10.0.0.2:3036
|
||||
}
|
||||
|
||||
nutriphi.mana.how {
|
||||
food.mana.how {
|
||||
reverse_proxy 10.0.0.2:5017
|
||||
}
|
||||
|
||||
nutriphi-api.mana.how {
|
||||
food-api.mana.how {
|
||||
reverse_proxy 10.0.0.2:3037
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ Dieser Bericht dokumentiert alle externen Dienste im Mana Monorepo und evaluiert
|
|||
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
|
||||
│ │ │ Replicate│ │OpenRouter│ │ Gemini │ │ Ollama │ │Azure OAPI│ │ │
|
||||
│ │ │ (Picture)│ │ (Chat) │ │(Planta, │ │ (Chat) │ │ (Chat) │ │ │
|
||||
│ │ │ CLOUD │ │ CLOUD │ │Nutriphi) │ │ LOCAL │ │ CLOUD │ │ │
|
||||
│ │ │ CLOUD │ │ CLOUD │ │Food) │ │ LOCAL │ │ CLOUD │ │ │
|
||||
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
|
|
@ -84,7 +84,7 @@ Legende: LOCAL = Self-hosted | CLOUD = Externer Dienst | FREE = Kostenlos
|
|||
|--------|--------|-------|------------------|-------------------|
|
||||
| **Replicate** | Picture | Bildgenerierung (Flux, SDXL, SD) | `PICTURE_REPLICATE_API_TOKEN` | €20-100/Monat |
|
||||
| **OpenRouter** | Chat | Cloud LLMs (Claude, GPT, Llama, DeepSeek) | `OPENROUTER_API_KEY` | €10-50/Monat |
|
||||
| **Google Gemini** | Planta, Nutriphi, Cards | Vision & Text AI | `GEMINI_API_KEY`, `PLANTA_GEMINI_API_KEY` | €5-20/Monat |
|
||||
| **Google Gemini** | Planta, Food, Cards | Vision & Text AI | `GEMINI_API_KEY`, `PLANTA_GEMINI_API_KEY` | €5-20/Monat |
|
||||
| **Azure OpenAI** | Chat (Docker) | GPT-4o via Azure | `AZURE_OPENAI_ENDPOINT`, `AZURE_OPENAI_API_KEY` | Optional |
|
||||
| **Anthropic** | Mana Games | Claude API | `MANA_GAMES_ANTHROPIC_API_KEY` | Optional |
|
||||
| **Ollama** | Chat | Lokale LLMs (Gemma 3, Llama) | `OLLAMA_URL` | ✅ Bereits lokal |
|
||||
|
|
@ -104,7 +104,7 @@ Legende: LOCAL = Self-hosted | CLOUD = Externer Dienst | FREE = Kostenlos
|
|||
- `chat-storage` - User-Uploads
|
||||
- `cards-storage` - Card/Deck Assets
|
||||
- `plants-storage` - Pflanzenfotos
|
||||
- `nutriphi-storage` - Mahlzeitenfotos
|
||||
- `food-storage` - Mahlzeitenfotos
|
||||
- `presi-storage` - Präsentationsfolien
|
||||
- `calendar-storage` - Kalender-Anhänge
|
||||
- `contacts-storage` - Kontakt-Avatare
|
||||
|
|
@ -260,7 +260,7 @@ LLaVA (Large Language and Vision Assistant) kann Gemini Vision für die meisten
|
|||
|
||||
**Use-Cases in Mana:**
|
||||
- **Planta:** Pflanzenidentifikation
|
||||
- **Nutriphi:** Lebensmittelerkennung, Nährwertschätzung
|
||||
- **Food:** Lebensmittelerkennung, Nährwertschätzung
|
||||
|
||||
**Installation:**
|
||||
|
||||
|
|
@ -477,10 +477,10 @@ PICTURE_REPLICATE_API_TOKEN=r8_xxx
|
|||
# OpenRouter (Chat)
|
||||
OPENROUTER_API_KEY=sk-or-v1-xxx
|
||||
|
||||
# Google Gemini (Planta, Nutriphi, Cards)
|
||||
# Google Gemini (Planta, Food, Cards)
|
||||
GEMINI_API_KEY=AIza...
|
||||
PLANTA_GEMINI_API_KEY=AIza...
|
||||
NUTRIPHI_GEMINI_API_KEY=AIza...
|
||||
FOOD_GEMINI_API_KEY=AIza...
|
||||
MANA_GAMES_GOOGLE_GENAI_API_KEY=AIza...
|
||||
|
||||
# Ollama (Local - bereits konfiguriert)
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ Centralized media handling for all applications:
|
|||
|--------|---------|-----------|
|
||||
| `picture-storage` | AI-generated images | 100+ GB |
|
||||
| `storage-storage` | User cloud storage | 500+ GB |
|
||||
| `nutriphi-storage` | Meal photos | 50+ GB |
|
||||
| `food-storage` | Meal photos | 50+ GB |
|
||||
| `chat-attachments` | Chat file uploads | 100+ GB |
|
||||
| `presi-assets` | Presentation media | 50+ GB |
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ These apps have server-side compute and support both `local` and `full` modes:
|
|||
| Storage | 3016 | 5185 | Yes | Yes |
|
||||
| Context | 3020 | 5192 | Yes | Yes |
|
||||
| Planta | 3022 | 5191 | Yes | Yes |
|
||||
| NutriPhi | 3023 | 5180 | Yes | Yes |
|
||||
| Food | 3023 | 5180 | Yes | Yes |
|
||||
| Traces | 3026 | mobile | Yes | Yes |
|
||||
| Presi | 3008 | 5178 | Yes | Yes |
|
||||
| uLoad | 3070 | 5173 | Yes | Yes |
|
||||
|
|
@ -161,7 +161,7 @@ pnpm setup:db:context # Setup context database + schema
|
|||
pnpm setup:db:storage # Setup storage database + schema
|
||||
pnpm setup:db:mukke # Setup mukke database + schema
|
||||
pnpm setup:db:plants # Setup plants database + schema
|
||||
pnpm setup:db:nutriphi # Setup nutriphi database + schema
|
||||
pnpm setup:db:food # Setup food database + schema
|
||||
pnpm setup:db:questions # Setup questions database + schema
|
||||
pnpm setup:db:traces # Setup traces database + schema
|
||||
```
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ Diese Services sind für Matrix/Telegram konzipiert, nicht als direkte APIs:
|
|||
| matrix-project-doc-bot | 3313 | Blog-Generierung |
|
||||
| matrix-todo-bot | 3314 | Task Management |
|
||||
| matrix-calendar-bot | 3315 | Kalender/Events |
|
||||
| matrix-nutriphi-bot | 3316 | Ernährungs-Tracking |
|
||||
| matrix-food-bot | 3316 | Ernährungs-Tracking |
|
||||
| matrix-zitare-bot | 3317 | Zitate |
|
||||
| matrix-clock-bot | 3318 | Timer/Alarme |
|
||||
| matrix-tts-bot | 3023 | Sprachausgabe |
|
||||
|
|
@ -461,6 +461,6 @@ services/
|
|||
| 3313 | matrix-project-doc-bot | Bot |
|
||||
| 3314 | matrix-todo-bot | Bot |
|
||||
| 3315 | matrix-calendar-bot | Bot |
|
||||
| 3316 | matrix-nutriphi-bot | Bot |
|
||||
| 3316 | matrix-food-bot | Bot |
|
||||
| 3317 | matrix-zitare-bot | Bot |
|
||||
| 3318 | matrix-clock-bot | Bot |
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
- **Warum:** Knowledge Worker zahlen für Produktivitätstools. AI-Dokumentgenerierung + Versionierung ist ein klarer Produktivitätsgewinn. B2B-fähig.
|
||||
- **Empfehlung:** Free (begrenzte AI-Tokens/Monat), Pro (mehr Tokens + alle Modelle), Team (shared Spaces + höhere Limits).
|
||||
|
||||
### 4. NutriPhi (AI Nutrition Tracking)
|
||||
### 4. Food (AI Nutrition Tracking)
|
||||
|
||||
- **Modell:** Credit-System bereits da (5 Credits/Foto, 2/Text, 10/Coaching)
|
||||
- **Warum:** Health/Fitness-Markt hat hohe Zahlungsbereitschaft (MyFitnessPal, Yazio machen Millionen). Foto-Analyse ist ein starker Differentiator. Recurring Revenue durch tägliche Nutzung.
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ All monitoring tools are publicly accessible - no login required (except GlitchT
|
|||
| Picture | https://stats.mana.how/share/273f67fa569940f6b85e7a7a0a003539/picture-webapp |
|
||||
| Photos | https://stats.mana.how/share/dc201d685f784716a0b8587376eca7a1/photos-webapp |
|
||||
| Storage | https://stats.mana.how/share/392ff51d11f14f0c9d556af1402a3ee6/storage-webapp |
|
||||
| NutriPhi | https://stats.mana.how/share/33dfae72f8e24aaa8008cbbceeaf072d/nutriphi-webapp |
|
||||
| Food | https://stats.mana.how/share/33dfae72f8e24aaa8008cbbceeaf072d/food-webapp |
|
||||
| Planta | https://stats.mana.how/share/1e83a8a67fa84d3995455c21dedbe3a2/plants-webapp |
|
||||
| Presi | https://stats.mana.how/share/a1eb8d1fa4d543e6b97ac41351fe1c6f/presi-webapp |
|
||||
| Skilltree | https://stats.mana.how/share/5de13e0895ae4a69aa2a834f985be14d/skilltree-webapp |
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ Pure CRUD apps use mana-sync directly.
|
|||
| 3035 | picture-server | Hono/Bun | Replicate AI, generation orchestration |
|
||||
| 3036 | cards-server | Hono/Bun | AI card generation |
|
||||
| 3037 | mukke-server | Hono/Bun | Audio processing, BPM, ID3 tags |
|
||||
| 3038 | nutriphi-server | Hono/Bun | Gemini meal analysis |
|
||||
| 3038 | food-server | Hono/Bun | Gemini meal analysis |
|
||||
| 3039 | plants-server | Hono/Bun | Gemini plant analysis |
|
||||
| 3040 | presi-server | Hono/Bun | Share links |
|
||||
| 3042 | mana-mail | Hono/Bun | JMAP proxy to Stalwart, account provisioning |
|
||||
|
|
@ -128,7 +128,7 @@ Pure CRUD apps use mana-sync directly.
|
|||
| 5014 | contacts-web | 3033 contacts-server |
|
||||
| 5015 | storage-web | 3034 storage-server |
|
||||
| 5016 | presi-web | 3040 presi-server |
|
||||
| 5017 | nutriphi-web | 3038 nutriphi-server |
|
||||
| 5017 | food-web | 3038 food-server |
|
||||
| 5018 | zitare-web | *(local-first only)* |
|
||||
| 5019 | photos-web | *(local-first + mana-media)* |
|
||||
| 5020 | skilltree-web | *(local-first only)* |
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ no external callers exist, and no future external callers can show up
|
|||
|
||||
**What was there:** Twelve `*-api.mana.how` Cloudflare Tunnel routes
|
||||
(`todo-api`, `calendar-api`, `contacts-api`, `chat-api`, `storage-api`,
|
||||
`cards-api`, `music-api`, `nutriphi-api`, `picture-api`, `presi-api`,
|
||||
`cards-api`, `music-api`, `food-api`, `picture-api`, `presi-api`,
|
||||
`zitare-api`, `clock-api`) plus their matching `lib/api/services/*.ts`
|
||||
clients in the unified web app, the matching `__PUBLIC_*_API_URL__`
|
||||
runtime injections in `hooks.server.ts`, and the
|
||||
|
|
@ -290,7 +290,7 @@ needed them.
|
|||
- `~/.cloudflared/config.yml` on the Mac Mini lost its 16 dead ingress
|
||||
routes (`chat-api`, `todo-api`, `calendar-api`, `clock-api`, `clock-bot`,
|
||||
`contacts-api`, `zitare-api`, `skilltree-api`, `plants-api`, `cards-api`,
|
||||
`storage-api`, `presi-api`, `nutriphi-api`, `photos-api`, `mukke-api`,
|
||||
`storage-api`, `presi-api`, `food-api`, `photos-api`, `mukke-api`,
|
||||
`picture-api`). The tunnel was reloaded via `kill -HUP <pid>`.
|
||||
- After reload, every former 502 returns 404 from the Cloudflare edge
|
||||
(no ingress route → no origin → 404), confirming the cleanup is live.
|
||||
|
|
@ -565,7 +565,7 @@ in one batch.
|
|||
- `memoro-api.mana.how` → 404 (no ingress route — see "Memoro server
|
||||
detached" entry above; the unified web app does not need it)
|
||||
- 12 ghost API hostnames (`todo-api`, `calendar-api`, `contacts-api`,
|
||||
`chat-api`, `storage-api`, `cards-api`, `music-api`, `nutriphi-api`,
|
||||
`chat-api`, `storage-api`, `cards-api`, `music-api`, `food-api`,
|
||||
`picture-api`, `presi-api`, `zitare-api`, `clock-api`) → 404 (no
|
||||
ingress route — see "Ghost backend API hostnames" entry above)
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Dieses Dokument bietet eine umfassende Übersicht über alle Projekte im Manacor
|
|||
- [Picture](#picture)
|
||||
- [uLoad](#uload)
|
||||
- [Chat](#chat)
|
||||
- [Nutriphi](#nutriphi)
|
||||
- [Food](#food)
|
||||
3. [Shared Packages](#shared-packages)
|
||||
4. [Technologie-Stack](#technologie-stack)
|
||||
5. [Entwicklung](#entwicklung)
|
||||
|
|
@ -50,7 +50,7 @@ pnpm run cards:dev
|
|||
pnpm run memoro:dev
|
||||
pnpm run picture:dev
|
||||
pnpm run uload:dev
|
||||
pnpm run nutriphi:dev
|
||||
pnpm run food:dev
|
||||
```
|
||||
|
||||
---
|
||||
|
|
@ -376,11 +376,11 @@ chat/
|
|||
|
||||
---
|
||||
|
||||
### Nutriphi
|
||||
### Food
|
||||
|
||||
**KI-gestützter Ernährungs-Tracker**
|
||||
|
||||
Nutriphi ist ein intelligenter Ernährungs-Tracker, der mithilfe von Google Gemini Vision API Fotos von Mahlzeiten analysiert und automatisch Nährwertinformationen extrahiert.
|
||||
Food ist ein intelligenter Ernährungs-Tracker, der mithilfe von Google Gemini Vision API Fotos von Mahlzeiten analysiert und automatisch Nährwertinformationen extrahiert.
|
||||
|
||||
#### Features
|
||||
|
||||
|
|
@ -407,12 +407,12 @@ Nutriphi ist ein intelligenter Ernährungs-Tracker, der mithilfe von Google Gemi
|
|||
#### Projektstruktur
|
||||
|
||||
```
|
||||
nutriphi/
|
||||
food/
|
||||
├── apps/
|
||||
│ ├── mobile/ # Expo React Native App (@nutriphi/mobile)
|
||||
│ ├── web/ # SvelteKit Web App (@nutriphi/web)
|
||||
│ └── landing/ # Astro Landing Page (@nutriphi/landing)
|
||||
├── server/ # Hono/Bun server (@nutriphi/server)
|
||||
│ ├── mobile/ # Expo React Native App (@food/mobile)
|
||||
│ ├── web/ # SvelteKit Web App (@food/web)
|
||||
│ └── landing/ # Astro Landing Page (@food/landing)
|
||||
├── server/ # Hono/Bun server (@food/server)
|
||||
```
|
||||
|
||||
#### API Endpoints
|
||||
|
|
@ -430,16 +430,16 @@ nutriphi/
|
|||
|
||||
```bash
|
||||
# Backend starten
|
||||
pnpm dev:nutriphi:backend
|
||||
pnpm dev:food:backend
|
||||
|
||||
# Mobile App starten
|
||||
pnpm dev:nutriphi:mobile
|
||||
pnpm dev:food:mobile
|
||||
|
||||
# Web App starten
|
||||
pnpm dev:nutriphi:web
|
||||
pnpm dev:food:web
|
||||
|
||||
# Landing Page starten
|
||||
pnpm dev:nutriphi:landing
|
||||
pnpm dev:food:landing
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ Diese Dokumentation beschreibt Services, die die bestehende Infrastruktur sinnvo
|
|||
│ ├── Contacts Kontaktverwaltung │
|
||||
│ ├── Storage Cloud-Speicher │
|
||||
│ ├── Presi Präsentationen │
|
||||
│ └── NutriPhi Ernährungstracking │
|
||||
│ └── Food Ernährungstracking │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ MONITORING │
|
||||
│ ├── VictoriaMetrics Zeitreihen-Datenbank für Metriken │
|
||||
|
|
@ -882,7 +882,7 @@ Diese Apps existieren bereits im Monorepo, sind aber noch nicht auf dem Server:
|
|||
| Bot | Beschreibung | Code vorhanden |
|
||||
|-----|--------------|---------------|
|
||||
| `telegram-todo-bot` | Todo-Management via Telegram | ✓ |
|
||||
| `telegram-nutriphi-bot` | Ernährung loggen via Telegram | ✓ |
|
||||
| `telegram-food-bot` | Ernährung loggen via Telegram | ✓ |
|
||||
| `telegram-zitare-bot` | Tägliche Zitate via Telegram | ✓ |
|
||||
| `telegram-project-doc-bot` | Projekt-Dokumentation | ✓ |
|
||||
|
||||
|
|
@ -929,7 +929,7 @@ Diese Apps existieren bereits im Monorepo, sind aber noch nicht auf dem Server:
|
|||
6. 🤖 Weitere Telegram Bots
|
||||
└── todo-bot
|
||||
└── zitare-bot
|
||||
└── nutriphi-bot
|
||||
└── food-bot
|
||||
```
|
||||
|
||||
### Phase 4: Optional (Backlog)
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ hatten die Infrastruktur bereits — sie wurde nur nicht benutzt.
|
|||
`@mana/shared-logger`, damit Module ohne extra dependency darauf
|
||||
zugreifen können.
|
||||
- 7 `console.error` Aufrufe in `apps/api/src/modules/{guides,plants,
|
||||
nutriphi,traces}/routes.ts` durch
|
||||
food,traces}/routes.ts` durch
|
||||
`logger.error('module.event_name', { error: ... })` ersetzt. Event-Namen
|
||||
folgen `<module>.<event>` Konvention für Filterbarkeit in Sentry/JSON-Logs.
|
||||
|
||||
|
|
@ -373,7 +373,7 @@ nicht mehr existiert.
|
|||
`apps/uload/apps/server`. Beide deployed via
|
||||
`docker-compose.macmini.yml`.
|
||||
- Alle anderen 17 (`calendar`, `chat`, `todo`, `contacts`, `picture`,
|
||||
`cards`, `plants`, `nutriphi`, `news`, `traces`, `presi`, `storage`,
|
||||
`cards`, `plants`, `food`, `news`, `traces`, `presi`, `storage`,
|
||||
`music`, `moodlit`, `context`, `guides`, `questions`) wurden zu
|
||||
`apps/api/src/modules/{name}/routes.ts` migriert. Ihre `apps/server/`
|
||||
Verzeichnisse existieren nicht mehr.
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ Jeder einzelne Backend-Service:
|
|||
| Kategorie | Backends | Source Files | Empfehlung |
|
||||
|-----------|----------|-------------|------------|
|
||||
| **Komplex (behalten)** | Chat, Todo, Calendar, Contacts, Storage, Mukke | 60-89 pro Backend | Eigenstaendige Services |
|
||||
| **AI-spezialisiert (behalten)** | Picture, Plants, NutriPhi | 30-50 pro Backend | Eigene AI-Pipelines |
|
||||
| **AI-spezialisiert (behalten)** | Picture, Plants, Food | 30-50 pro Backend | Eigene AI-Pipelines |
|
||||
| **Triviales CRUD (konsolidieren)** | Zitare (20!), Clock (31), Presi, CityCorners, Questions, Context | 20-35 pro Backend | -> 1 Content Service |
|
||||
| **Eliminieren** | Photos (mana-media Proxy), Skilltree (Frontend-only) | minimal | Backend loeschen |
|
||||
|
||||
|
|
@ -379,7 +379,7 @@ Zu granulare Packages (Konsolidierungskandidaten):
|
|||
| shared-help-content, shared-help-mobile, shared-help-types, shared-help-ui | `@mana/help` |
|
||||
| shared-subscription-types, shared-subscription-ui | `@mana/subscriptions` |
|
||||
| shared-nestjs-health, shared-nestjs-metrics, shared-nestjs-setup | `@mana/nestjs-bootstrap` |
|
||||
| cards-database, nutriphi-database, spiral-db | Zurueck in die jeweiligen Apps |
|
||||
| cards-database, food-database, spiral-db | Zurueck in die jeweiligen Apps |
|
||||
|
||||
### Ziel: ~25-30 Packages statt 55
|
||||
|
||||
|
|
@ -558,7 +558,7 @@ Diese Technologie-Entscheidungen sind gut und sollten beibehalten werden:
|
|||
|
||||
### Apps (24)
|
||||
|
||||
calendar, chat, citycorners, clock, contacts, context, docs, inventar, mana, cards, matrix, mukke, nutriphi, photos, picture, plants, playground, presi, questions, skilltree, storage, todo, traces, zitare
|
||||
calendar, chat, citycorners, clock, contacts, context, docs, inventar, mana, cards, matrix, mukke, food, photos, picture, plants, playground, presi, questions, skilltree, storage, todo, traces, zitare
|
||||
|
||||
### Services (17)
|
||||
|
||||
|
|
@ -566,7 +566,7 @@ it-landing, mana-api-gateway, mana-api-gateway-go, mana-auth, mana-crawler, mana
|
|||
|
||||
### Shared Packages (55)
|
||||
|
||||
credit-operations, eslint-config, local-store, mana-core-nestjs-integration, cards-database, notify-client, nutriphi-database, qr-export, shared-api-client, shared-app-onboarding, shared-auth, shared-auth-stores, shared-auth-ui, shared-branding, shared-config, shared-credit-service, shared-credit-ui, shared-drizzle-config, shared-error-tracking, shared-errors, shared-feedback-service, shared-feedback-types, shared-feedback-ui, shared-gpu, shared-help-content, shared-help-mobile, shared-help-types, shared-help-ui, shared-i18n, shared-icons, shared-landing-ui, shared-llm, shared-logger, shared-nestjs-auth, shared-nestjs-health, shared-nestjs-metrics, shared-nestjs-setup, shared-profile-ui, shared-pwa, shared-splitscreen, shared-storage, shared-stores, shared-subscription-types, shared-subscription-ui, shared-tags, shared-tailwind, shared-theme, shared-theme-ui, shared-tsconfig, shared-types, shared-ui, shared-utils, shared-vite-config, spiral-db, test-config, wallpaper-generator
|
||||
credit-operations, eslint-config, local-store, mana-core-nestjs-integration, cards-database, notify-client, food-database, qr-export, shared-api-client, shared-app-onboarding, shared-auth, shared-auth-stores, shared-auth-ui, shared-branding, shared-config, shared-credit-service, shared-credit-ui, shared-drizzle-config, shared-error-tracking, shared-errors, shared-feedback-service, shared-feedback-types, shared-feedback-ui, shared-gpu, shared-help-content, shared-help-mobile, shared-help-types, shared-help-ui, shared-i18n, shared-icons, shared-landing-ui, shared-llm, shared-logger, shared-nestjs-auth, shared-nestjs-health, shared-nestjs-metrics, shared-nestjs-setup, shared-profile-ui, shared-pwa, shared-splitscreen, shared-storage, shared-stores, shared-subscription-types, shared-subscription-ui, shared-tags, shared-tailwind, shared-theme, shared-theme-ui, shared-tsconfig, shared-types, shared-ui, shared-utils, shared-vite-config, spiral-db, test-config, wallpaper-generator
|
||||
|
||||
### Games (3)
|
||||
|
||||
|
|
@ -574,4 +574,4 @@ voxelava, whopixels, worldream
|
|||
|
||||
### Archivierte Apps (apps-archived/)
|
||||
|
||||
bauntown, memoro, news, nutriphi, reader, uload, wisekeep
|
||||
bauntown, memoro, news, food, reader, uload, wisekeep
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
| **DNS/Tunnel** | Cloudflare Tunnel | Ja | → WireGuard + eigene IP, Caddy/Traefik |
|
||||
| **Landing Pages** | Cloudflare Pages | Ja | → Nginx/Caddy auf eigenem Server |
|
||||
| **Image Gen** | Replicate (Picture App) | Ja | → mana-image-gen (FLUX.2 klein, bereits vorhanden!) |
|
||||
| **Vision** | Google Gemini (NutriPhi, Planta) | Teilweise | → Qwen2.5-VL / LLaVA via Ollama (Qualitätsverlust) |
|
||||
| **Vision** | Google Gemini (Food, Planta) | Teilweise | → Qwen2.5-VL / LLaVA via Ollama (Qualitätsverlust) |
|
||||
| **LLM** | Azure OpenAI (Context App) | Teilweise | → Ollama mit größerem Modell |
|
||||
| **LLM Fallbacks** | OpenRouter, Groq, Together | Ja (optional) | Nur Fallbacks, Ollama ist Primary |
|
||||
| **OAuth** | Google OAuth (Contacts Import) | Nein | Nötig für Google Contacts API |
|
||||
|
|
@ -97,7 +97,7 @@ Brevo ist SPOF für alle Transaktions-Emails (Verifizierung, Passwort-Reset).
|
|||
**Status: ✅ ERLEDIGT** (2026-03-24)
|
||||
|
||||
Alle 9 Backends nutzen jetzt `@mana/shared-llm` → `mana-llm` Gateway:
|
||||
- Auth, Chat, Context, NutriPhi, Planta, Traces, Cards, Bot Services, Matrix Bots
|
||||
- Auth, Chat, Context, Food, Planta, Traces, Cards, Bot Services, Matrix Bots
|
||||
- Google Gemini als automatischer Fallback wenn Ollama überlastet
|
||||
- OpenAI SDK komplett entfernt (Project Doc Bot)
|
||||
- Google Gemini SDK entfernt (Cards)
|
||||
|
|
@ -168,7 +168,7 @@ Ihr nutzt Vite überall (SvelteKit, Astro). Jest 29/30 mit ts-jest ist langsamer
|
|||
|
||||
**Aufwand:** 1 Woche | **Impact:** Mittel
|
||||
|
||||
NutriPhi und Planta nutzen Google Gemini Vision. Alternativen via Ollama:
|
||||
Food und Planta nutzen Google Gemini Vision. Alternativen via Ollama:
|
||||
- **Qwen2.5-VL** — Bestes Open-Source Vision Model
|
||||
- **LLaVA** — Leichtgewichtiger, gut für Kategorisierung
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ This document defines the URL schema for all mana.how subdomains.
|
|||
| **Chat** | chat.mana.how | api.mana.how/chat | Active |
|
||||
| **Storage** | storage.mana.how | api.mana.how/storage | Active |
|
||||
| **Zitare** | zitare.mana.how | api.mana.how/zitare | Active |
|
||||
| **NutriPhi** | nutriphi.mana.how | api.mana.how/nutriphi | Active |
|
||||
| **Food** | food.mana.how | api.mana.how/food | Active |
|
||||
| **Presi** | presi.mana.how | api.mana.how/presi | Active |
|
||||
| **SkillTree** | skilltree.mana.how | api.mana.how/skilltree | Active |
|
||||
| **Photos** | photos.mana.how | api.mana.how/photos | Active |
|
||||
|
|
@ -68,7 +68,7 @@ For web analytics, the following apps are tracked in Umami:
|
|||
| `contacts-webapp` | Contacts | contacts.mana.how |
|
||||
| `storage-webapp` | Storage | storage.mana.how |
|
||||
| `zitare-webapp` | Zitare | zitare.mana.how |
|
||||
| `nutriphi-webapp` | NutriPhi | nutriphi.mana.how |
|
||||
| `food-webapp` | Food | food.mana.how |
|
||||
| `presi-webapp` | Presi | presi.mana.how |
|
||||
| `skilltree-webapp` | SkillTree | skilltree.mana.how |
|
||||
| `photos-webapp` | Photos | photos.mana.how |
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ All apps follow `MAJOR.MINOR.PATCH`:
|
|||
| Mukke | 0.2.0 | Beta |
|
||||
| Zitare | 0.2.0 | Beta |
|
||||
| Clock | 0.2.0 | Beta |
|
||||
| Nutriphi | 0.2.0 | Beta |
|
||||
| Food | 0.2.0 | Beta |
|
||||
| Cards | 0.2.0 | Beta |
|
||||
| Mana | 0.2.0 | Beta |
|
||||
| Matrix | 0.2.0 | Beta |
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Mana Companion Brain — Architecture & Implementation Plan
|
||||
|
||||
> Vollstaendiger Umbau-Plan fuer ein zentrales Intelligenz-System ueber alle Module.
|
||||
> Start mit 5 Pilot-Modulen: **Todo, Calendar, Drink, Nutriphi, Places**.
|
||||
> Start mit 5 Pilot-Modulen: **Todo, Calendar, Drink, Food, Places**.
|
||||
> Stand: April 2026
|
||||
|
||||
---
|
||||
|
|
@ -30,7 +30,7 @@ Mana hat 40+ Module, die isoliert arbeiten. Der Companion Brain verbindet sie zu
|
|||
```
|
||||
+---------------------------------------------------+
|
||||
| MODULE LAYER |
|
||||
| Todo - Calendar - Drink - Nutriphi - Places |
|
||||
| Todo - Calendar - Drink - Food - Places |
|
||||
| Jedes Modul emittiert Domain Events via Stores |
|
||||
+------------------------+--------------------------+
|
||||
| emit()
|
||||
|
|
@ -220,7 +220,7 @@ Felder:
|
|||
| `DrinkEntryUndone` | `{ entryId }` | `drinkStore.undoLastEntry()` |
|
||||
| `DrinkGoalReached` | `{ date, goalMl, actualMl, drinkType: 'water' }` | Projection erkennt Zielerreichung |
|
||||
|
||||
#### Nutriphi Events
|
||||
#### Food Events
|
||||
|
||||
| Event | Payload | Abgeleitet aus |
|
||||
|-------|---------|----------------|
|
||||
|
|
@ -370,7 +370,7 @@ export interface DaySnapshot {
|
|||
total: { ml: number; count: number };
|
||||
};
|
||||
|
||||
// Nutriphi
|
||||
// Food
|
||||
nutrition: {
|
||||
meals: number;
|
||||
calories: { actual: number; goal: number; percent: number };
|
||||
|
|
@ -436,7 +436,7 @@ export interface Correlation {
|
|||
- Todo: tasks_completed_count, overdue_count
|
||||
- Calendar: events_count, meeting_hours
|
||||
- Drink: water_ml, coffee_count, goal_reached (boolean)
|
||||
- Nutriphi: calories, protein, meals_count
|
||||
- Food: calories, protein, meals_count
|
||||
- Places: places_visited, distance_km
|
||||
|
||||
### 4.5 ContactHealth (spaeter, nicht in Pilot)
|
||||
|
|
@ -529,9 +529,9 @@ eventBus.on('DrinkLogged', (event) => {
|
|||
Fuer den Start 10-15 Templates die der Nutzer mit einem Tap aktiviert:
|
||||
|
||||
- 8 Glaeser Wasser/Tag (Drink, event_count, DrinkLogged, water)
|
||||
- 2000 kcal/Tag (Nutriphi, event_sum, MealLogged, calories)
|
||||
- 2000 kcal/Tag (Food, event_sum, MealLogged, calories)
|
||||
- 5 Tasks/Tag erledigen (Todo, event_count, TaskCompleted)
|
||||
- Alle Mahlzeiten tracken (Nutriphi, event_count, MealLogged, 3/day)
|
||||
- Alle Mahlzeiten tracken (Food, event_count, MealLogged, 3/day)
|
||||
- Jeden Tag einen neuen Ort besuchen (Places, event_count, PlaceVisited, 1/day)
|
||||
|
||||
---
|
||||
|
|
@ -743,7 +743,7 @@ export const drinkTools: ModuleTool[] = [
|
|||
];
|
||||
|
||||
// modules/calendar/tools.ts — create_event
|
||||
// modules/nutriphi/tools.ts — log_meal
|
||||
// modules/food/tools.ts — log_meal
|
||||
// modules/places/tools.ts — record_visit, create_place
|
||||
```
|
||||
|
||||
|
|
@ -755,14 +755,14 @@ export const drinkTools: ModuleTool[] = [
|
|||
import { todoTools } from '$lib/modules/todo/tools';
|
||||
import { calendarTools } from '$lib/modules/calendar/tools';
|
||||
import { drinkTools } from '$lib/modules/drink/tools';
|
||||
import { nutriphiTools } from '$lib/modules/nutriphi/tools';
|
||||
import { foodTools } from '$lib/modules/food/tools';
|
||||
import { placesTools } from '$lib/modules/places/tools';
|
||||
|
||||
const ALL_TOOLS: ModuleTool[] = [
|
||||
...todoTools,
|
||||
...calendarTools,
|
||||
...drinkTools,
|
||||
...nutriphiTools,
|
||||
...foodTools,
|
||||
...placesTools,
|
||||
];
|
||||
|
||||
|
|
@ -1058,7 +1058,7 @@ User: "Erstell mir eine Morgenroutine"
|
|||
v
|
||||
LLM + Context Document + Tool Schemas
|
||||
|
|
||||
| LLM sieht: Nutzer hat Drink, Todo, Nutriphi, Calendar aktiv
|
||||
| LLM sieht: Nutzer hat Drink, Todo, Food, Calendar aktiv
|
||||
| Memory: "Trinkt morgens zuerst Kaffee"
|
||||
| Goals: "8 Glaeser Wasser/Tag"
|
||||
|
|
||||
|
|
@ -1147,7 +1147,7 @@ apps/mana/apps/web/src/lib/
|
|||
drink/
|
||||
tools.ts ✅ 3 Tools (log, progress, undo)
|
||||
stores/drink.svelte.ts ✅ 3 Events (Logged, Deleted, Undone)
|
||||
nutriphi/
|
||||
food/
|
||||
tools.ts ✅ 2 Tools (log_meal, nutrition_summary)
|
||||
mutations.ts ✅ 3 Events (Logged, PhotoLogged, Deleted)
|
||||
places/
|
||||
|
|
@ -1266,7 +1266,7 @@ Commit: `66dd684bb`
|
|||
- Registry nutzt `registerTools()` Pattern statt statische Imports (tree-shaking-freundlich)
|
||||
- `initTools()` in `(app)/+layout.svelte` gewired neben `startEventStore()`
|
||||
- Executor coerced String→Number und String→Boolean automatisch
|
||||
- Tools pro Modul: Todo (3), Calendar (2), Drink (3), Nutriphi (2), Places (4)
|
||||
- Tools pro Modul: Todo (3), Calendar (2), Drink (3), Food (2), Places (4)
|
||||
- Jeder Tool hat eine `message` Feld fuer menschenlesbare Bestaetigung
|
||||
|
||||
### Phase 5: Companion Chat — ERLEDIGT (2026-04-13)
|
||||
|
|
@ -1377,7 +1377,7 @@ Phase 1 (Events) ──────┬──> Phase 2 (Projections)
|
|||
| 1 | Todo | 5 | 3 | Pilot |
|
||||
| 2 | Calendar | 3 | 2 | Pilot |
|
||||
| 3 | Drink | 3 | 3 | Pilot |
|
||||
| 4 | Nutriphi | 3 | 2 | Pilot |
|
||||
| 4 | Food | 3 | 2 | Pilot |
|
||||
| 5 | Places | 6 | 4 | Pilot |
|
||||
| 6 | Habits | 3 | 3 | Batch 2 |
|
||||
| 7 | Journal | 3 | 2 | Batch 2 |
|
||||
|
|
@ -1483,7 +1483,7 @@ Pulse Rules erzeugen Nudges, aber diese werden nur als OS-Notifications angezeig
|
|||
| Nudge Outcomes | Lokal (Browser) | IndexedDB, nicht synced |
|
||||
| Tool Execution | Lokal (Browser) | Writes gehen in Module-Tabellen |
|
||||
|
||||
**Invariante:** Sensitive Daten (Journal, Dreams, Finance, Nutriphi) werden **nie** an Tier 2/3 gesendet — erzwungen durch `contentClass: 'sensitive'` im LLM Orchestrator.
|
||||
**Invariante:** Sensitive Daten (Journal, Dreams, Finance, Food) werden **nie** an Tier 2/3 gesendet — erzwungen durch `contentClass: 'sensitive'` im LLM Orchestrator.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ recommendation.
|
|||
|
||||
**Productivity:** todo, calendar, contacts, notes, habits, times, timeblocks, events
|
||||
**Knowledge & learning:** cards, zitare, guides, questions, skilltree, memoro, context
|
||||
**Health & self:** nutriphi, cycles, dreams, moodlit, plants
|
||||
**Health & self:** food, cycles, dreams, moodlit, plants
|
||||
**Media & creative:** chat, picture, presi, music, photos, storage, uload
|
||||
**Data & tools:** finance, calc, inventory, places, citycorners, who, news, links, tags, playground
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ recommendation.
|
|||
|
||||
## Lifestyle & Hobbies
|
||||
|
||||
- **recipes** — Recipes (linked to `nutriphi`), meal plan, shopping list generator
|
||||
- **recipes** — Recipes (linked to `food`), meal plan, shopping list generator
|
||||
- **wardrobe** — Catalog clothing, build outfits, "last worn", wash status
|
||||
- **travel** — Trips, itineraries, packing lists, travelogue (combines `places` + `photos`)
|
||||
- **packing** — Reusable packing list templates per trip type
|
||||
|
|
@ -108,10 +108,10 @@ recommendation.
|
|||
|
||||
## Health & Body (additional)
|
||||
|
||||
- **drink** — ✅ **Built.** Getränke-Tracker für alle Getränke (Wasser, Kaffee, Tee, Saft, Alkohol etc.). Tages-/Wochenziele, Favoriten, Verlauf. Verknüpfung mit `nutriphi` und `body`.
|
||||
- **drink** — ✅ **Built.** Getränke-Tracker für alle Getränke (Wasser, Kaffee, Tee, Saft, Alkohol etc.). Tages-/Wochenziele, Favoriten, Verlauf. Verknüpfung mit `food` und `body`.
|
||||
- **stretch** — ✅ **Built.** Geführtes Dehnen mit Timer-Player, Bestandsaufnahme, Routinen, Streaks, Erinnerungen. 22 Seed-Übungen, 5 Preset-Routinen.
|
||||
- **breathe** — Atemübungen & Meditation-Timer mit geführten Mustern (Box Breathing, 4-7-8). Sessions-Log verknüpft mit `moodlit`.
|
||||
- **fasting** — Intervallfasten-Timer (16:8, 18:6, OMAD, custom). Essensfenster visualisieren, Fasten-Streak. Synergie: `nutriphi` (Mahlzeiten im Essensfenster), `drink` (Wasser während Fastenphase).
|
||||
- **fasting** — Intervallfasten-Timer (16:8, 18:6, OMAD, custom). Essensfenster visualisieren, Fasten-Streak. Synergie: `food` (Mahlzeiten im Essensfenster), `drink` (Wasser während Fastenphase).
|
||||
- **posture** — Haltungs-Checks zu konfigurierbaren Zeiten ("Sitzt du gerade?"). Foto-basiertes Tracking (Seitenansicht-Selfie → Vorher/Nachher). Übungsbibliothek für Haltungskorrektur. Arbeitsplatz-Ergonomie-Checkliste. Synergie: `stretch` (Routine-Empfehlung), `body` (Kraftübungen für Haltung).
|
||||
- **skin** — Hautpflege-Routinen (morgens/abends: Produkte + Reihenfolge). Hautzustand-Logging (Foto + Bewertung: Unreinheiten, Trockenheit, Rötung). Produkt-Bibliothek mit Inhaltsstoffen. Trigger-Tracking (Ernährung, Stress, Schlaf → Hautveränderung).
|
||||
- **eyes** — 20-20-20 Regel Reminder (alle 20 Min, 20 Sek, 20 Fuß entfernt schauen). Bildschirmzeit-Logging. Augenübungen (Fokus nah/fern, Kreise, Palming). Synergie: `stretch` (Desk-Break könnte Augenübung enthalten).
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Module ListViews use two different styling approaches:
|
|||
- **Scoped CSS + `hsl(var(--color-*))` theme tokens** — 27 modules (65%)
|
||||
- todo, notes, drink, contacts, journal, dreams, habits, firsts, calendar, chat, places, inventory, finance, news, body, calc, events, photos, automations, cycles, uload, picture, recipes
|
||||
- **Tailwind utility classes** — 13 modules (35%)
|
||||
- nutriphi, plants, moodlit, cards, presi, storage, skilltree, context, guides, memoro, who, music, playground, citycorners, questions, times
|
||||
- food, plants, moodlit, cards, presi, storage, skilltree, context, guides, memoro, who, music, playground, citycorners, questions, times
|
||||
|
||||
### Why it matters
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ Migrate the 13 Tailwind-based ListViews to scoped CSS with `hsl(var(--color-*))`
|
|||
|
||||
### Modules to migrate
|
||||
|
||||
- [ ] nutriphi
|
||||
- [ ] food
|
||||
- [ ] plants
|
||||
- [ ] moodlit
|
||||
- [ ] cards
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue