Zum Hauptinhalt springen

Zurück zum Devlog

Freitag, 30. Januar 2026

Feature

41 Commits

12 min Lesezeit

8 neue Matrix Bots, LLM Playground & Demo Mode Cleanup

8 spezialisierte Matrix Bots für verschiedene ManaCore Apps, SvelteKit LLM Playground UI mit allen Ollama-Modellen, und Entfernung des Demo Modes aus 6 Apps für klarere UX

T

Till Schneider

Autor

Produktiver Tag mit 41 Commits und Fokus auf Matrix Bot Expansion und Developer Experience:

  • 8 neue Matrix Bots - Spezialisierte Bots für Planta, ManaDeck, Contacts, Picture, Chat, SkillTree, Presi, Questions
  • LLM Playground - SvelteKit UI für alle Mac Mini Ollama-Modelle
  • Demo Mode Cleanup - Entfernung aus 6 Apps für klarere Login-Flows
  • OIDC-Fixes - Matrix Synapse als Trusted Client

Neue Matrix Bots

8 neue spezialisierte Matrix Bots erstellt, die als NestJS Services laufen:

Bot-Übersicht

BotPortFunktion
matrix-planta-bot3319Pflanzenpflege & Gieß-Erinnerungen
matrix-manadeck-bot3320Kartendecks & Lernkarten
matrix-contacts-bot3321Kontaktverwaltung
matrix-picture-bot3322AI-Bildgenerierung
matrix-chat-bot3323AI-Chat-Konversationen
matrix-skilltree-bot3324Skill-Tracking & XP
matrix-presi-bot3325Präsentationsverwaltung
matrix-questions-bot3326Q&A Research Management

Bot-Struktur

Alle Bots folgen dem gleichen Pattern:

services/matrix-{name}-bot/
├── src/
│   ├── bot/
│   │   ├── {name}.module.ts
│   │   └── {name}.service.ts
│   ├── health/
│   │   └── health.controller.ts
│   └── main.ts
├── Dockerfile
└── package.json

Beispiel-Commands

matrix-skilltree-bot:

!skill list           - Alle Skills anzeigen
!skill add "Coding"   - Neuen Skill erstellen
!xp add Coding 50     - 50 XP zu Coding hinzufügen
!stats                - Statistiken anzeigen

matrix-picture-bot:

!generate <prompt>    - Bild generieren
!style <style>        - Stil setzen (realistic, anime, etc.)
!variations           - Variationen des letzten Bildes

LLM Playground

Neue SvelteKit-Anwendung zum Testen aller verfügbaren LLM-Modelle.

Features

FeatureBeschreibung
Model SelectionAlle Mac Mini Ollama-Modelle
StreamingSSE-basiertes Token-Streaming
Chat HistoryKonversations-Kontext
Auth IntegrationShared Auth UI mit ManaCore SSO

Verfügbare Modelle

// apps/chat/apps/web/src/lib/config/models.ts
export const OLLAMA_MODELS = [
	'gemma3:4b',
	'gemma3:12b',
	'llama3.2:3b',
	'llama3.2:11b',
	'mistral:7b',
	'codellama:13b',
	'deepseek-coder:6.7b',
	'phi3:14b',
	'qwen2.5:7b',
];

Architektur

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  LLM Playground │────>│   mana-llm      │────>│    Ollama       │
│   (SvelteKit)   │     │  (Port 3025)    │     │  (Port 11434)   │
│   Port 5197     │     │                 │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘

Deployment

  • Docker-Konfiguration für Production
  • Shared-Auth-UI Integration
  • Vite Config aus @manacore/shared-vite-config

Demo Mode Cleanup

Entfernung des Demo Modes aus 6 Apps für klarere User Experience.

Betroffene Apps

AppÄnderung
CalendarDemo Mode entfernt, Login erforderlich
TodoDemo Mode entfernt, Login erforderlich
ContactsDemo Mode entfernt, Login erforderlich
ClockDemo Mode entfernt, Login erforderlich
QuestionsDemo Mode entfernt, Login erforderlich
ChatDemo Mode entfernt, Login erforderlich

Begründung

  • Klarere UX: Kein Wechsel zwischen Guest/Auth-Modi
  • Einfacherer Code: Keine Session-Storage-Logik
  • Konsistentes Verhalten: Alle Apps gleich
  • SSO-Ready: Nahtlose Auth über alle Apps

OIDC-Verbesserungen

Fixes für die Matrix Synapse OIDC-Integration.

Trusted Client Config

// mana-core-auth: Better Auth OIDC Client
{
  clientId: 'synapse',
  clientSecret: process.env.MATRIX_OIDC_SECRET,
  redirectUrls: [
    'https://matrix.mana.how/_synapse/client/oidc/callback',
  ],
}

Fixes

FixBeschreibung
redirectUrls PropertyKorrekter Property-Name für Better Auth
client_id ExtractionAus returnUrl für Login-Flow
TypeScript ErrorsOIDC-Login Controller
CSP Inline ScriptsFür OIDC Login Page

Shared Vite Config Integration

Integration von @manacore/shared-vite-config in alle Web-Apps.

Vorher

// Jede App hatte eigene Vite Config
export default defineConfig({
  plugins: [tailwindcss(), sveltekit()],
  server: { port: 5174 },
  ssr: { noExternal: ['@manacore/shared-icons', ...] },
});

Nachher

import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config';

export default defineConfig(
	mergeViteConfig(createViteConfig({ port: 5174 }), { plugins: [tailwindcss(), sveltekit()] })
);

Betroffene Apps

  • calendar-web
  • Alle Apps via Dockerfile-Updates

Matrix Bots Standardisierung

Standardisierung aller 9+ Matrix Bots mit einheitlicher package.json.

Einheitliche Dependencies

{
	"dependencies": {
		"@nestjs/common": "^10.0.0",
		"@nestjs/core": "^10.0.0",
		"matrix-bot-sdk": "^0.7.0"
	}
}

TypeScript Fixes

  • Strict null checks behoben
  • Einheitliche tsconfig

Bugfixes

FixBeschreibung
contacts-web syntax error+layout.svelte Fix
calendar-web API callsClient URL für Browser-Requests
calendar-web auth storeInitialisierung beim Mount
matrix-web SSRDisabled für App-Routes ($state error)
mana-notifyEmail-Benachrichtigungen deaktiviert

Zusammenfassung

BereichCommitsHighlights
Matrix Bots88 neue spezialisierte Bots
LLM Playground3SvelteKit UI, Auth Integration
Demo Mode Cleanup6Entfernt aus 6 Apps
OIDC8Matrix Synapse Integration
Shared Config6Vite Config in alle Apps
Bugfixes10Web Apps, Matrix, Auth

Nächste Schritte

  1. Bot Migration zu @manacore/matrix-bot-common
  2. LLM Playground Production Deployment
  3. Voice Support für Matrix Bots
  4. E2EE für Matrix Client

Tags

#matrix-bots #llm-playground #ollama #oidc #demo-mode #sveltekit #better-auth #shared-vite-config