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:
@@ -38,6 +38,7 @@
|
||||
<link rel="stylesheet" href="css/knowledge.css">
|
||||
<link rel="stylesheet" href="css/reminders.css">
|
||||
<link rel="stylesheet" href="css/contacts.css">
|
||||
<link rel="stylesheet" href="css/assistant.css">
|
||||
<link rel="stylesheet" href="css/responsive.css">
|
||||
<link rel="stylesheet" href="css/mobile.css">
|
||||
<link rel="stylesheet" href="css/pwa.css">
|
||||
@@ -310,6 +311,12 @@
|
||||
</svg>
|
||||
Kontakte
|
||||
</button>
|
||||
<button class="view-tab" data-view="assistant">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
||||
</svg>
|
||||
Assistent
|
||||
</button>
|
||||
</nav>
|
||||
<div class="filter-bar-actions">
|
||||
<button id="btn-filter-toggle" class="btn btn-outline filter-toggle-btn">
|
||||
@@ -687,6 +694,48 @@
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Assistant View -->
|
||||
<div id="view-assistant" class="view view-assistant hidden">
|
||||
<div class="assistant-layout">
|
||||
<aside class="assistant-sidebar">
|
||||
<div class="assistant-sidebar-header">
|
||||
<button id="btn-new-session" class="btn btn-primary btn-block">
|
||||
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 5v14M5 12h14"/>
|
||||
</svg>
|
||||
Neue Session
|
||||
</button>
|
||||
</div>
|
||||
<div id="assistant-sessions-list" class="assistant-sessions-list"></div>
|
||||
</aside>
|
||||
<main class="assistant-chat">
|
||||
<div class="assistant-chat-header">
|
||||
<h3 id="assistant-chat-title">Assistent</h3>
|
||||
<span id="assistant-status-badge" class="assistant-status-badge"></span>
|
||||
</div>
|
||||
<div id="assistant-messages" class="assistant-messages"></div>
|
||||
<div class="assistant-input-bar">
|
||||
<textarea id="assistant-input" class="assistant-input" placeholder="Nachricht eingeben..." rows="1"></textarea>
|
||||
<button id="btn-send-message" class="btn btn-primary assistant-send-btn" title="Senden">
|
||||
<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<line x1="22" y1="2" x2="11" y2="13"/>
|
||||
<polygon points="22 2 15 22 11 13 2 9 22 2"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div id="assistant-empty" class="assistant-empty">
|
||||
<div class="assistant-empty-icon">
|
||||
<svg viewBox="0 0 24 24" width="64" height="64" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3>Claude Assistent</h3>
|
||||
<p>Starte eine neue Session oder waehle eine bestehende aus.</p>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Contacts View -->
|
||||
<div id="view-contacts" class="view view-contacts hidden">
|
||||
<div class="view-wrapper">
|
||||
@@ -935,6 +984,10 @@
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="modal-footer-left">
|
||||
<button type="button" id="btn-task-to-assistant" class="btn btn-text hidden">
|
||||
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
||||
An Assistent
|
||||
</button>
|
||||
<button type="button" id="btn-duplicate-task" class="btn btn-text hidden">Duplizieren</button>
|
||||
<button type="button" id="btn-archive-task" class="btn btn-text hidden">Archivieren</button>
|
||||
<button type="button" id="btn-restore-task" class="btn btn-text hidden">Wiederherstellen</button>
|
||||
@@ -1973,6 +2026,10 @@
|
||||
<svg viewBox="0 0 24 24" width="20" height="20"><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" stroke="currentColor" stroke-width="2" fill="none"/><circle cx="8.5" cy="7" r="4" stroke="currentColor" stroke-width="2" fill="none"/><line x1="20" y1="8" x2="20" y2="14" stroke="currentColor" stroke-width="2"/><line x1="23" y1="11" x2="17" y2="11" stroke="currentColor" stroke-width="2"/></svg>
|
||||
<span>Kontakte</span>
|
||||
</button>
|
||||
<button class="mobile-nav-item" data-view="assistant">
|
||||
<svg viewBox="0 0 24 24" width="20" height="20"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" stroke="currentColor" stroke-width="2" fill="none"/></svg>
|
||||
<span>Assistent</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren