Meleki
4fa0111c33
feat: Erweiterte Model-Auswahl für Agents
...
- Model-Optionen: sonnet-4-5, sonnet-4-6, opus-4-5, opus-4-6, haiku-4-5
- ChatEndpoint + TelegramService: Model-Mapping für alle Varianten
- Agent-Formular: Dropdown mit allen Model-Versionen
- ui.js: prettyModelName() vereinfacht für neue Model-Werte
2026-03-03 09:22:47 +01:00
Meleki
5d132585d5
Fluent Emoji 3D: Unicode-Emojis durch Microsoft Fluent Emoji ersetzen
...
- emoji.js: Emoji-Replacement-Engine mit umfassendem Unicode 15.0 Regex
- String-basiert (replaceEmojisWithFluent) in renderMarkdown()
- DOM-basiert (parseFluentEmojis) als Post-Processing via TreeWalker
- CDN: @lobehub/fluent-emoji-3d@1.1.0 via jsdelivr (WebP/3D)
- Intelligenter Fallback: fe0f-Varianten, dann Original-Unicode
- Fail-Cache verhindert wiederholte Requests für fehlende Emojis
- User-Nachrichten werden jetzt als Markdown gerendert (renderMarkdown)
- [Datei: ...] Refs: Platzhalter-Mechanismus vor Markdown-Parsing
- Reply-Quotes bleiben durch Wrapper-Div erhalten
- parseFluentEmojis an allen Render-Stellen integriert:
addAssistantBubble, endStreamBubble, _renderUserTextContent,
_renderSystemPromptBlocks, history._renderMessagesIntoFragment,
history.loadLatestArchive
- CSS: .fluent-emoji Klasse (1.2em, inline, scale 1.25)
- CSS: white-space:pre-wrap nur noch für .msg:not(.markdown)
2026-03-03 05:53:31 +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
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
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
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
402fbc5a40
fix: mark-button direkt nach reply-button einfügen statt am Ende
2026-03-01 15:20:46 +01:00
Meleki
120d3c8302
Mark-Button nach Reply-Button positionieren (appendChild statt prepend)
2026-03-01 01:35:15 +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
21ca3a451b
Reply-Button an den Anfang der Message prependen statt appenden
2026-03-01 01:22:03 +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
f20d94b08f
Streaming-Cursor: Block-Cursor-Stil, schnelleres Blinken, korrekte Inline-Positionierung
2026-02-28 21:48:15 +01:00
Meleki
ab234fde69
Custom Commands: Typen (Hintergrund/Vordergrund/Nachricht) mit Output-Modal
2026-02-28 21:30:15 +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
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
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
b07e776b7a
Massive style changes
2026-02-27 23:39:06 +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
18b2feef4a
Parse assistant messages as Markdown (marked.js)
2026-02-27 14:47:33 +01:00
Meleki
c2335c542f
Frontend: trim message text in all bubble renderers
2026-02-27 11:25:01 +01:00
Meleki
663f2c2a9a
Multi-File Upload, Dateinamen in History, kein Auto-Scroll bei Attachment-Klick
2026-02-27 08:28:59 +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
843c210209
Archiv-System: Clear archiviert, Button lädt ältere Archive chronologisch, kein Limit
2026-02-26 16:52:58 +01:00
Meleki
19f926da05
Frontend Refactoring: HTML/CSS/JS getrennt, modulare Struktur
2026-02-26 15:43:10 +01:00