Meleki
4ac042e512
Telegram: Webhook-Verwaltung in Einstellungen-Seite
...
- Backend: DELETE /api/telegram/webhook Endpoint + TelegramService.DeleteWebhook()
- api.js: apiTelegramWebhookInfo(), apiTelegramRegisterWebhook(), apiTelegramDeleteWebhook()
- Settings-Page: Neue 'Telegram Bot' Section (nur für Admins, nur wenn konfiguriert)
- Status abrufen: Webhook-URL, ausstehende Updates, letzter Fehler, Aktiv-Badge
- Webhook registrieren: prompt() für Base-URL, POST an Telegram API
- Webhook entfernen: Bestätigungsdialog + DELETE
- CSS: .telegram-status-box, .tg-status-row, .tg-label, .tg-value, .tg-badge
2026-03-03 09:06:22 +01:00
Meleki
7d237c866a
Dashboard: Telegram-Verknüpfung Button + Modal
...
- Session-Card-Menü: 'Telegram verknüpfen' zwischen Chat öffnen und Bearbeiten
- Button nur sichtbar wenn Telegram Bot konfiguriert (GET /api/telegram/status)
- Klick generiert 6-stelligen Link-Code (POST /api/telegram/link)
- Modal zeigt '/link CODE' mit Copy-Button, 5 Min gültig
- Neuer Backend-Endpoint GET /api/telegram/status (IsConfigured)
- API-Funktionen: apiTelegramStatus(), apiTelegramLink()
- Modal-CSS nach bestehendem .fe-overlay Pattern
2026-03-03 07:40:17 +01:00
Meleki
0dd7c38751
feat: Telegram Bot Integration
...
- TelegramService: Non-Streaming Claude Chat mit Tool-Loop,
Commands (/start, /link, /session, /new, /clear, /status, /unlink),
Nachrichten-Splitting bei >4096 Zeichen, Typing-Indicator,
History-Aufbau aus DB, Token-Usage-Tracking
- TelegramEndpoint: Webhook (POST, no-auth), Link-Code-Generierung
(POST, auth), Webhook-Registrierung + Info (Admin)
- DatabaseService: telegram_links Tabelle mit Link-Code-Flow
(6-stelliger Code, 5 Min Ablauf), GetUserSessions
- AuthMiddleware: /api/telegram/webhook von Auth ausgenommen
- Session-Verknüpfung via Link-Code (Web-UI generiert Code,
Telegram /link CODE löst ein)
- TelegramLinkRecord Model
2026-03-03 06:30:05 +01:00
Meleki
c128341f95
fix: Passwort-Änderung bei falschem Passwort gibt 403 statt 401 zurück
...
401 triggerte den globalen Auth-Handler und redirectete zum Login-Screen.
403 (Forbidden) ist semantisch korrekt und zeigt die Fehlermeldung inline an.
2026-03-02 15:04:16 +01:00
Meleki
7149904ae4
Profil-Seite: Anzeigename, Passwort ändern, Persona (ersetzt USER.md)
...
- Neuer Menüpunkt 'Mein Profil' statt 'Logout'
- Profil-Page: Anzeigename, Persona (Freitext), Passwort ändern, Logout
- ProfileEndpoint: GET/PUT /api/profile, PUT /api/profile/password
- User-Persona im System-Prompt statt USER.md (Fallback: Anzeigename/Username)
- SystemPromptBuilder: dataDir-Parameter entfernt, userPersona-Parameter hinzugefügt
- DB-Migration: persona-Spalte in users-Tabelle
2026-03-02 15:02:39 +01:00
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
d05023b1da
Fallback-Workspace /tmp wenn Skills aktiv aber kein Workspace gesetzt
2026-03-02 12:31:28 +01:00
Meleki
7614141760
feat: User-Zuordnung für Sessions und Agents
...
- UserId-Feld zu SessionRecord und AgentRecord hinzugefügt
- DB-Migration: user_id Spalte + bestehende Daten dem Admin zuweisen
- Alle Endpoints filtern/prüfen nach UserId des eingeloggten Users
- HttpContextExtensions.GetUserId() Helper für konsistenten Zugriff
- Betrifft: Agent, Session, Chat, History, Workspace, Skill Endpoints
- Sessions/Agents anderer User sind nicht sichtbar/zugreifbar
2026-03-02 11:39:55 +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
a1c54bf376
feat: ToolChoice + ToolNames pro Chain in DB speichern
...
- ChainRecord: neue Felder ToolChoice (auto/any) und ToolNames (JSON-Array)
- DatabaseService: Migration tool_choice + tool_names Spalten, INSERT erweitert
- ChatEndpoint: berechnet Tools vor Chain-Erstellung, speichert Werte mit
- ToolService: execute-Timeout Beschreibung korrigiert (30s → 180s)
2026-03-02 10:42:54 +01:00
Meleki
40bab457d9
AutoCommit: Bool → Dropdown (mention/enforce/forbid), leerer System-Prompt fix
2026-03-02 09:41:26 +01:00
Meleki
190a0d0a8b
Backup: tar.gz ohne ./Root-Ordner – Einträge direkt auf oberster Ebene
2026-03-01 21:45:37 +01:00
Meleki
d42e5077c4
System-Prompt-Modal: strukturierte Blöcke via API statt Frontend-Parsing
...
- SystemPromptBuilder.BuildBlocks() liefert List<PromptBlock> mit Icon/Label/Content
- Neuer Endpoint GET /api/sessions/{id}/system-prompt-blocks (JSON-Array)
- Labels beschreiben präzise die Herkunft jedes Blocks (Agent, Session, System, Skills)
- Verhalten + Erinnerung nur noch mit Workspace + ToolChoice:any (Bugfix)
- Frontend: simples Block-Rendering statt komplexer Heuristik-Logik
- SP-Block Styling mit Label-Header und Content-Box
2026-03-01 21:31:38 +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
8d86406037
Krea inline thumbnails with cached WebP generation and gallery layout
...
- Add /api/skills/{slug}/output/{filename}/thumb endpoint with ImageSharp
- Generate 300px WebP thumbnails, cached in data/cache/skills/{slug}/
- Replace text badge with inline thumbnail preview in chat
- Click opens full-size image modal with backdrop blur
- wrapKreaGalleries() groups consecutive krea-refs into flex container
- Thumbnails lazy-loaded, cache invalidated when original is newer
2026-03-01 20:12:14 +01:00
Meleki
9e4ed6dada
Add image preview support: Krea-tag parsing with modal, file-explorer preview, skill output endpoint, increase execute timeout to 180s
...
- SkillEndpoint: GET /api/skills/{slug}/output/{filename} for skill output files
- WorkspaceEndpoint: GET /api/workspace/raw for raw file serving (images)
- File-Explorer: Image preview for png/jpg/gif/webp/svg/bmp/ico
- Chat UI: Parse [Krea: filename] tags into clickable chips with image modal
- ToolService: Increase execute timeout from 30s to 180s for long-running skills
2026-03-01 20:00:35 +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
e31daa2385
feat: Chat-History auf max. 500 Nachrichten limitieren
2026-03-01 15:48:19 +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
d067517252
Templates aus externen Dateien laden, globale USER.md generieren
...
- Templates/IDENTITY.md, SOUL.md, USER.md als externe Template-Dateien
- gott.csproj: Templates werden beim Publish mitkopiert
- MemoryService: ReadTemplate() liest aus Templates-Ordner
- InitializeAgentFiles: nutzt Templates statt Inline-Strings
- InitializeUserFile: erstellt globale USER.md in data/
- AgentEndpoint: HandleUpdate initialisiert fehlende Files beim Speichern
2026-03-01 14:24:23 +01:00
Meleki
96af4a3421
Agent-Files automatisch beim Erstellen anlegen (IDENTITY.md + SOUL.md), Migration-Vorlagen entfernt
2026-03-01 14:04:21 +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
a73a67f810
Memory-Pfad im System-Prompt als absoluten Pfad angeben
2026-03-01 13:32:05 +01:00
Meleki
d913557173
feat: Memory-System mit persistenten Markdown-Dateien pro Agent
...
- MemoryService: Verwaltet data/agents/{agentId}/ Verzeichnisse
- MEMORY.md als Haupt-Memory-File
- memory/ Unterordner für Tages-Logs und thematische Notizen
- Sandbox-Prüfung verhindert Zugriff außerhalb des Agent-Dirs
- Memory-Tools für den Agent:
- memory_read: Liest Memory-Dateien
- memory_write: Schreibt/überschreibt oder hängt an (append)
- memory_list: Listet alle Memory-Dateien auf
- SystemPromptBuilder: Memory-Abschnitt mit Regeln und aktuellem
MEMORY.md-Inhalt wird in den System-Prompt injiziert
- ToolService/AnthropicService: Memory-Tools werden automatisch
eingebunden wenn MemoryService und AgentId verfügbar sind
- TODO.md: Embedding-basierte Suche und Subagents als Features
2026-03-01 13:27:08 +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
19f32442b1
feat: Nachrichten als wichtig markieren (Stern-Button)
...
- MessageRecord: neues Property IsMarked
- DatabaseService: Migration is_marked, ToggleMessageMark(), GetMarkedMessages()
- HistoryEndpoint: PUT /api/messages/{id}/mark (Toggle)
- SystemPromptBuilder: markierte Nachrichten als Referenz im System-Prompt
- ChatEndpoint + SessionEndpoint: markierte Nachrichten laden und an Builder übergeben
- Frontend: Stern-Button (☆/★) auf jeder Nachricht, Toggle per API
- CSS: .marked-Klasse mit gelbem Seitenrand, Button-Styling
2026-03-01 01:30:21 +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
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
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
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
92072f5064
Prompt Caching: Top-Level cache_control im Request-Body
2026-02-28 17:16:58 +01:00
Meleki
b84dff6d8c
File-Explorer: Editor editierbar + Speichern-Button
2026-02-28 16:49:15 +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
3cb468f4e8
Chat: User-Nachrichten [Datei:]-Tags als klickbare Chips rendern, System-Prompt mit Workspace-Pfad und Leerzeilen-Hinweis erweitern
2026-02-28 11:53:50 +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
6556d62f17
Add /api/info endpoint for build time, title.js, UI tweaks
2026-02-27 14:29:43 +01:00
Meleki
73c6d38254
fix: custom command execution via systemd-run für prozessunabhängigkeit
2026-02-27 13:34:14 +01:00
Meleki
882d4ec21d
Add SessionEndpoint, update ChatEndpoint, update deploy script and project file, remove DEVY.md
2026-02-27 11:23:31 +01:00
Meleki
aa2d9f1200
Folder-Browser für Workspace-Auswahl, Layout/Style Anpassungen
2026-02-27 09:43:58 +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
Meleki
0b2c9a08c6
DB: Message + Attachments in einer Transaktion speichern (1x fsync statt N+1)
2026-02-27 08:13:44 +01:00
Meleki
1271c9c651
File-Upload: Attachments-Tabelle, Base64-Speicherung, Frontend mit Drag&Drop/Paste/Preview, Error-Handling Fix
2026-02-27 08:11:46 +01:00
Meleki
48be82905e
Session-Kontext: Textarea für System-Prompt pro Session
2026-02-27 06:52:47 +01:00