Changelog
Alle wesentlichen Änderungen an Maschinchenring werden hier dokumentiert.
Vermieter-Status sichtbar im Chat
get_profile gibt jetzt lender, admin,
lenderStatus (approved / pending /
none) und profileComplete zurück — der Chat-Assistent
kann den Vermieter-Status damit direkt auslesen statt zu raten request_lender_status ist jetzt auch im Web-Chat (Haiku) als Tool
verfügbar; vorher fehlte es in den Chat-Tool-Definitionen - Tool-Beschreibungen für den Vermieter-Flow geschärft
server/src/mcp/tools.ts in Domänen-Module aufgeteilt
(tools/items.ts, tools/bookings.ts,
tools/profile.ts, tools/admin.ts,
tools/deps.ts)
Vermieter-Flow & User-Cleanup
- Neues MCP-Tool
request_lender_status: User beantragt Vermieter-Freischaltung
(Profil-Check, 1h-Cooldown, E-Mail an alle Admins) - Admin-UI unter
/admin/lender-requests/:userId (Cookie-Auth, GET + POST approve/reject) - DB-Rename:
can_upload → lender, is_admin → admin - Spalte
lender_requested_at als Spam-Schutz - Tote Spalten
github_id / google_id entfernt, User-IDs sind jetzt opaque UUIDs - GitHub-OAuth übergibt
randomUUID() statt GitHub-Login als ID; Profile werden weiterhin per E-Mail gematcht
Öffentliche Dokumentation
- Neue Dokumentationsseiten unter
/docs hinzugefügt - Vollständige MCP-Tools-Referenz unter
/docs/mcp-tools - Changelog unter
/docs/changelog - Footer-Link zur Dokumentation ergänzt
Chat-Rework
- Chat-Interface überarbeitet und stabilisiert
- Konversationsverwaltung verbessert
Semantische Suche
search_items-Tool mit Hybrid-Suche (semantisch + lexikal) - Jina Embeddings für Geräte-Beschreibungen
- 70% semantisches Gewicht, 30% lexikal
Bild-Upload und imgproxy
- Bild-Upload-Endpoint
POST /images/upload (S3/MinIO) - imgproxy-Integration für optimierte, HMAC-signierte Bild-URLs
attach_image_to_item-Tool zum Verknüpfen von Bildern - Uploader-Berechtigung (
can_upload) für Vermieter
Gerätesets
- Sets: Bündel aus mehreren Geräten zu einem Tagespreis
list_sets-Tool - Sets-Übersicht auf der Webseite
Chat-Assistent
- Chat-Interface mit Claude (SSE-Streaming)
- Konversationspersistenz in SQLite
- Konversationstitel via
set_conversation_title-Tool
Admin-Tools und Vermieter-Verwaltung
admin_approve_uploader, admin_revoke_uploader, admin_list_users - Vermieter-Whitelist (
can_upload-Flag) - Admin-Flag (
is_admin) für Nutzerverwaltung
OAuth PKCE für MCP-Clients
- OIDC-Provider mit Authorization Code + PKCE
- Dynamic Client Registration (
POST /oauth/register) - Kompatibel mit Claude Desktop und anderen MCP-Clients
Buchungsfluss
- Buchungsanfragen via MCP-Tool
create_booking - Owner-Benachrichtigung per E-Mail (Approve/Reject-Links)
- Stornierung durch Mieter und Owner
- Status:
pending → approved / rejected / cancelled
Authentifizierung
- GitHub OAuth (arctic)
- Magic Link per E-Mail
- JWT RS256 (jose) als Cookie
MCP-Server und Webseite
- Initiale Implementierung des MCP-Servers (Streamable HTTP)
- Astro SSR Website mit Geräteübersicht und Detailseiten
- Verfügbarkeitskalender
- SQLite-Datenbankschema (Migrationen)
- Deployment auf k3s (ARM, Traefik, cert-manager)