- 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>
- 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>
- 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>
- 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>
- Migrate icons from custom implementation to @manacore/shared-icons (phosphor-svelte)
- Add CSS media queries for dark/light mode (no more flash on reload)
- Add subtle entrance animations (logo fadeInScale, form fadeInUp, slider fadeIn)
- Redesign custom checkbox with CSS-only styling
- Remove isDark prop dependency, use prefers-color-scheme instead
- Update auth layout to allow full-page rendering
Also updates AppSlider component:
- Add staggered entrance animations for app cards
- Redesign modal with glassmorphism style
- Add theme-aware styling via CSS media queries
- Improve status badge design in modal
- Add close button in top-right corner
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace custom Icon.svelte component with phosphor-svelte library
- Remove iconPaths.ts with manually maintained SVG paths
- Update @manacore/shared-icons to re-export phosphor-svelte
- Migrate shared-ui Modal and ConfirmationModal components
- Migrate shared-theme-ui ThemeToggle and ThemeModeSelector
- Migrate all chat app components to use Phosphor Icons
- All apps now use consistent icon API: <IconName size={24} weight="bold" />
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
- 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>
- Fix login redirect to use /dashboard instead of /
- Simplify protected layout auth check with proper error handling
- Use static import and onMount for root page auth check
- Ensure isChecking is always set to false to prevent loader stuck
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add nutriphi branding to shared-branding package (types, config, logo)
- Add nutriphi icon to app-icons and MANA_APPS for AppSlider
- Replace custom login/register pages with shared LoginPage/RegisterPage
- Add forgot-password page using shared ForgotPasswordPage component
- Create AppSlider component for nutriphi web
- Update vite.config.ts with SSR config for shared packages
- Add nutriphi env variables to generate-env.mjs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add missing env vars to generate-env script (DATABASE_URL, MANA_SERVICE_URL, APP_ID)
- Fix auth endpoints to use correct mana-core-auth paths (/api/v1/auth/login)
- Fix api.controller.ts to use getBalance() and completedAt field names
- Add SSR/optimizeDeps config for shared packages in vite.config.ts
- Remove outdated tailwind.config.js (conflicts with Tailwind CSS 4)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add auth dependencies (@manacore/shared-auth, shared-auth-ui, shared-branding, shared-ui)
- Create auth store with Svelte 5 runes for state management
- Add login, register, and forgot-password pages using shared auth UI
- Implement protected routes with auth check and redirect
- Add AppSlider component for auth pages
- Update routing structure with dashboard route
- Fix API client to use dynamic env import
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Switch from static to dynamic public env to allow runtime configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Rename endedAt to completedAt to match database schema
- Add mode field for study session
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add auth store using shared-auth
- Add (auth) route group with login, register, forgot-password pages
- Move main pages to (protected) route group
- Add AppSlider and Header components
- Update layout for authenticated routing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add @mana-core/nestjs-integration dependency to backend
- Add PUBLIC_API_URL and PUBLIC_MANA_CORE_AUTH_URL to web env vars
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update login, register, forgot-password pages to use shared-auth-ui components
- Add AppSlider to all auth pages for cross-app discovery
- Use German translations for all UI text
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
- Add webpack builder to nest-cli.json to fix tsc noEmit issue
- Add localhost:5178 to CORS whitelist in backend
- Fix auth token key in api.ts to match @manacore/shared-auth storage
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Presi webapp:
- Add PillNavigation from @manacore/shared-ui
- Create navigation store for sidebar/collapsed state
- Update layout with floating/sidebar nav modes
- Hide nav on presentation and shared routes
- Add theme toggle and logout to navigation
Auth service:
- Fix JWT private key parsing by converting \n to actual newlines
- Required for Docker env vars where newlines are escaped
Environment:
- Add localhost:5174-5179 to CORS_ORIGINS for all webapp ports
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
Replace dynamic Tailwind classes with explicit scoped CSS to fix
content overlapping with the fixed PillNavigation component.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Rename entire quote project to zitare (German name)
- Add global search page with quote and author search
- Add search to navigation with Cmd/Ctrl+K shortcut
- Add missing icons to PillNavigation (heart, list, compass)
- Update all package names from @quote/* to @zitare/*
- Update env variables from QUOTE_* to ZITARE_*
- Update CLAUDE.md documentation
- Fix layout with flex container structure
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
**Problem:**
- CI build was failing with "Cannot find module manifest-full.js"
- Root cause: Infinite recursive turbo build loop
- chat/package.json had "build": "turbo run build" script
- When CI called `pnpm run build --filter=chat...`, it triggered recursion:
- CI → turbo → chat:build → turbo → chat:build → turbo (infinite)
- Additionally, `--filter=manacore...` failed with "No package found"
**Solution:**
1. Removed "build" script from apps/chat/package.json to prevent recursion
2. Changed CI filters from `--filter=PROJECT...` to `--filter='./apps/PROJECT/**'`
- Directory-based filters work regardless of package.json name
- Prevents recursive turbo calls from wrapper packages
3. Applied fix to all CI jobs: build, lint, type-check, test
**Impact:**
- SvelteKit builds now complete successfully
- manifest-full.js is generated correctly
- No more infinite turbo loops
- Builds work for both chat and manacore projects
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove all git cloning and tarball packaging logic for mana-core-nestjs-package.
Package is no longer needed - logic moved to mana-core service.
Changes:
- Remove git clone with token mounting
- Remove tarball creation steps
- Remove sed replacement of GitHub URLs
- Simplify build dependencies (no git/openssh needed)
Fixes Docker build failures in maerchenzauber and manadeck backends
Remove react-native-css-interop patch file that was causing pnpm install failures.
The package is no longer in dependencies but the patch was not cleaned up.
Fixes CI blocker: 'patch-package' error during postinstall
and documentation
- Fix Docker build paths in maerchenzauber and manadeck
backends
- Add comprehensive CI/CD documentation (private repo
solution, type analysis)
- Configure Prettier with proper plugins for Astro/Svelte
- Update .gitignore to exclude .hive-mind and .claude-flow
- Fix Turbo config for Presi app
Related to cicd/integration branch - Priority 1 & 2 fixes
- Add ThemeModule with controller and service for theme management
- Fix Database type to properly infer Drizzle query types
- Fix page params type assertions for route parameters
- Fix Svelte class directive syntax for Tailwind dark mode classes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add ability to create shareable links for presentations that can be
viewed without authentication. Includes backend share module with
NestJS controller/service and web app routes for creating/managing
share links and viewing shared decks.
- Add ShareModule with public GET endpoint and authenticated CRUD
- Add shareApi methods to web API client
- Add /shared/[code] route for public deck viewing
- Add Share button and modal to deck editor
- Update CLAUDE.md with new endpoints and features
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add presi web app and CLAUDE.md documentation
- Restructure voxel-lava to apps/web pattern
- Add voxel-lava scripts to root package.json
- Update generate-env.mjs for presi configuration
- Update .env.development with new project variables
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
- Refactor mobile stores to use backend API instead of Supabase direct
- Add card-progress and study-session repositories
- Expand API controller with progress tracking endpoints
- Remove AudioRecorder and AudioCard components
- Remove TTS service and Supabase direct access
- Update web stores for consistency
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add complete Quote app with mobile (Expo), web (SvelteKit), landing (Astro), and backend (NestJS)
- Create NestJS backend with Drizzle ORM for PostgreSQL
- Add API endpoints for favorites and user lists
- Add database schema for favorites and user_lists tables
- Update root package.json with quote dev scripts
- Add Quote environment variables to generate-env.mjs
- Add missing toast.ts store for web app
- Configure hybrid content strategy (static + API)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>