Commit graph

36 commits

Author SHA1 Message Date
Wuesteon
4900106021 🎨 style: fix Prettier formatting issues
Fixed formatting in 21 files across calendar, contacts, manacore, manadeck,
picture, storage apps and shared-ui package.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 01:05:10 +01:00
Wuesteon
843cf1e678 fixes 2025-12-04 00:51:40 +01:00
Wuesteon
e9caa4a217 fix lint 2025-12-04 00:32:13 +01:00
Wuesteon
16cb8e753b improve code quality 2025-12-03 23:42:37 +01:00
Till-JS
ba746fce04 Merge branch 'main' of https://github.com/Memo-2023/manacore-monorepo 2025-12-03 11:57:30 +01:00
Wuesteon
ea3582d487 💄 style: apply prettier formatting across codebase
Run prettier --write to fix formatting inconsistencies in 80 files
across calendar, contacts, picture, presi, storage, zitare apps
and shared packages/documentation.
2025-12-03 02:02:09 +01:00
Till-JS
482509a574 🐛 fix(theme): add ShadCN-style CSS variable aliases for shared components
- Add aliases without color- prefix (--background, --foreground, --primary, etc.)
- Fix Mana/Subscription page styling across all apps
- Remove conflicting legacy aliases from contacts app.css
- Update contacts mana page to use toast instead of alert

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:20:49 +01:00
Till-JS
0e5d923faf feat(auth): add centralized user settings synced across all apps
- Add settings module to mana-core-auth with REST API endpoints
- Create user_settings table with globalSettings and appOverrides (JSONB)
- Add createUserSettingsStore() factory in shared-theme package
- Integrate user settings in all app layouts (calendar, chat, contacts, etc.)
- Support for nav position, theme, locale settings with per-app overrides
- Optimistic updates with localStorage caching for offline support
- Add comprehensive documentation in docs/USER_SETTINGS.md

API Endpoints:
- GET /api/v1/settings - Get all user settings
- PATCH /api/v1/settings/global - Update global settings
- PATCH /api/v1/settings/app/:appId - Set app override
- DELETE /api/v1/settings/app/:appId - Remove app override

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:09:47 +01:00
Till-JS
ef8fd6a101 feat(landing): add Cloudflare Pages deployment setup
- Add wrangler.toml for all 5 landing pages (chat, picture, manacore, manadeck, zitare)
- Add wrangler CLI as dev dependency
- Add deploy scripts: pnpm deploy:landing:{project} and pnpm deploy:landing:all
- Add Cloudflare helper scripts: cf:login, cf:projects:list, cf:projects:create
- Document Cloudflare Pages setup in CLAUDE.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:35:54 +01:00
Wuesteon
4cc1ad2c92 🔧 chore: fix turbo infinite recursion and update dependencies
- Remove recursive `turbo run type-check` from parent packages (chat, zitare, voxel-lava)
- Increase turbo concurrency from 2 to 5
- Add documentation for turbo anti-pattern in CLAUDE.md
- Skip type-check temporarily for apps with pending migrations
- Update picture mobile stores to use camelCase API response properties
- Add shared-nestjs-auth dependency to chat and picture backends
- Clean up unused design-token files from picture package
- Update shared-landing-ui components and feedback service config
2025-12-02 02:43:47 +01:00
Wuesteon
0ebfde0851 fix(ci): build shared packages before tests and fix formatting
- Add build:packages step to all test.yml jobs (fixes @manacore/shared-nestjs-auth not found)
- Handle missing coverage artifacts gracefully in test-coverage.yml
- Update .prettierignore to exclude apps-archived/ and problematic files
- Format all source files to pass CI checks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:15:00 +01:00
Wuesteon
5b0b3095ff 🔒️ feat(auth): centralize JWT validation and add deployment docs
- Migrate Chat, Picture, Presi, Zitare backends to shared auth guards
- Remove duplicate local JWT guards and decorators
- Add CD staging workflow for tagged releases
- Add comprehensive auth architecture documentation
- Add Hetzner deployment and Docker setup guides
- Add environment configuration audit docs
- Update env generation scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 20:44:45 +01:00
Wuesteon
8a43bbfc25 🔀 merge: auth/complete branch with Better Auth implementation
Merged auth/complete into main with resolved conflicts:
- Kept Better Auth system (EdDSA JWT via JWKS)
- Removed all Coolify references
- Added dev:auth and dev:chat:full scripts for auth development
- Combined zitare scripts from main with auth scripts
- Exported both feedback.schema and organizations.schema

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:25:38 +01:00
Till-JS
4e4db4612c feat(apps): add unified Apps page and PillNavigation to all web apps
- Add AppsPage component to shared-ui for displaying all Mana apps
- Add allAppsHref prop to PillNavigation with "Alle Apps" link in dropdown
- Integrate PillNavigation in archived apps (maerchenzauber, news, uload, wisekeep)
- Add /apps route to all web apps (active and archived)
- Replace custom sidebars/headers with unified PillNavigation

Apps updated:
- Active: chat, manacore, manadeck, picture, presi, zitare
- Archived: maerchenzauber, memoro, news, nutriphi, uload, wisekeep

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:48:00 +01:00
Till-JS
51edd52241 refactor(picture): remove Supabase dependency, migrate to NestJS backend
- Backend: Replace Supabase storage with S3/local hybrid StorageService
- Backend: Add rate-limits endpoint to ProfileController
- Mobile: Update RateLimitIndicator to use backend API
- Mobile: Remove @supabase/supabase-js dependency
- Shared: Remove queue.ts and supabase.ts (no longer needed)
- Update environment configuration for S3 storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:22:49 +01:00
Till-JS
a09c389ede fix(picture): resolve hydration error and CORS issues
- Add ssr.noExternal config for @manacore packages with .svelte.ts files
  to ensure Svelte 5 runes are properly processed
- Fix CORS configuration to return Access-Control-Allow-Origin header
  by using callback function for origin validation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:14:08 +01:00
Wuesteon
2a002bf6be first auth impl 2025-12-01 13:30:58 +01:00
Till-JS
9a29a8e1ed feat: improve language switcher integration across all web apps
- Add language selector to PillNavigation in all apps
- Update LanguageSelector components to use shared-i18n utils
- Simplify AppSlider components
- Add getLanguageDropdownItems and getCurrentLanguageLabel utils

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:46:13 +01:00
Till-JS
6bb8285349 refactor(apps): unify AppSlider to use centralized MANA_APPS config
- Update ManaCore, ManaDeck, and Picture AppSlider components
- Replace hardcoded app lists with getActiveManaApps() from shared-branding
- Use APP_STATUS_LABELS and APP_SLIDER_LABELS for translations
- Archived apps (Memoro, Märchenzauber, WiseKeep, Nutriphi) now auto-filtered
- All 5 apps with AppSlider now use the same centralized config

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:46:13 +01:00
Till-JS
2d17b720f8 feat(theme): add complete theme support to all web apps
- ManaCore: add /themes page, use bg-background, add themeMode props
- ManaDeck: fix bg-gray to bg-background, add themeMode/onThemeModeChange
- Picture: add themeMode/onThemeModeChange props
- Zitare: add themeMode/onThemeModeChange props
- Presi: add themeMode/onThemeModeChange props

All apps now support:
- Theme variant dropdown (Lume, Ocean, Nature, Ember)
- Light/Dark/System mode selector
- Dynamic background colors via CSS variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:36:47 +01:00
Till-JS
eab69c512c feat(i18n): add language picker and 5-language support to all auth screens
- Add svelte-i18n and @manacore/shared-i18n to Chat, Presi, Zitare
- Create LanguageSelector component for each app
- Add locale files for DE, EN, IT, FR, ES in all apps
- Update auth pages (login, register, forgot-password) to use shared translations
- Add headerControls snippet to RegisterPage and ForgotPasswordPage
- Export ZitareLogo and NutriPhiLogo from shared-branding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:28:14 +01:00
Till-JS
9432a73a1f feat: integrate shared PageHeader and ProfilePage across all web apps
- Add backHref prop to PageHeader component for back navigation
- Integrate PageHeader in Chat app (archive, documents, spaces, templates)
- Integrate PageHeader in Picture app (board, generate, profile, tags, upload)
- Integrate PageHeader in Manacore app (dashboard, organizations, teams)
- Integrate PageHeader in Presi app (home, profile)
- Integrate PageHeader in Zitare app (authors, lists)
- Update Picture, Manadeck, Presi profiles to use shared ProfilePage
- Create new profile pages for Manacore and Zitare using shared ProfilePage
- Add profile navigation links to Manacore and Zitare
- Add Mana subscription pages to Presi and Zitare
- Fix shared-profile-ui tsconfig.json (remove invalid extends)
- Add @manacore/shared-profile-ui dependency to all web apps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:06:29 +01:00
Till-JS
353cf6adb2 feat: rename subscription routes to /mana across all apps
- Add /mana route to chat web app with SubscriptionPage
- Add manaHref prop to PillNavigation for user dropdown link
- Add mana icon to PillDropdown component
- Rename /subscription to /mana in picture, manacore, and manadeck apps
- Update navigation items to use mana icon and label

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 15:42:32 +01:00
Till-JS
f436fbb99d feat(theme): migrate theme emojis to Phosphor icons and integrate theme system into Zitare
- Replace emoji with Phosphor icon components in ThemeCard
- Add icon property to ThemeVariantDefinition type
- Add theme icon SVG paths to PillDropdown (sparkle, leaf, hexagon, waves)
- Update all app layouts to use icon instead of emoji for theme variants
- Integrate shared-theme system into Zitare web app
- Migrate Zitare from Tailwind v3 to v4
- Add themes page to Zitare
- Update Zitare settings page with icon-based theme display
- Add missing shared-icons dependency to Presi and Zitare

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 09:24:32 +01:00
Till-JS
b9608bd5d2 fix(picture): resolve all TypeScript type errors
- Migrate stores from Database types to API types (camelCase)
- Fix snake_case to camelCase property access across components
- Remove deprecated userId params from API calls (now auth-based)
- Fix Konva type comparisons in BoardCanvas
- Fix async onMount return type issues
- Add emoji property to ThemeVariantDefinition type
- Fix Input autocomplete type to use AutoFill
- Remove invalid 'downloading' status checks

Reduces type errors from 120 to 0.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 09:17:55 +01:00
Till-JS
8a4cc298f6 feat(theme): add themes page to picture, manadeck, and presi apps
- Add dedicated /themes page with ThemePage component to all three apps
- Add theme variant dropdown with "Alle Themes" link in navigation
- Add keyboard shortcut 'T' for quick access to themes page
- Export PillNavElement type from shared-ui package

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 09:14:12 +01:00
Till-JS
54383bf7c2 feat(theme): add ThemePage components and distinct background colors
- Add unique background colors for each theme variant:
  - Lume: warm cream/gold tint
  - Nature: green tint in dark mode
  - Stone: blue-gray tint in dark mode
  - Ocean: blue tint in dark mode

- Create shared-theme-ui components:
  - ThemeColorPreview: color circles preview component
  - ThemeCard: individual theme card with status support
  - ThemeGrid: responsive grid layout
  - ThemePage: full page component with mode selector

- Integrate theme page in Chat app:
  - Add /themes route with ThemePage component
  - Add "🎨 Alle Themes" link to PillNavigation dropdown
  - Add palette icon to shared-ui icon set

- Migrate Presi and Picture apps to shared-theme system
- Update semantic color usage across all apps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 09:03:20 +01:00
Till-JS
655da23d14 fix(presi): resolve CORS issues and add strictPort to all web apps
- Add port 5180 to CORS_ORIGINS in .env.development
- Add port 5178 to Presi backend CORS config
- Fix Presi API client to use /api prefix
- Add strictPort: true to all web app vite configs to prevent port switching:
  - manacore: 5173
  - chat: 5174
  - picture: 5175
  - manadeck: 5176
  - zitare: 5177
  - presi: 5178
  - voxel-lava: 5180

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 06:58:00 +01:00
Till-JS
4eed41499a feat(shared-ui): extend PillNavigation with tab groups and migrate Picture app
- Add PillTabGroup component for segmented controls within navigation
- Extend PillNavigation with elements prop supporting tabs and dividers
- Add new types: PillTabOption, PillTabGroupConfig, PillDivider, PillNavElement
- Migrate Picture app from custom Sidebar to shared PillNavigation
- Add transparent filter bars to Gallery and Explore pages
- Add dev credentials auto-fill on logo click in shared LoginPage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 06:55:14 +01:00
Till-JS
0acd7c3e7e feat(shared-branding): add global app icons and centralized app config
- Add app-icons.ts with SVG data URLs for all Manacore apps
- Add mana-apps.ts with centralized app configuration (de/en translations)
- Update AppSlider components across all apps to use global APP_ICONS
- Use real SVGs for memoro, manacore, mana, moodlit, maerchenzauber
- Placeholder icons for apps without original SVGs (chat, presi, manadeck, picture, zitare, wisekeep)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 20:54:50 +01:00
Till-JS
5e15f57816 feat(picture): migrate to mana-core auth and update AI models
Web app:
- Replace Supabase auth with @manacore/shared-auth
- Add Svelte 5 runes auth store (auth.svelte.ts)
- Remove deprecated auth files (LoginForm, SignupForm, authService, supabase.ts)
- Update all components to use authStore

Backend:
- Update AI models: flux-schnell, seedream-3, nano-banana
- Remove old models: sdxl, flux-pro
- Make models endpoint public (no auth required)
- Add unique constraint to model name

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 20:27:39 +01:00
Wuesteon
d36b321d9d style: auto-format codebase with Prettier
Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
2025-11-27 18:33:16 +01:00
Till-JS
c561c4c8d8 feat(picture): migrate from Supabase to NestJS backend API
- Migrate image generation from Supabase Edge Functions to NestJS
- Add profiles and image-likes schemas
- Refactor mobile auth context for backend API
- Update all mobile hooks and services for API integration
- Add Docker configuration for deployment
- Remove Supabase functions and migrations
- Add migration plan documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:47:23 +01:00
Till-JS
3a8d6bcf94 feat(picture): migrate batch generation from Supabase to NestJS API
- Add BatchModule with controller, service, and DTOs
- Create batch_generations database schema and migration
- Add batch API client for mobile app
- Replace Supabase Realtime with polling in batchStore
- Implement full CRUD operations for batch generations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:44:01 +01:00
Till-JS
98efa6f6e8 Feat: Refactor postgress 2025-11-27 02:25:37 +01:00
Wuesteon
ff80aeec1f refactor: restructure
monorepo with apps/ and services/
  directories
2025-11-26 03:03:24 +01:00