Commit graph

1024 commits

Author SHA1 Message Date
Till-JS
2a03a7ce41 fix(matrix-mana-bot): import service modules in OrchestrationModule
AiService, TodoService, and CalendarService require their modules
to be imported for dependency injection to work.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:41:13 +01:00
Till-JS
5b4b1282f8 build(bot-services): add build step for Node.js v25 compatibility
- Add build script to compile TypeScript to dist/
- Update index.ts exports to use explicit .js extensions
- Update package.json exports to point to compiled JavaScript files
- Requires running 'pnpm --filter @manacore/bot-services build' before consuming

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:40:05 +01:00
Till-JS
c29939e7bc feat: add voice transcription support to Matrix bots
Add TranscriptionModule and handleAudioMessage to enable voice message
transcription across all Matrix bots. Users can now send voice messages
which are automatically transcribed and processed as text commands.

Affected bots:
- matrix-calendar-bot
- matrix-chat-bot
- matrix-contacts-bot
- matrix-manadeck-bot
- matrix-ollama-bot
- matrix-picture-bot
- matrix-planta-bot
- matrix-presi-bot
- matrix-questions-bot
- matrix-skilltree-bot
- matrix-stats-bot
- matrix-storage-bot
- matrix-tts-bot

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:37:30 +01:00
Till-JS
12f1288aec build(matrix-bot-common): add build step for Node.js v25 compatibility
- Add build script to compile TypeScript to dist/
- Update exports to point to compiled JavaScript files
- Requires running 'pnpm --filter @manacore/matrix-bot-common build' before consuming

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:37:20 +01:00
Till-JS
cfaf9f2f6e fix(matrix-bot-common): use explicit ESM imports for Node.js v25 compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:34:07 +01:00
Till-JS
6a675e5de6 🐛 fix: resolve tsconfig and dependency errors
- storage/planta: Define compiler options locally instead of extending
  shared-tsconfig to fix decorator and drizzle-orm type issues
- matrix-calendar-bot: Add missing @manacore/bot-services dependency

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:32:46 +01:00
Till-JS
a23430f210 feat: add KeywordCommandDetector to all 19 Matrix bots
All bots now support natural language commands via KeywordCommandDetector:
- matrix-chat-bot (gespraeche, modelle, verlauf, etc.)
- matrix-mana-bot (todo, timer, kalender, summary, etc.)
- matrix-manadeck-bot (decks, karten, lernen, mana, etc.)
- matrix-planta-bot (pflanzen, giessen, faellig, etc.)
- matrix-presi-bot (presis, folien, themes, teilen, etc.)
- matrix-project-doc-bot (projekte, generate, export, etc.)
- matrix-questions-bot (fragen, recherche, antwort, etc.)
- matrix-skilltree-bot (skills, xp, stats, aktivitaeten, etc.)
- matrix-stats-bot (stats, heute, woche, realtime, etc.)
- matrix-storage-bot (dateien, ordner, teilen, suche, etc.)
- matrix-tts-bot (voice, voices, speed, etc.)

All bots include COMMON_KEYWORDS (hilfe, help, status).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:26:25 +01:00
Till-JS
c28410b736 🔧 chore: enable OIDC for Matrix Synapse
- Add SYNAPSE_OIDC_CLIENT_SECRET to mana-core-auth env
- Enable OIDC provider config in homeserver.yaml
- Add matrix.mana.how and element.mana.how to CORS origins

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:25:59 +01:00
Till-JS
cd28a83007 feat(mana-media): add unified media processing platform MVP
- Create mana-media service for centralized media handling
- Add upload, processing, and delivery modules
- Configure BullMQ for async transcoding jobs
- Add S3-compatible storage integration
- Create TypeScript client package

Features:
- Multi-format image/video upload
- Async transcoding via ffmpeg
- Adaptive streaming (HLS) support
- Signed URL delivery

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:25:53 +01:00
Till-JS
5c8120f437 feat(manalink): add PWA support and rebrand Matrix client
- Rename "Mana Matrix" to "Manalink" (bridge metaphor)
- Add PWA manifest with app icons and shortcuts
- Configure Service Worker with Workbox caching strategies
- Add iOS/Android meta tags for installability
- Create bridge-themed SVG favicon
- Add icon generation script (sharp)

PWA features:
- Installable on iOS/Android homescreen
- Offline caching (NetworkFirst for API, CacheFirst for assets)
- App shortcuts for "New Chat"
- Auto-updating Service Worker

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:25:45 +01:00
Till-JS
867a1a7fb6 ♻️ refactor: migrate 5 bots to KeywordCommandDetector
Migrated to KeywordCommandDetector from @manacore/matrix-bot-common:
- matrix-calendar-bot (termine, kalender keywords)
- matrix-clock-bot (timer, zeit keywords)
- matrix-picture-bot (modelle, verlauf keywords)
- matrix-todo-bot (aufgaben, projekte keywords)
- matrix-zitare-bot (zitat, kategorien keywords)

Removed duplicate KEYWORD_COMMANDS arrays and detectKeywordCommand()
methods from all 5 bots.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:11:58 +01:00
Till-JS
462ef006f0 feat(matrix-mana-bot): add persistent voice preferences (Phase 4)
- Create VoicePreferencesStore for file-based persistence
- Preferences saved to data/voice-preferences.json
- Add autoVoiceReply setting for voice message auto-response
- Add !speed command for speech speed control (0.5-2.0x)
- Add !voice auto an/aus for auto-reply toggle
- Update HELP_TEXT with voice command documentation
- Debounced save with 1s delay for performance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:08:52 +01:00
Till-JS
e892e8db35 feat(matrix-mana-bot): add smart voice formatting (Phase 3)
- Create VoiceFormatterService for intelligent speech formatting
- Convert numbers to German words (eins, zwei, drei...)
- Convert times to natural speech (10:00 → zehn Uhr, 14:30 → halb drei)
- Convert dates to German format (15.02. → 15. Februar)
- Format task metadata (!p1 → mit höchster Priorität, @heute → fällig heute)
- Summarize long lists (top 3 + "und X weitere")
- Convert numbered lists to ordinals (Erstens, Zweitens, Drittens)
- Smart truncation at sentence boundaries
- Remove inline prepareTextForSpeech(), use formatter service

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:05:51 +01:00
Till-JS
7a2e037cd5 ♻️ refactor: migrate 4 more bots to use UserListMapper
Migrated to UserListMapper<T> from @manacore/matrix-bot-common:
- matrix-manadeck-bot (decksMapper, cardsMapper)
- matrix-planta-bot (plantsMapper)
- matrix-questions-bot (questionsMapper, collectionsMapper, answersMapper)
- matrix-storage-bot (filesMapper, foldersMapper, sharesMapper, trashMapper)

Benefits:
- Consistent API for user-specific list storage
- Type-safe getByNumber(), setList(), hasList(), clearList()
- Reduced boilerplate code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:03:10 +01:00
Till-JS
48dfcd180f feat(matrix-mana-bot): add voice output/TTS support (Phase 2)
- Add VoiceHandler for voice commands (!voice, !stimme, !stimmen)
- Extend MatrixService with TTS response generation
- Add prepareTextForSpeech() for German natural speech formatting
- Send audio responses non-blocking after text response
- Register voice commands in command router

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:02:37 +01:00
Till-JS
db07b5613d feat(matrix-mana-bot): add voice input support (Phase 1)
- Add VoiceModule and VoiceService for STT integration
- Override handleAudioMessage to process voice notes
- Transcribe audio via mana-stt (Whisper)
- Route transcribed text through CommandRouter
- Add voice configuration and environment variables
- Update help text and documentation

Voice flow:
1. User sends voice note
2. Bot downloads and transcribes audio
3. Shows transcription: 🎤 *"text"*
4. Routes as normal text command
5. Returns text response

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:59:13 +01:00
Till-JS
f04c27fe26 ♻️ refactor: migrate 5 Matrix bots to shared utilities
Migrate bots to use KeywordCommandDetector and UserListMapper from
@manacore/matrix-bot-common, reducing duplicate code.

KeywordCommandDetector (natural language command detection):
- matrix-ollama-bot
- matrix-nutriphi-bot
- matrix-contacts-bot

UserListMapper (number-based reference system):
- matrix-presi-bot (decks + themes)
- matrix-skilltree-bot (skills)
- matrix-contacts-bot (contacts)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:57:21 +01:00
Till-JS
4d8c7f1a7c 🔧 chore: temporarily disable OIDC in synapse config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:49:45 +01:00
Till-JS
2567ea622c ♻️ refactor: migrate all 18 Matrix bots to extend BaseMatrixService
All Matrix bots now extend BaseMatrixService from @manacore/matrix-bot-common:
- matrix-calendar-bot
- matrix-chat-bot
- matrix-clock-bot
- matrix-contacts-bot
- matrix-mana-bot
- matrix-manadeck-bot
- matrix-nutriphi-bot
- matrix-ollama-bot
- matrix-picture-bot
- matrix-planta-bot
- matrix-presi-bot
- matrix-project-doc-bot
- matrix-questions-bot
- matrix-skilltree-bot
- matrix-storage-bot
- matrix-todo-bot
- matrix-tts-bot
- matrix-zitare-bot

Consolidated code:
- Matrix client initialization (onModuleInit)
- Graceful shutdown (onModuleDestroy)
- sendMessage/sendReply/sendNotice methods
- markdownToHtml conversion
- Room permission checking
- Media upload/download

Estimated code reduction: ~1,500+ lines of duplicate code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:47:11 +01:00
Till-JS
f4d8ed491c feat(mana-voice-bot): add German voice-to-voice assistant service
Complete voice pipeline combining:
- STT: Whisper (mana-stt)
- LLM: Ollama (Gemma/Qwen)
- TTS: Edge TTS (15 German voices)

Endpoints:
- /voice - Full audio-to-audio pipeline
- /chat/audio - Text-to-audio
- /tts - Direct TTS
- /transcribe - STT only

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:21:13 +01:00
Till-JS
83f2d63f56 ♻️ refactor: migrate 19 Matrix bots to shared HealthController
- All bots now use HealthController from @manacore/matrix-bot-common
- Deleted 19 duplicate health.controller.ts files
- Added IConfigService interface for @nestjs/config v3/v4 compatibility
- matrix-stats-bot migrated to use BaseMatrixService as example
- All 19 bots pass type-check

This consolidation eliminates ~400 lines of duplicate health check code.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 01:17:01 +01:00
Till-JS
145b0b6599 feat: create @manacore/matrix-bot-common shared package
New package with shared utilities for Matrix bots:

**Components:**
- `BaseMatrixService` - Abstract base class with client lifecycle
- `HealthController` - Standardized health endpoint
- `MatrixMessageService` - Message/reply/reaction helpers
- `markdownToHtml` - Markdown to HTML conversion
- `KeywordCommandDetector` - Natural language command detection
- `SessionHelper<T>` - Type-safe session data wrapper
- `UserListMapper<T>` - Number-based reference system

**Estimated Impact:**
- ~4,000 lines of duplicate code can be eliminated
- 19 Matrix bots can use these shared utilities
- Consistent behavior across all bots

Documentation in packages/matrix-bot-common/CLAUDE.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 01:02:55 +01:00
Till-JS
2b979d5548 ♻️ refactor: migrate all remaining bots to shared services
Completed migration of all Matrix bots to @manacore/bot-services:

**SessionService (11 bots migrated):**
- matrix-chat-bot (with conversation/model mapping via setSessionData)
- matrix-contacts-bot
- matrix-skilltree-bot
- matrix-presi-bot
- matrix-questions-bot
- matrix-storage-bot
- matrix-planta-bot
- matrix-manadeck-bot
- matrix-nutriphi-bot (with pendingImage via setSessionData)
- matrix-picture-bot (previous commit)
- matrix-zitare-bot (previous commit)

**TranscriptionService (5 bots migrated):**
- matrix-todo-bot (previous commit)
- matrix-clock-bot (previous commit)
- matrix-zitare-bot (previous commit)
- matrix-nutriphi-bot
- matrix-project-doc-bot

**Code Reduction:**
- Deleted 22 local module files (session + transcription)
- ~1100 lines of duplicate code removed total
- All bots now share identical auth and STT logic

**Special handling:**
- matrix-chat-bot: Extended methods converted to setSessionData/getSessionData
- matrix-nutriphi-bot: pendingImage state via setSessionData
- matrix-project-doc-bot: TranscriptionService used by MediaService

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 00:50:48 +01:00
Till-JS
9b61831cb5 ♻️ refactor: consolidate SessionService & TranscriptionService in @manacore/bot-services
Created shared services to eliminate code duplication across Matrix bots:

**New Services in @manacore/bot-services:**
- SessionService: User authentication via mana-core-auth (was duplicated in 11 bots)
- TranscriptionService: Speech-to-text via mana-stt (was duplicated in 6 bots)

**Migrated Bots:**
- matrix-todo-bot: uses TranscriptionService
- matrix-picture-bot: uses SessionService
- matrix-clock-bot: uses TranscriptionService
- matrix-zitare-bot: uses both SessionService & TranscriptionService

**Code Reduction:**
- Removed ~300 lines of duplicate code from migrated bots
- Centralized service configuration via NestJS modules
- Added comprehensive documentation in CLAUDE.md

Remaining bots can be migrated following the same pattern documented
in packages/bot-services/CLAUDE.md.

Note: @storage/backend type-check fails due to pre-existing drizzle-orm issue

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 00:37:54 +01:00
Till-JS
508ae124a9 🏗️ refactor: restructure docker-compose with new port schema and naming
Implements ADR-003 Infrastructure Audit:

Port Schema:
- 3000-3099: Core Services & Backends
- 4000-4099: Matrix Stack
- 5000-5099: Web Frontends
- 6000-6099: Automation
- 8000-8099: Monitoring
- 9000-9199: Infrastructure & Exporters

Naming Convention:
- Changed from manacore-* to mana-{category}-{service}
- Categories: infra, core, app, matrix, mon, auto

Optimizations:
- Removed excessive depends_on chains (lazy connect with retry)
- Consolidated 10 Matrix bot volumes to 1 shared volume
- Organized services by tier (0-8)

BREAKING CHANGE: All container names and ports changed.
Cloudflare Tunnel configuration must be updated.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 00:37:12 +01:00
Till-JS
213740411b feat(llm-playground): add model metadata system and SSD documentation
- Add MODEL_METADATA config for Ollama models with descriptions and modality
- Update default model to gemma3:4b
- Show model descriptions in ModelSelector and ComparisonSelector
- Add docs/OLLAMA_MODELS.md with instructions for adding new models
- Document external 4TB SSD setup in MAC_MINI_SERVER.md
- Add gemma3:12b, gemma3:27b, qwen2.5-coder:14b to model registry
2026-02-01 00:24:34 +01:00
Till-JS
a341aa1b13 🔥 remove: Telegram bots - Matrix-only strategy
Remove all 6 Telegram bot services to focus on Matrix as the sole
messaging platform for full UI/UX control and DSGVO compliance.

Removed services:
- telegram-nutriphi-bot
- telegram-ollama-bot
- telegram-project-doc-bot
- telegram-stats-bot
- telegram-todo-bot
- telegram-zitare-bot

Also:
- Remove Telegram bot scripts from package.json
- Remove telegram-stats-bot from docker-compose.macmini.yml
- Disable Watchtower Telegram notifications
- Remove Telegram devlog
- Add comprehensive MATRIX_BOT_ARCHITECTURE.md documentation

The Matrix-only approach provides:
- Full control over user experience
- Complete DSGVO compliance (all data on own servers)
- No dependency on third-party platforms
- Unified command patterns across all bots
2026-02-01 00:17:14 +01:00
Till-JS
d2f00c1d77 📝 docs(landing): add blueprints section for architecture decisions
Add new blueprints content collection and pages for documenting
architecture decisions, technology strategies and long-term planning.

- Add blueprints collection schema with status tracking (draft/proposal/accepted/implemented/superseded)
- Create index and detail pages for blueprints at /blueprints
- Add first blueprint: Mana Cluster & Federation Architecture
- Add ADR-002 in docs/decisions for internal reference
- Add nav.blueprints translation for all 5 languages
- Add blueprints link to main navigation
2026-02-01 00:07:34 +01:00
Till-JS
d605366460 feat(llm-playground): add model comparison feature
- Add modality detection (text/vision/code) to models store
- Create comparison store for parallel multi-model streaming
- Add ModelModalityFilter and ModelComparisonSelector components
- Add ComparisonResponseCard with metrics (duration, tokens, t/s)
- Add ComparisonMessageBubble for side-by-side response view
- Integrate comparison mode into ChatInput, MessageList, Sidebar
- Add dev:full script to start mana-llm + playground together
- Add start.sh script for mana-llm Python service
2026-01-31 23:30:16 +01:00
Till-JS
1d88387c52 docs: add daily report for 2026-01-30
Comprehensive documentation of today's work including:
- Matrix SSO/OIDC integration with Better Auth
- 9 new Matrix bots for app integration
- LLM Playground UI
- Demo mode removal from all apps
- Docker and build fixes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 20:00:24 +01:00
Till-JS
2daaee74fd 🐛 fix: syntax error in contacts-web +layout.svelte
Remove stray closing brace and fix indentation in onMount.
2026-01-30 18:58:38 +01:00
Till-JS
744d0c9c61 fix(mana-core-auth): remove non-existent id field from trusted client
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:28:51 +01:00
Till-JS
c949f5d02a fix(mana-core-auth): fix type compatibility for trusted client config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:28:06 +01:00
Till-JS
01a2c78e39 fix(mana-core-auth): add all required fields to trusted client config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:27:33 +01:00
Till-JS
4526123bbe 🔧 chore: add shared-stores and shared-api-client to web apps
Add missing workspace dependencies to package.json and Dockerfiles
for chat, todo, clock, and contacts web apps.
2026-01-30 18:27:04 +01:00
Till-JS
bb428d4b38 fix(mana-core-auth): add Matrix Synapse as trusted OIDC client
Configure Matrix Synapse as a trusted client that skips the consent screen.
This enables seamless SSO login without requiring user consent for each login.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:26:30 +01:00
Till-JS
ee05b6c3ca fix(mana-core-auth): use correct property name 'redirectUrls' for Better Auth
Better Auth expects 'redirectUrls' (lowercase 'urls') but schema had
'redirectURLs' (uppercase 'URLs'). This caused the redirect URI validation
to fail because Drizzle returned the wrong property name.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:22:06 +01:00
Till-JS
d09ea061d2 🔧 chore: add shared-vite-config as devDependency to web apps
Add @manacore/shared-vite-config as devDependency to chat, todo,
clock, and contacts web apps to fix Docker builds.
2026-01-30 18:15:36 +01:00
Till-JS
fdba0e3425 feat(llm-playground): add production deployment with auth
- Add Dockerfile for multi-stage Docker build
- Add mana-core-auth integration with login/register pages
- Add auth store using Svelte 5 runes
- Add protected route layout with auth guard
- Add health endpoint for container health checks
- Add runtime URL injection via hooks.server.ts
- Add logout button to header
- Update docker-compose.macmini.yml with llm-playground service
- Update cloudflared-config.yml with playground.mana.how route
- Update mana-llm CORS config for playground domain
- Update generate-env.mjs with auth URL variable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:15:02 +01:00
Till-JS
8207d38ca5 fix(mana-core-auth): use comma-separated redirect_urls for Better Auth OIDC
Better Auth's OIDC provider expects redirect_urls to be a comma-separated
string, not a JSON array. Updated seed script and schema documentation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:12:16 +01:00
Till-JS
78a5002968 debug: add logging to OIDC authorize endpoint 2026-01-30 18:02:56 +01:00
Till-JS
359b870694 🔧 chore: add shared-vite-config to web Dockerfiles
Add missing shared-vite-config package to chat, clock, contacts,
and todo web Dockerfiles to fix build failures.
2026-01-30 18:01:45 +01:00
Till-JS
f59b6596b0 fix(mana-core-auth): add dedicated Better Auth handler for sign-in
The OIDC request handler was not properly forwarding sign-in requests.
Added a dedicated handler that:
- Directly calls Better Auth's handler
- Properly handles Set-Cookie headers for session cookies
- Exposed getHandler() method from BetterAuthService
- Added trustedOrigins configuration to allow cross-origin requests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:56:34 +01:00
Till-JS
f880ef2b7f feat(llm-playground): add SvelteKit LLM playground UI
- Chat interface with message history
- Model selector for available LLM models
- Parameter panel (temperature, max tokens, etc.)
- System prompt editor
- Svelte 5 runes-based stores

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:52:10 +01:00
Till-JS
3edbd0cb26 chore: update dependencies and mana-llm improvements
- Update pnpm-lock.yaml with matrix bot dependencies
- Add environment variables to generate-env.mjs
- Improve mana-llm config and ollama provider

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:50:58 +01:00
Till-JS
df47dafeb5 chore(matrix-bots): standardize package.json across all 9 bots
- Unified package scope to @mana-bots/*
- Added private: true to all packages
- Added pnpm overrides for matrix-sdk-crypto-nodejs
- Added prebuild script to clean dist folder
- Updated all dependencies to latest versions:
  - @nestjs/*: ^10.4.15
  - @nestjs/config: ^3.3.0
  - reflect-metadata: ^0.2.2
  - @types/node: ^22.10.2
  - typescript: ^5.7.2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:49:15 +01:00
Till-JS
5d5e42c770 feat(chat): add all Mac Mini Ollama models to playground
- Add qwen2.5-coder:7b (State-of-the-Art coding, 92.7% HumanEval)
- Add llava:7b (Vision/image analysis)
- Add qwen3-vl:4b (Fast vision-language)
- Add deepseek-ocr (Document OCR)
- Add phi3.5 (Compact & efficient)
- Add ministral-3:3b (Very fast)
- Create add-local-models.ts script for upsert
- Update documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:48:40 +01:00
Till-JS
004fe85799 fix(matrix-bots): resolve TypeScript strict null check errors
- Fix parseInt undefined errors in configuration files
- Add fallbacks for Matrix client constructor parameters
- Fix possibly undefined data accesses with non-null assertions
- Update setCurrentConversation to accept null

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:32:09 +01:00
Till-JS
f07387d12c 🔥 remove: demo mode from todo, contacts, clock, questions, chat apps
- Enforce login redirect for unauthenticated users
- Remove demo banner, AuthGateModal, and GuestWelcomeModal
- Remove guest mode state variables and CSS styles
- Simplify showLogout to always show when user is logged in

Affected apps: todo-web, contacts-web, clock-web, questions-web, chat-web
2026-01-30 17:21:22 +01:00
Till-JS
68219a01df feat(matrix-chat-bot): add Matrix bot for AI chat conversations
- Quick chat mode for stateless single messages (!chat)
- Full conversation management (create, list, select, delete)
- Message history with context-aware AI responses
- Model selection (Ollama, OpenRouter, OpenAI, Anthropic)
- Conversation actions: archive, restore, pin, unpin, rename
- German/English command aliases
- Number-based reference system for ease of use
- JWT auth via mana-core-auth
- Health check endpoint on port 3327

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:18:21 +01:00