Commit Graph
339 Commits
Author SHA1 Message Date
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 d05023b1da Fallback-Workspace /tmp wenn Skills aktiv aber kein Workspace gesetzt 2026-03-02 12:31:28 +01:00
Meleki 9af1465ee5 Hourglass-Icon Spin-Animation hinzugefügt 2026-03-02 11:46:58 +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 b24a000784 Zeilenreferenz-Hinweis im System-Prompt auch ohne ToolChoice:any
- toolAny+workspace: Kombinierter Erinnerungsblock (Tool-Pflicht + Zeilenreferenz)
- !toolAny+workspace: Eigener Erinnerungsblock nur mit Zeilenreferenz-Hinweis
- Kein doppelter ERINNERUNG-Header mehr
2026-03-02 10:30:22 +01:00
Meleki 41b0d6e350 TODO: CodeMirror horizontal scroll als erledigt markiert 2026-03-02 10:20:23 +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 7410a18755 Fix: CodeMirror horizontaler Scroll im File Explorer
- min-width: 0 auf allen Flex-Ebenen (.fe-main, .fe-cm-wrap, #feCmHost, .CodeMirror)
- overflow: auto Override entfernt, CodeMirror-Default (overflow: scroll) reicht
- Klassisches Flexbox min-width: auto Problem behoben
2026-03-02 08:55:33 +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 754b2aa3e3 fix: Krea-Tags in Code-Blöcken nicht parsen, Git-Verhalten unabhängig von ToolChoice
- renderMarkdown: Code-Blöcke (<pre>, <code>) vor Krea-Regex schützen
  via Platzhalter-Swap, danach wiederherstellen
- SystemPromptBuilder: Git-Commit-Regeln nur an Workspace gebunden,
  nicht mehr an ToolChoice:any – eigener PromptBlock mit Label
- CSS: modal-width Variable, Krea-Modal width:max-content, minor tweaks
- TODO.md aktualisiert
2026-03-02 07:59:29 +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 190a0d0a8b Backup: tar.gz ohne ./Root-Ordner – Einträge direkt auf oberster Ebene 2026-03-01 21:45:37 +01:00
Meleki 71bb97be13 Fix: Krea-Thumbnails mit fester Höhe statt scrollDown-Listener
- _scrollOnImages() komplett entfernt (verursachte ungewolltes Runterscrollen)
- .krea-ref: feste Höhe 240px + min-width 240px + Placeholder-Hintergrund
- .krea-thumb: width/height 100% mit object-fit contain
- Browser reserviert Platz vor dem Laden → kein Layout-Shift
2026-03-01 21:40:15 +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 b18dc78651 Add /Temp/ to .gitignore, mark session reference system-prompt feature as done 2026-03-01 16:43:01 +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 0b842357a3 chore: File-Explorer Nachbesserungen (TODO abhaken, CSS/HTML Cleanup) 2026-03-01 15:57:14 +01:00
Meleki 137090435c fix: Chat-Nachrichten Reihenfolge korrigiert (doppeltes reverse entfernt) 2026-03-01 15:51:14 +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 402fbc5a40 fix: mark-button direkt nach reply-button einfügen statt am Ende 2026-03-01 15:20:46 +01:00
Meleki 632424fb73 Memory-Tools unabhängig vom Workspace verfügbar machen
- Tools werden jetzt auch gesendet wenn kein Workspace aber useMemory=true
- GetToolDefinitions(includeFileTools, includeMemory) für granulare Steuerung
- File-Tools geben saubere Fehlermeldung wenn workspace null
2026-03-01 15:19:56 +01:00
Meleki 342284dd3e System-Prompt: Identity-Fallback nur bei UseIdentity, USER.md-Pfad anzeigen, Markdown h1/h2 Styling 2026-03-01 14:48:34 +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 da34739cba Edit SOUL.md Template 2026-03-01 14:25:43 +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 875229964c Dashboard-Header in <header>-Element umgebaut, Card-Grid und Mobile-Styles verfeinert 2026-03-01 12:23:02 +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 294145a04e Dashboard-Cards: horizontales Layout mit Bild links, Body rechts 2026-03-01 11:51:35 +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 ab4ce839b4 fix: mark-button nach reply-button positionieren mit badge-spacing gap 2026-03-01 01:36:13 +01:00