refactor: rename planta → plants, clean up codebase

- Rename planta module to plants everywhere (routes, modules, API,
  branding, i18n, docker, docs, shared packages)
- Fix package name collisions: @mana/credits-service, @mana/subscriptions-service
  (unblocks turbo)
- Extract layout composables: use-ai-tier-items, use-sync-status-items,
  RouteTierGate (layout 1345→1015 lines)
- Create shared DB pool for apps/api (lib/db.ts), migrate 5 modules
- Add automations module queries.ts with useAllAutomations/useEnabledAutomations
- Remove debug console.log statements from production code
- Rename storage display name: Ablage → Speicher

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-12 18:59:44 +02:00
parent c6c19dbc77
commit a91a6076cc
110 changed files with 831 additions and 707 deletions

View file

@ -103,7 +103,7 @@ Legende: LOCAL = Self-hosted | CLOUD = Externer Dienst | FREE = Kostenlos
- `picture-storage` - AI-generierte Bilder
- `chat-storage` - User-Uploads
- `cards-storage` - Card/Deck Assets
- `planta-storage` - Pflanzenfotos
- `plants-storage` - Pflanzenfotos
- `nutriphi-storage` - Mahlzeitenfotos
- `presi-storage` - Präsentationsfolien
- `calendar-storage` - Kalender-Anhänge

View file

@ -160,7 +160,7 @@ pnpm setup:db:uload # Setup uload database + schema
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:planta # Setup planta database + schema
pnpm setup:db:plants # Setup plants database + schema
pnpm setup:db:nutriphi # Setup nutriphi database + schema
pnpm setup:db:questions # Setup questions database + schema
pnpm setup:db:traces # Setup traces database + schema

View file

@ -36,7 +36,7 @@ All monitoring tools are publicly accessible - no login required (except GlitchT
| 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 |
| Planta | https://stats.mana.how/share/1e83a8a67fa84d3995455c21dedbe3a2/planta-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 |
| Cards | https://stats.mana.how/share/1c1d54c4782943e58dde0a6db7c86ec6/cards-webapp |

View file

@ -104,7 +104,7 @@ Pure CRUD apps use mana-sync directly.
| 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 |
| 3039 | planta-server | Hono/Bun | Gemini plant analysis |
| 3039 | plants-server | Hono/Bun | Gemini plant analysis |
| 3040 | presi-server | Hono/Bun | Share links |
| 3041-3059 | *(reserved)* | | |
@ -137,7 +137,7 @@ Pure CRUD apps use mana-sync directly.
| 5025 | inventory-web | *(local-first only)* |
| 5026 | context-web | *(local-first only)* |
| 5027 | questions-web | *(local-first only)* |
| 5028 | planta-web | 3039 planta-server |
| 5028 | plants-web | 3039 plants-server |
| 5029 | moodlit-web | *(future)* |
| 5030-5049 | *(reserved)* | |

View file

@ -289,7 +289,7 @@ needed them.
removed.
- `~/.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`, `planta-api`, `cards-api`,
`contacts-api`, `zitare-api`, `skilltree-api`, `plants-api`, `cards-api`,
`storage-api`, `presi-api`, `nutriphi-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

View file

@ -33,7 +33,7 @@ nicht zentralisiert.
### 2. ✅ 8× Recursive Turbo Anti-Pattern fixen
**Wo:** `apps/{uload,context,moodlit,planta,storage,news,questions}/package.json`
**Wo:** `apps/{uload,context,moodlit,plants,storage,news,questions}/package.json`
+ `games/arcade/package.json` (im Audit-Sweep zusätzlich gefunden)
**Problem:** Diese package.json enthielten `"dev": "turbo run dev"`.
@ -49,9 +49,9 @@ gefundene Dead-Code:
auf nicht-existierende `@context/web` / `@context/server` Packages —
entfernt, nur `dev:mobile` bleibt (das einzige real existierende
Sub-Package).
- `apps/planta/package.json` hatte `dev:web`, `dev:server`, `db:push`,
`db:studio`, `db:seed` Filter auf nicht-existierende `@planta/web` /
`@planta/server` Packages — entfernt. `apps/planta/` enthält nur ein
- `apps/plants/package.json` hatte `dev:web`, `dev:server`, `db:push`,
`db:studio`, `db:seed` Filter auf nicht-existierende `@plants/web` /
`@plants/server` Packages — entfernt. `apps/plants/` enthält nur ein
leeres `packages/shared/` (siehe Audit-Item #11/#18).
- Analog ist `apps/storage/` und `apps/questions/` nur ein Stub mit
`packages/shared/` bzw. nichts — die CLAUDE.md-Files referenzieren
@ -86,7 +86,7 @@ hatten die Infrastruktur bereits — sie wurde nur nicht benutzt.
- `packages/shared-hono/src/index.ts`: Re-exportiert `logger` aus
`@mana/shared-logger`, damit Module ohne extra dependency darauf
zugreifen können.
- 7 `console.error` Aufrufe in `apps/api/src/modules/{guides,planta,
- 7 `console.error` Aufrufe in `apps/api/src/modules/{guides,plants,
nutriphi,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`, `planta`, `nutriphi`, `news`, `traces`, `presi`, `storage`,
`cards`, `plants`, `nutriphi`, `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.

View file

@ -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, Planta, NutriPhi | 30-50 pro Backend | Eigene AI-Pipelines |
| **AI-spezialisiert (behalten)** | Picture, Plants, NutriPhi | 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 |
@ -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, planta, playground, presi, questions, skilltree, storage, todo, traces, zitare
calendar, chat, citycorners, clock, contacts, context, docs, inventar, mana, cards, matrix, mukke, nutriphi, photos, picture, plants, playground, presi, questions, skilltree, storage, todo, traces, zitare
### Services (17)

View file

@ -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, planta
**Health & self:** nutriphi, 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
@ -104,7 +104,7 @@ recommendation.
- **kids** *(ZK)* — Milestones, illnesses, growth, photos
- **pets** — Vet appointments, vaccinations, feeding, weight
- **plants-care** — Extension of `planta`: watering plan, fertilizing, repotting
- **plants-care** — Extension of `plants`: watering plan, fertilizing, repotting
## Health & Body (additional)