Feature: Claude Assistent Chat in TaskMate

Neuer Tab "Assistent" mit interaktiver Claude Code Session:
- Chat-UI mit Session-Verwaltung (History, neue/alte Sessions)
- Claude CLI als Child-Process auf dem Host (interaktiv, mit Rueckfragen)
- Streaming-Output per Socket.io
- Nur fuer autorisierte User (Hendrik, Monami)
- 30 Min Inaktivitaets-Timeout
- Task-Uebergabe: Button im Task-Modal sendet Aufgabe an Assistenten
- Chat-Verlauf wird in DB gespeichert

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
Server Deploy
2026-03-19 22:04:49 +01:00
Ursprung 71f59b276b
Commit c4304a4f88
11 geänderte Dateien mit 1574 neuen und 5 gelöschten Zeilen

Datei anzeigen

@@ -753,6 +753,32 @@ function createTables() {
END
`);
// Assistant Sessions (Claude-Assistent)
db.exec(`
CREATE TABLE IF NOT EXISTS assistant_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
title TEXT DEFAULT 'Neue Session',
status TEXT DEFAULT 'active',
task_context TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
ended_at DATETIME,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
)
`);
// Assistant Messages
db.exec(`
CREATE TABLE IF NOT EXISTS assistant_messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id INTEGER NOT NULL,
role TEXT NOT NULL,
content TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (session_id) REFERENCES assistant_sessions(id) ON DELETE CASCADE
)
`);
// Indizes für Performance
db.exec(`
CREATE INDEX IF NOT EXISTS idx_tasks_project ON tasks(project_id);
@@ -785,6 +811,9 @@ function createTables() {
CREATE INDEX IF NOT EXISTS idx_details_type ON contact_details(type);
CREATE INDEX IF NOT EXISTS idx_interactions_contact ON contact_interactions(contact_id);
CREATE INDEX IF NOT EXISTS idx_interactions_date ON contact_interactions(interaction_date);
-- Assistant-Indizes
CREATE INDEX IF NOT EXISTS idx_assistant_messages_session ON assistant_messages(session_id);
CREATE INDEX IF NOT EXISTS idx_assistant_sessions_user ON assistant_sessions(user_id);
`);
logger.info('Datenbank-Tabellen erstellt');