Meleki
8039b47dec
Web-Suche (Agent-Toggle mit Versionswahl), Admin-only Backup, Haiku 4.5
...
- Agent: Web-Suche als Dropdown (Deaktiviert / 2025 / 2026) statt bool
- AnthropicService: web_search Tool dynamisch nach Version einfügen
- Stream: server_tool_use + web_search_tool_result Events verarbeiten
- Chat-Frontend: web_search_start/end Events mit Suchindikator
- Dashboard: Badge zeigt Web-Suche mit Jahresversion
- UserRecord: IsAdmin Feld, DB-Migration is_admin Spalte
- AuthMiddleware: IsAdmin aus DB laden und in Context setzen
- BackupEndpoint: Admin-Check (403 für Nicht-Admins)
- AuthEndpoint: isAdmin in Login/Me Response
- Frontend: Backup-Section nur für Admins sichtbar
- Haiku 4.5 als Model-Option (Agent-Dropdown + ChatEndpoint)
- TODO: Cronjobs, Haiku ergänzt
2026-03-02 14:05:59 +01:00
Meleki
485f47b29a
Browser Zurück/Vor-Navigation: pushState statt replaceState, popstate-Event
2026-03-02 13:02:52 +01:00
Meleki
4e7058e481
Dashboard: Placeholder-Cards durch Header-Buttons ersetzen + UI-Feinschliff
...
- Placeholder-Cards (Neue Session/Neuer Agent) entfernt
- Stattdessen Buttons in den Section-Headern neben den Titeln
- Section-Header h2 Font-Size angepasst
- Agent-Formular: Ego- und Skills-Labels hinzugefügt, Text-Korrektur
- Form-CSS: Gap und Checkbox-Spacing verfeinert, Selektoren präzisiert
2026-03-02 12:59:32 +01:00
Meleki
90c24b0b1a
Chat-Button im Dashboard deaktivieren wenn kein Agent zugewiesen
2026-03-02 12:33:23 +01:00
Meleki
9a59ae686d
feat: User-Management mit Token-basierter Authentifizierung
...
Backend:
- UserRecord Model + Users-Tabelle in DB
- AuthService: SHA256-Passwort-Hashing, Token-Verwaltung (ConcurrentDictionary)
- AuthMiddleware: Schützt alle /api/-Routes (außer /api/auth/login)
- AuthEndpoint: Login, Logout, Me
- Default-User admin/admin wird automatisch erstellt
Frontend:
- Login-Page mit Formular (Enter-Key-Support)
- Globaler Fetch-Interceptor: 401 → automatisch Login-Redirect
- Auth-Check beim App-Start und bei Hash-Änderungen
- Logout-Link im Dashboard-Header
- Login-CSS: Zentrierte Login-Box
2026-03-02 11:29:09 +01:00
Meleki
ea0b95ef52
Agent-Dateien: Button aus Form entfernt, ins Card-Menu verschoben
...
- agentFilesSection aus index.html entfernt
- filesSection/filesBtn Referenzen aus agent-page.js entfernt
- Neuer Menüeintrag 'Dateien verwalten' im Agent-Card-Menu (dashboard.js)
- Icons für alle Card-Menu-Einträge (Session + Agent)
- card-menu-item: flex layout mit gap für Icon-Ausrichtung
2026-03-02 10:19:31 +01:00
Meleki
32cb98a8c7
Dashboard: Commit-Badge-Labels kürzen (Prefix 'Commit:' entfernt)
2026-03-02 09:44:40 +01:00
Meleki
40bab457d9
AutoCommit: Bool → Dropdown (mention/enforce/forbid), leerer System-Prompt fix
2026-03-02 09:41:26 +01:00
Meleki
56d4d1be0a
Dashboard: Badges für Sessions (Kontext) und Agents (Features, Skills, Model-Name)
...
- prettyModelName() von chat.js nach ui.js als globale Funktion verschoben
- Session-Cards: Kontext-Badge mit Tooltip wenn context vorhanden
- Agent-Cards: Badges für ToolChoice:any, AutoCommit, Soul, Identity, UserInfo, Memory
- Agent-Cards: Skill-Badges pro aktiviertem Skill (parallel geladen)
- Agent-Cards: Model-Name via prettyModelName() statt roher Model-ID
- Neue CSS-Klassen: badge-feature, badge-forced-feature, badge-skill
- Theme: primary/dangerous Farben angepasst
- Chat: Input overflow hidden→auto
2026-03-02 08:22:18 +01:00
Meleki
4bf500ad47
feat: Stream-Abbruch per Stop-Button
...
- Neuer Stop-Button (#stop) neben Send-Button, erscheint nur während Stream
- AbortController in chat.js: abort() schließt SSE-Verbindung → Backend CancellationToken triggered
- apiChat() akzeptiert optionales AbortSignal
- AbortError-Handling: zeigt 'Abgebrochen' statt Fehlermeldung
- Button-Toggle in sendMessage(), stopStreaming(), startStreamingPoll(), Page-Load-Recovery
- CSS: .stop-btn mit --dangerous Farbe
- Diverse kleine UI-Fixes (TODO.md, theme.css box-spacing, settings-section Layout)
2026-03-02 06:52:26 +01:00
Meleki
40e56acc30
PROMPT.md-based skill injection, scroll-on-image-load fix, skill availability UI
...
- SkillService: read PROMPT.md instead of SKILL.md for system prompt injection
- SkillInfo: add HasPromptMd field, skills without PROMPT.md are not injectable
- Agent form: disable checkbox + warning for skills missing PROMPT.md
- Thumbnail size: 320px (was 300px)
- Chat: _scrollOnImages() re-scrolls after lazy-loaded images finish loading
- CSS: skill-unavailable/warning styling, adjusted thumb dimensions
2026-03-01 20:38:18 +01:00
Meleki
cf6caea2dc
Implement Skills feature: filesystem-based skills with agent assignment
...
- Add SkillService: scans data/skills/ directory, parses _meta.json and SKILL.md frontmatter
- Add SkillEndpoint: REST API for listing skills and managing agent-skill assignments
- Add agent_skills DB table for agent-to-skill mapping (only relation in DB, skills live on filesystem)
- Extend SystemPromptBuilder: inject assigned skills' SKILL.md content into system prompt
- Extend ChatEndpoint + SessionEndpoint: load agent skills and pass to prompt builder
- Frontend: skill checkboxes in agent form, API functions for skill management
- Add form.css styling for skill list items
2026-03-01 17:22:14 +01:00
Meleki
575e5c1d44
feat: Ältere Nachrichten nachladen per Button (500er Batches)
...
- Backend: beforeId-Parameter + GetActiveMessagesBeforeId + GetActiveMessageCountBeforeId
- Frontend: Button 'X ältere Nachrichten laden' statt Info-Text
- Archiv-Button erscheint erst wenn alle älteren Nachrichten geladen
- Scroll-Position bleibt beim Nachladen erhalten
- Fix: wwwroot Quell-Dateien mit publish synchronisiert
2026-03-01 16:32:08 +01:00
Meleki
38bdb4408c
feat: Chain-Meta Anzeige-Einstellung + Darstellung verbessern
...
- Settings: 'Chain-Info' Dropdown (Immer/Manchmal/Nie), Default 'Manchmal'
- Manchmal-Regeln: In+Out >= 10k Tokens, >= 25 Iterationen, >= 90s Dauer
- Model-Name: claude-opus-4-6 → Opus 4.6, Unbekanntes → 'Unbekannt'
- Tokens: In/Out zu einem Badge zusammengeführt
- Cache: Read/Write zu einem Badge zusammengeführt
- Iterations → Iterationen
2026-03-01 16:20:01 +01:00
Meleki
7490d483c2
feat: Tool-Call-Anzeige in Settings konfigurierbar (alle/modifikationen/verstecken)
...
- Neue Chat-Section in Settings mit Dropdown für Tool-Call-Sichtbarkeit
- Default: Nur Modifikationen (write_file, edit_file, delete_file, memory_write)
- isToolVisible() filtert beim Streaming, History und Archiv-Rendering
- Reset-Button setzt auch Tool-Call-Einstellung zurück
2026-03-01 16:04:00 +01:00
Meleki
58c5ccb79b
feat: File-Explorer für Agent-Ordner im Agent-Formular
2026-03-01 15:48:13 +01:00
Meleki
8e585443e2
Backup: Data-Ordner statt nur DB sichern, von Chat in Einstellungen verschoben
2026-03-01 15:41:29 +01:00
Meleki
6df3591d8b
Agent-Flags: useSoul, useIdentity, useUserInfo, useMemory
...
- 4 neue bool-Properties auf AgentRecord (Default: true)
- DB-Migration: use_soul, use_identity, use_user_info, use_memory
- SystemPromptBuilder: IDENTITY.md, SOUL.md, USER.md, Memory-Block bedingt
- AnthropicService: Memory-Tools nur wenn useMemory aktiv
- Agent-Formular: 4 Checkboxen (Seele, Identität, Gegenüber, Erinnerungen)
- API: Create + Update lesen/speichern die neuen Flags
2026-03-01 14:33:11 +01:00
Meleki
3fba628bd2
Agent-Persona auf File-Basis umgestellt (IDENTITY.md, SOUL.md, USER.md)
...
- Persona/Instructions DB-Felder aus AgentRecord, DB-Queries, API und Frontend entfernt
- SystemPromptBuilder liest jetzt IDENTITY.md + SOUL.md aus data/agents/{agentId}/
- Globale USER.md aus data/ wird in jeden System-Prompt injiziert
- MemoryService.DataDir als public Property exponiert
- Denker: IDENTITY.md + SOUL.md erstellt
- Meleki: Migrations-Vorlagen unter migration/meleki/ angelegt
- USER.md global unter publish/data/ erstellt
2026-03-01 13:53:49 +01:00
Meleki
9cffc5bbb7
Body-Nav entfernen, Dashboard-Header mit Titel und Einstellungen-Link
...
- <nav id='nav'> samt nav.css komplett entfernt
- Nav-Link-Logik aus app.js und router.js entfernt
- Nav-Hide aus mobile.css entfernt
- Dashboard-Template: Header mit Titel '// gott' und Link 'Einstellungen'
- Dashboard CSS: .dashboard-header mit Flex-Layout
- Einstellungen-Link navigiert zur Settings-Page
2026-03-01 11:55:16 +01:00
Meleki
2efe12858a
Card-Menu-Trigger in card-title-row verschieben (rechtsbündig via margin-left: auto)
2026-03-01 11:37:16 +01:00
Meleki
8f12e8dc1a
UI-Refactoring: Transitions vereinheitlicht, Card-Navigation auf Menü umgestellt, openChatBtn entfernt, Chat-Back navigiert zum Dashboard
2026-03-01 11:32:12 +01:00
Meleki
92b1c8a9bc
Dashboard: Card-Menü für Sessions und Agents
...
- Session-Cards: Menü mit 'Chat öffnen' und 'Bearbeiten'
- Agent-Cards: Menü mit 'Bearbeiten'
- Drei-Punkte-Trigger (ellipsis-v) erscheint bei Hover
- Click-outside schließt offene Menüs
- Card overflow auf visible geändert für Dropdown-Anzeige
2026-03-01 11:18:12 +01:00
Meleki
5037c7d24e
feat: Auto-Commit Flag für Agents - neues Property AgentRecord.AutoCommit (bool) - DB-Migration: agents.auto_commit INTEGER NOT NULL DEFAULT 0 - Agent Create/Update um autoCommit erweitert - SystemPromptBuilder: bedingte Commit-Regel im Verhalten-Abschnitt - AutoCommit=true: Agent MUSS nach Änderungen committen - AutoCommit=false: Agent darf NIE eigenständig committen - Frontend: Checkbox 'Auto-Commit erlauben' in Agent-Settings
2026-03-01 01:46:04 +01:00
Meleki
57b4b5931b
feat: Reply/Zitat-Feature für Chat-Nachrichten
...
- Reply-Button (Hover) auf jeder User/Assistant-Nachricht
- Reply-Preview-Leiste über dem Input-Feld (mit Timestamp, Rolle, Text-Preview)
- Beim Senden: Zitat als Kontext-Block vorangestellt (> [Zitat: HH:MM, Role]:)
- User-Nachrichten parsen Zitat-Blöcke als visuelle Quote-Elemente (blaue Borderlinie)
- Timestamp-basierte Referenzierung (HH:MM oder DD.MM. HH:MM)
- clearReply() bei Chat-Clear, Navigation und Destroy
2026-03-01 01:06:23 +01:00
Meleki
7c0e5d180a
fix: Streaming-Navigation-Bugs (doppelte Messages, client_disconnected), Tool-Result ohne Truncation
...
- _chatAbandoned-Flag statt AbortController: Backend-Stream läuft bei Navigation weiter, Frontend ignoriert Events
- stopHistoryPolling() während Streaming-Poll aktiv, verhindert parallele Polls
- _pollLock in pollHistory() gegen Race-Conditions bei gleichzeitigen Poll-Aufrufen
- Tool-Result truncate(300) im Live-Chat entfernt, in History beibehalten
- Dashboard Badge-Styling verfeinert
2026-03-01 00:32:05 +01:00
Meleki
c3812fbf2b
Custom Tooltip-System: eigenes Tooltip statt Browser-Standard, 200ms Delay, bevorzugt oben, individuelle Tooltips pro Git-Badge
2026-02-28 23:46:34 +01:00
Meleki
6b7df138de
Git-Status: success-Property entfernt, Tooltips mit Datei-Info an Dashboard-Badges
2026-02-28 23:34:08 +01:00
Meleki
ac150af4c5
Git-Status Endpoint mit Outgoing-Commits und Dashboard-Badges
...
- GET /api/sessions/{id}/git-status: Parsed git status --porcelain in add/edit/delete Listen
- Outgoing-Commits: Zählt unpushed Commits via git rev-list --count @{u}..HEAD
- Dashboard: Zeigt Git-Badges asynchron pro Session (+N, ~N, -N, ↑N)
- CSS: Farbige Badges (grün=add, orange=edit, rot=delete, blau=outgoing)
2026-02-28 23:23:52 +01:00
Meleki
41d99ec840
Custom Commands ins Header-Dropdown-Menü verschoben
...
- customCmdBar entfernt, Commands als header-menu-items ins Dropdown eingefügt
- Sektions-Labels: System, Agent, Session mit Separatoren
- Header-Menü-Init nach oben verschoben (vor Command-Aufbau)
- CSS: alte cmd-bar Styles entfernt, neue separator/label/cmd Styles
2026-02-28 22:02:18 +01:00
Meleki
e79a69a364
Custom Commands für Agents: gleiche Befehls-UI wie Sessions, im Chat werden Agent- und Session-Commands zusammengeführt
...
Backend:
- AgentRecord um CustomCommands-Feld erweitert
- DB-Migration: custom_commands Spalte für agents Tabelle
- Agent-CRUD (Create/Update) verarbeitet customCommands
Frontend:
- commands-ui.js: Shared Utility (createCommandRow, getCommandsFromUI, loadCommandsIntoUI) für Agent- und Session-Page
- Agent-Page: Benutzerdefinierte Befehle Sektion mit Typ-Dropdown
- Chat-Page: Lädt Agent-Commands + Session-Commands, zeigt beide mit Labels wenn beide vorhanden
- Session-Page: Refactored auf shared commands-ui.js Funktionen
- CSS: cmd-bar-label Styling für Agent:/Session: Trennung in der Command-Bar
2026-02-28 21:35:34 +01:00
Meleki
ab234fde69
Custom Commands: Typen (Hintergrund/Vordergrund/Nachricht) mit Output-Modal
2026-02-28 21:30:15 +01:00
Meleki
d83a6f60ef
Settings: Seitenbreite mit localStorage-Persistierung und Reset
...
- Settings-Page mit Range-Slider für Seitenbreite (600-1800px)
- JSON-basierter localStorage-Key 'settings' (zukunftssicher)
- applySettings() beim App-Start für sofortige Wiederherstellung
- Reset-Button mit Confirm-Dialog setzt alle Settings auf Defaults
- Sanfte Breitenübergänge via --transition-duration
2026-02-28 21:15:44 +01:00
Meleki
24cbce40c4
Globale .icon-btn Klasse für alle Icon-only Buttons, Hover-Filter, Theme-Anpassungen
2026-02-28 20:09:12 +01:00
Meleki
ff67542ba6
Tool-Nutzung: tool_choice pro Agent konfigurierbar (default: any), wiederholte Instruktionen im System-Prompt, MaxIterations in appsettings
2026-02-28 19:33:41 +01:00
Meleki
8c9f54da79
Alle Unicode-Icons durch Font Awesome 4.7 Icons ersetzt
...
- chat.js: Attachment-Labels, Streaming-Spinner, File/Ref-Previews, Warning/Error-Bubbles
- chat-page.js: Meta-Bar Status (Erfolg/Fehler), Backup-Meldungen
- dashboard.js: Nachrichten/Ordner/Persona-Icons
- session-page.js: Remove-Buttons
- history.js: Archiv-Badge, Attachment-Indicator
- ui.js: Archiv-Button, Warning/Error-Bubble Icons
- file-explorer.js: Verzeichnis/Datei-Icons, Back/Close-Buttons, getFileIcon()
- index.html: Header-Menü, Send-Button, Settings-Button
2026-02-28 19:10:24 +01:00
Meleki
873e40b5d1
Chain-Meta als Badges im Chat statt in Meta-Bar anzeigen
...
- Meta-Bar zeigt nur noch Status (Streaming.../Bereit)
- Chain-Infos (Model, Tokens, Dauer etc.) als Badges im Chat
- Badges bei Streaming, History-Load und Archiv-Ansicht
- buildMetaString → buildMetaBadges, neue addChainMetaBubble Funktion
2026-02-28 18:31:28 +01:00
Meleki
d434c3ff2a
Datenbank sichern: Backup als .tar.gz mit Server-Ablage und Client-Download
...
- Neuer POST /api/backup Endpoint (BackupEndpoint.cs)
- Packt gott.db in data/backup/gott-{timestamp}.tar.gz
- Gibt Archiv gleichzeitig als Download an Client zurück
- Button 'Datenbank sichern' im Header-Dropdown-Menü
- Content-Disposition Header-Parsing mit filename* UTF-8 Support
2026-02-28 18:18:51 +01:00
Meleki
6b707d7d74
Meta-Bar: Token-Anzeige auch bei abgebrochenem Stream; Cache-Tokens anzeigen
2026-02-28 16:49:18 +01:00
Meleki
f74409dd89
Token-Optimierung: Prompt Caching + Tool-Result-Truncation in History
2026-02-28 16:21:08 +01:00
Meleki
76341dc42b
Fix: Chat scrollt nach Font-Loading nochmal nach unten
...
scrollDown() wartet jetzt auf document.fonts.ready und scrollt erneut.
chat-page.js wartet nach loadHistory() zusätzlich per requestAnimationFrame
auf den Repaint nach Font-Swap.
2026-02-28 15:54:47 +01:00
Meleki
1bd14cdf94
Enter sendet, Shift+Enter für Zeilenumbruch
2026-02-28 00:18:42 +01:00
Meleki
b07e776b7a
Massive style changes
2026-02-27 23:39:06 +01:00
Meleki
b1c1e462cc
Dashboard: Session message counts, workspace path, Agent persona
2026-02-27 17:58:14 +01:00
Meleki
e662548d79
Avatar: Ctrl+V paste + serverseitige Skalierung auf max 256px; Tool-Boxes: Diff-View für edit/write_file, Foldout für alle Tools, stop_reason im Chat; ImageSharp 3.1.12
2026-02-27 16:46:07 +01:00
Meleki
73c6d38254
fix: custom command execution via systemd-run für prozessunabhängigkeit
2026-02-27 13:34:14 +01:00
Meleki
a927d6da33
Chat-Page: Archivieren-Button durch 3-Dot-Menü ersetzt
2026-02-27 10:45:35 +01:00
Meleki
aa2d9f1200
Folder-Browser für Workspace-Auswahl, Layout/Style Anpassungen
2026-02-27 09:43:58 +01:00
Meleki
4e3d92ff9f
File-Refs als Preview-Tags statt inline Text, fullText-Kollision fix, hidden-Override fix
2026-02-27 09:05:30 +01:00
Meleki
491d3b916e
File Explorer Modal: Workspace-Browser mit Textvorschau, Zeilennummern, Selektion als File-Picker im Chat
2026-02-27 08:57:35 +01:00