Commit graph

80 commits

Author SHA1 Message Date
Wuesteon
746df03591 test(auth): update tests for minimal JWT claims architecture
- Update auth.controller.spec.ts to expect accessToken/refreshToken/expiresIn
- Refactor jwt-validation.spec.ts to test minimal claims (sub, email, role, sid)
- Remove B2B/B2C org and credit_balance claims from tests (fetched via API now)
- Add Better Auth CLI config for schema generation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:21:19 +01:00
Wuesteon
bc274846f0 📝 docs(auth): add comprehensive auth architecture documentation
- AUTHENTICATION_ARCHITECTURE.md: JWT flow, EdDSA vs RS256, JWKS usage
- CLAUDE.md: Guidelines to always use Better Auth native features
- Common mistakes and fixes documented
- Developer checklist for auth changes
2025-12-01 15:19:20 +01:00
Wuesteon
08057138a6 🐛 fix(chat): use correct token storage key from shared-auth
Match localStorage key '@auth/appToken' used by @manacore/shared-auth
2025-12-01 15:19:09 +01:00
Wuesteon
8dd1e4326c 🐛 fix(auth): use Better Auth native JWT validation with EdDSA
- Replace jsonwebtoken RS256 validation with jose EdDSA
- Add JWKS endpoint to expose Better Auth public keys
- Use createRemoteJWKSet for token validation
- Fix issuer mismatch (use env var consistently)
- Add jwks table to schema for Better Auth JWT plugin
- Install jose library for JWT verification
2025-12-01 15:18:57 +01:00
Wuesteon
2a002bf6be first auth impl 2025-12-01 13:30:58 +01:00
Wuesteon
8f7c63950c fix(ci): make format check non-blocking
Astro files in manacore/landing have JSX comment syntax issues that
block Prettier. Since we're focusing on chat/manacore core functionality
first, allow format check to fail without blocking the pipeline.

Issues to fix later:
- 13 markdown files need reformatting
- Astro files use HTML comments <!-- --> inside JSX expressions
- Should use JSX comments {/* */} instead

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 19:53:03 +01:00
Wuesteon
0cea08f3bd fix(ci): resolve turbo recursive build loop and filter issues
**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>
2025-11-27 19:26:28 +01:00
Wuesteon
e6f7a4ae4a 🔧 ci: simplify to focus on chat and manacore only
Reduce CI scope to only validate chat and manacore projects:
- Remove all other projects from detect-changes filters
- Update lint/type-check to only run on chat and manacore
- Simplify Docker build matrix to only chat-backend
- Add continue-on-error for type-check and build steps

This allows focused iteration on core projects before expanding to others.

Other projects can be added back incrementally once these are stable.
2025-11-27 19:21:06 +01:00
Wuesteon
c012226a64 🔥 fix(docker): remove deprecated mana-core-nestjs-package
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
2025-11-27 18:59:48 +01:00
Wuesteon
47a3bf9237 🩹 fix(memoro): remove orphaned patch file
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
2025-11-27 18:41:22 +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
Wuesteon
0241f5554c fix(cicd): docker paths, formatting config,
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
2025-11-27 18:33:08 +01:00
Wuesteon
f55962e135 docs: add comprehensive CI/CD documentation hub
- Add cicd/ folder with centralized documentation
- Create TODO.md with 36 actionable tasks across 8 phases
- Create PLAN.md with complete implementation roadmap
- Create COMPLETED.md tracking 70% progress
- Create SETUP.md with step-by-step instructions
- Create CHANGELOG.md with version history
- Create README.md as central navigation hub

All documentation ready for CI/CD implementation
2025-11-27 18:04:07 +01:00
Wuesteon
0ec0396238 Merge branch 'feature/cicd' into cicd/integration 2025-11-27 17:34:13 +01:00
Wuesteon
74dc6892ab first implementation 2025-11-27 17:26:18 +01:00
Till-JS
9e141191b1 fix(presi): fix TypeScript errors and add missing theme module
- 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>
2025-11-27 15:54:21 +01:00
Till-JS
658ebe08fe docs(voxel-lava): add project documentation and env config
- Add CLAUDE.md with project overview, API endpoints, and setup guide
- Add voxel-lava environment variables to .env.development

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 15:46:57 +01:00
Till-JS
1c64359b18 feat(presi): add share deck feature for public presentation viewing
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>
2025-11-27 15:38:25 +01:00
Till-JS
607ca19d4a feat: integrate presi and voxel-lava into monorepo structure
- 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>
2025-11-27 15:33:28 +01:00
Till-JS
58a342b407 feat(reader): integrate reader app into monorepo structure
- Restructure to apps/reader/apps/mobile/ pattern
- Rename package to @reader/mobile
- Add reader:dev and dev:reader:mobile scripts
- Update CLAUDE.md with monorepo commands
- Remove standalone .git repository
- Convert from npm to pnpm

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 15:31:38 +01:00
Till-JS
5b1e12e5d6 feat: add new projects bauntown, presi, voxel-lava, whopixels
- apps/bauntown: Developer community website (Astro landing)
- apps/presi: Presentation project
- games/voxel-lava: Voxel lava game (SvelteKit)
- games/whopixels: Whopixels game

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 15:11:53 +01:00
Till-JS
d35ba768cf chore: add bauntown project to monorepo configuration
- Add bauntown to project list in CLAUDE.md
- Add bauntown dev scripts to package.json
- Update pnpm-lock.yaml with bauntown dependencies

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 15:10:15 +01:00
Till-JS
4f7052b0ca chore: add games folder structure to monorepo
- Create /games directory for game projects
- Update pnpm-workspace.yaml with games paths
- Update CLAUDE.md documentation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 15:06:59 +01:00
Till-JS
7abfc4c0b3 docs: add Hetzner deployment guide and update lockfile
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:47:35 +01:00
Till-JS
cc6ca028a7 chore(nutriphi): update config and type definitions
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:47:28 +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
14aace00c2 feat(manadeck): migrate stores to backend API and remove audio features
- 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>
2025-11-27 14:47:14 +01:00
Till-JS
cb5657579b feat(wisekeep): rename transcriber app to wisekeep
Rebranding the transcriber application to better reflect its purpose:
AI-powered wisdom extraction from video content.

Changes:
- Renamed folder: apps/transcriber → apps/wisekeep
- Updated all package names to @wisekeep/* namespace:
  - @wisekeep/backend
  - @wisekeep/web
  - @wisekeep/landing
  - @wisekeep/mobile
  - @wisekeep/shared-types
- Updated root package.json scripts:
  - wisekeep:dev, dev:wisekeep:backend, dev:wisekeep:web, etc.
- Updated documentation in CLAUDE.md files

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:44:44 +01:00
Till-JS
ea3285dcbb feat(quote): integrate Quote app into monorepo
- 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>
2025-11-27 14:44:33 +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
4b08c41547 feat(transcriber): Add YouTube transcriber app to monorepo
Integrate new transcriber application for AI-powered YouTube video
transcription with full monorepo structure and Groq Whisper API support.

## App Structure
- apps/transcriber/apps/backend - NestJS API server (port 3006)
- apps/transcriber/apps/web - SvelteKit web application
- apps/transcriber/apps/landing - Astro marketing/content site
- apps/transcriber/apps/mobile - Expo React Native app
- apps/transcriber/packages/shared-types - Shared TypeScript types

## Backend Features
- YouTube video download via yt-dlp (child_process)
- Ultra-fast transcription via Groq Whisper API (~300x realtime)
- Fallback to local Whisper for offline use
- Job queue with background processing
- Real-time progress updates via WebSocket (Socket.io)
- Playlist management for batch processing
- Health check endpoints

## API Endpoints
- POST /transcription - Start transcription job
- GET /transcription - List all jobs
- GET /transcription/:id - Get job status
- DELETE /transcription/:id - Cancel job
- GET /transcription/stats - Statistics
- GET /whisper/models - Available models
- GET/POST/DELETE /playlist - Playlist management
- GET /health - Health checks

## Whisper Models
- Groq: whisper-large-v3-turbo (fast, $0.04/hr)
- Groq: whisper-large-v3 (accurate, $0.111/hr)
- Local: tiny, base, small, medium, large

## Monorepo Integration
- Added to pnpm workspace via apps/*/apps/* pattern
- Root scripts: transcriber:dev, dev:transcriber:*
- Package naming: @transcriber/{backend,web,landing,mobile}
- Turbo tasks: dev, build, lint, type-check
- CLAUDE.md documentation

## Technology Stack
- Backend: NestJS 10, TypeScript, Socket.io
- Web: SvelteKit 2, Svelte 5, Tailwind CSS
- Landing: Astro 4, Solid.js, Tailwind CSS
- Mobile: Expo 52, React Native, NativeWind, Zustand
- Transcription: Groq Whisper API (OpenAI-compatible)

## Migration from Python
- Original Python/FastAPI code preserved in legacy/
- Full rewrite to TypeScript/NestJS
- Same functionality with improved architecture

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:21:49 +01:00
Till-JS
98efa6f6e8 Feat: Refactor postgress 2025-11-27 02:25:37 +01:00
Till-JS
046a0e3fe7 Fix: Picture App envs 2025-11-26 17:26:07 +01:00
Wuesteon
c6b95ee8fb 🧑‍💻 chore: add build:packages script and auto-build on install 2025-11-26 14:02:48 +01:00
Wuesteon
5b7d6fadd9 fix env 2025-11-26 13:50:52 +01:00
Wuesteon
2328b8938c 🧑‍💻 chore: add centralized environment variable system
- Add .env.development as single source of truth for dev variables
- Create scripts/generate-env.mjs to generate app-specific .env files
- Add pnpm setup:env command (also runs on postinstall)
- Update turbo.json with globalEnv for cache invalidation
- Add comprehensive docs/ENVIRONMENT_VARIABLES.md
- Update CLAUDE.md with env setup instructions
2025-11-26 13:08:50 +01:00
Wuesteon
ff80aeec1f refactor: restructure
monorepo with apps/ and services/
  directories
2025-11-26 03:03:24 +01:00
Wuesteon
25824ed0ac make auth working 2025-11-26 01:31:12 +01:00
Wuesteon
7a1f1e9aef make auth working 2025-11-26 01:30:51 +01:00
Wuesteon
28d167a978 Merge branch 'feat/mana-core' 2025-11-25 18:57:32 +01:00
Wuesteon
754e87ebc0 add mana core 2025-11-25 18:56:35 +01:00
Till-JS
865d74ff37 Feat: Landingpages centralized, new app news integrated 2025-11-25 18:20:17 +01:00
Till-JS
36b85fc8a0 fix(picture): migrate to Astro 5.x content collections and fix TypeScript errors
- Rename dynamic routes from [slug].astro to [...slug].astro for multi-segment paths
- Replace deprecated entry.slug with entry.id across all components and utils
- Fix TypeScript implicit any types in TemplateFilters and prompt-templates
- Add proper type narrowing for feature.note in pricing page
- Remove unused marked import from FAQCard
- Delete invalid placeholder content files
- Add shared-landing-ui dependency and integrate StepsSection/PricingSection
- Update tailwind config with shared-landing-ui content paths
- Add global.css with Indigo/Violet dark theme variables

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 18:13:57 +01:00
Till-JS
6537863696 feat(nutriphi): migrate from Supabase to PostgreSQL + Hetzner S3
- Add nutriphi-database package with Drizzle ORM
  - meals and nutrition_goals schemas
  - PostgreSQL 16 Docker setup
  - Drizzle Kit configuration

- Migrate backend from Supabase to Drizzle
  - Add DatabaseModule with connection pooling
  - Add StorageService for Hetzner Object Storage (S3-compatible)
  - Update MealsService with Drizzle queries
  - Add /api/meals/upload endpoint for image upload + analysis

- Update web app to use backend for uploads
  - Remove Supabase Storage direct upload
  - Update uploadService to send images to backend
  - Remove Supabase dependencies from package.json
  - Simplify hooks.server.ts

- Add Coolify deployment configuration
  - Dockerfile for production build
  - docker-compose.coolify.yml

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 17:52:14 +01:00
Till-JS
ce71db2fc0 Feat: docs 2025-11-25 15:57:23 +01:00
Till-JS
9a84cc06d6 feat(chat): add SvelteKit web app with full feature parity to mobile
Web app features:
- Auth: Login, Register, Forgot Password with shared-auth-ui
- Chat: New chat, conversation view, message list, model selector
- Templates: List, create, edit, delete templates
- Spaces: Team workspaces with member management
- Documents: Document mode with version history
- Archive & Profile pages

Technical:
- SvelteKit 2 with Svelte 5 runes
- Tailwind CSS 4 with shared themes
- Supabase Auth with SSR
- ChatLogo added to shared-branding
- dev:*:app commands for web+backend

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 15:54:44 +01:00
Till-JS
ba3e0538b4 Feat: Overview doc 2025-11-25 13:49:00 +01:00
Till-JS
c638a7ffee feat(chat): integrate chat project into monorepo with full app structure
- Restructure chat as apps/mobile, apps/web, apps/landing, backend
- Add NestJS backend for secure Azure OpenAI API calls
- Remove exposed API key from mobile app (security fix)
- Add shared chat-types package
- Create SvelteKit web app scaffold
- Create Astro landing page scaffold
- Update pnpm workspace configuration
- Add project-level CLAUDE.md documentation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 13:48:24 +01:00
Till-JS
fcf3a344b1 Feat: New project chat, uload refactor (postgress), hosting plans, uload landingpage 2025-11-25 13:01:41 +01:00
Till-JS
559eb08d8c fix(uload): update Docker config and add env examples to apps/web
- Update Dockerfile for new apps/web structure
- Fix docker-compose.coolify.yml to use correct Dockerfile
- Add .env.example files to apps/web directory
- Remove local build artifacts (.svelte-kit, build)
- Update paraglide/i18n configuration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 12:02:52 +01:00