Previously only the final proposer layer was persisted, so after a reload the intermediate MoA rounds and their "Runde k/N" dividers were gone — the history showed only the last refined round, not the full live view. Persist every proposer round instead, tagging each member's JSON transcript with its layer index, and rebuild the round structure on reload. - AnthropicService.Panel.cs: persist every round unconditionally; drop the now-dead persist parameter and isFinalLayer local; write layer/totalLayers into the transcript; iteration = layer*100+index+1 so DB rows are layer-aware (no UNIQUE constraint on chain_id/iteration, id-based ordering) - history.js: group panel bubbles by layer on reload and insert the "Runde k / N" divider on round change for MoA (totalLayers > 1), matching the live startPanelLayer view; back-compat for old format (default layer 1) - TODO.md: check off the MoA persistence item Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
60 lines
5.9 KiB
Markdown
60 lines
5.9 KiB
Markdown
# TODOs
|
||
|
||
## Features
|
||
- [x] Skills: In Datenbank anlegen können, mit Pfad zu Skill-Dateien; im Frontend am Dashboard dargestellt. Zuweisung an Agent und/oder Session.
|
||
- [x] System-Prompt: Nachrichten einer Session als Referenz und somit in den System-Prompt aufnehmen
|
||
- [x] Im Chat: Menüpunkt "Datenbank sichern" entfernen und stattdessen in den Einstellungen platzieren. Außerdem soll nun nicht mehr nur die Datenbank gesichert werden, sondern der gesamte data-Ordner (der Unterordner backup muss natürlich exkludiert werden)
|
||
- [x] Agents-Formular (nur beim Bearbeiten von vorhandenen Agent): Button der das File-Explorer Modal öffnet bei dem ich den Agent-Ordner sehe.
|
||
- [x] Chat: Maximal 500 Nachrichten laden. Dauert sonst zu lange und der Browser wird langsam
|
||
- [x] User-Management: Tabelle in Datenbank mit username / password. Wenn kein User vorhanden: dann admin mit password "admin" anlegen
|
||
- [x] Websearch Tool
|
||
- [x] Anfrage/Stream abbrechen
|
||
- [x] Telegram-Intergration
|
||
- [x] Refactoring: Agent/Session-Einstellungen, die den System-Prompt bzw. das Tool Use bearbeiten
|
||
- [x] Cronjobs: Planung, ob cron von Debian/Linux verwendet werden soll, oder ein eigener Worker/Service in der App selbst, der das übernimmt
|
||
- [x] Weiteres Modell hinzufügen: "Haiku 4.5"
|
||
- [x] Weitere Tools: Glob? Search? Todo List?
|
||
- [x] Settings in Datenbank speichern (users table) anstelle von localStorage
|
||
- [x] Einzelne Nachicht als Link teilen
|
||
- [x] Geteilte Links verwalten (löschen)
|
||
|
||
## Bugs
|
||
- [x] Wenn gerade gestreamt wird und man refreshed die Seite, dann verliert das Frontend den Status "Streaming..." und ich kann eine Nachricht schreiben, obwohl das nicht möglich sein sollte
|
||
- [x] Größere Tasks brechen irgendwann ab, könnte an der Limitierung von Antrophic/Claude liegen. Jedoch sollte wird es scheinbar nicht behandelt: Der Status bleibt auf "Streaming..." aber es passiert nichts mehr
|
||
- [x] Session -> Chat öffnen im Frontend soll nicht möglich sein, wenn kein Agent gesetzt ist
|
||
- [x] Falsche Nachrichtenanzahl im Dashboard (tool uses werden fälschicherweise mitgezählt) - dasselbe bei "Ältere Nachrichten laden" im Chat
|
||
- [x] Beim Benutzen vom Tool "todo_write": beim streamen ist der text abgeschnitten (limitiert), nach dem poll (history laden) passt es wieder. es soll beim stream auch vollständig angezeigt werden und nicht mit "..." enden
|
||
- [x] Manchmal passiert es wenn ein Agent die Memory-Funktion hat, dass er sich selbst Memories einträgt - das ist auch ok so, aber, manchmal werden "dumme" erinnerungen gesetzt, die nur session-bezogen sind (und nicht agent-bezogen) und diese sind dann fast immer einfach nur copy&paste aus dem session system-prompt. Woran kann das liegen bzw. wie kann man das optimieren?
|
||
- [x] File Explorer im Frontend, Klick auf `.fe-item` ignoriert das padding, sprich man muss genau auf den Text klicken, damit der Klick genommen wird
|
||
|
||
## Backend
|
||
- [x] System-Prompt anpassen. Explizit auf Workspace-Pfad hinweisen, weil Model halluziniert oft und will in den nicht vorhandenen Pfad /workspace wechseln
|
||
|
||
## Frontend
|
||
- [x] Chat: Es scrollt beim Laden nicht ganz nach unten, ich denke weil im DOM noch etwas nachgeladen wird (ich denke es ist die Schriftart), und die Höhe sich beim Laden nochmal verändert
|
||
- [x] Chat: User-Nachrichten mit dem Tag `[Datei: pfad/zur/datei.xyz:1-10]` wird nicht als HTML geparsed
|
||
- [x] Chat: Wird zwar erkannt und ist klickbar, aber es öffnet sich einfach nur der File Explorer, ohne dass sich die Datei öffnet und die Darstellung in Monospace ist auch nicht schön
|
||
- [x] Chat: Es werden momentan alle Tool-Calls angezeigt - die Anzeige soll individuell in den Einstellungen gemacht werden können. Auswahl aus drei Stufen: "Alle anzeigen" / "Nur Modifikationen" (file änderungen, memory änderungen, etc.) / "Verstecken"
|
||
- [x] Browser: "Zurück"-Taste soll auf den vorherigen location.hash wechseln
|
||
- [x] File Explorer: CodeMirror lässt sich horizontal nicht scroll
|
||
- [x] Chat: Datum und Uhrzeit bei den Nachrichten anzeigen (Format: dd.MM.yyyy HH:mm:ss)
|
||
- [x] Dashboard: Menu-Dropdown bei Cards sind abgeschnitten wenn die Card-Höhe nicht ausreicht (logisch, weil das Menu-Dropdown ein Child von der Card ist)
|
||
- [x] Auto-scrolling deaktivieren, wenn man weiterhoch gescrollt hat, und er wieder fortsetzen wenn man ganz nach unten gescrollt hat
|
||
- [x] Anstelle von `[Bild: ...]`-Platzhalter direkt das gesendete Bild anzeigen
|
||
|
||
## Ideas / Backlog
|
||
- [x] Memory: Embedding-Modell für semantische Suche über Memory-Dateien (Vektor-basiert + BM25 Hybrid Search)
|
||
- [x] ~~Claude (Sub-)Agents~~ – Nicht umsetzbar: Claude Code Sub-Agents sind ein CLI-Feature, nicht über die Messages API verfügbar. Eigenes Sub-Agent-System (Preparer/Review/Finalizer) deckt den Use-Case bereits ab.
|
||
|
||
## Features aus Devy übernehmen
|
||
- [x] 💬 Typing-Indicator - Animierter Indikator statt statischem "Streaming..."
|
||
- [ ] 🎨 Chat-Hintergründe - Benutzerdefinierte Hintergründe pro Session
|
||
- [x] 👤 User-Management - Admin-only: Benutzer CRUD, Login-as-User, Default-Pfade
|
||
- [x] 🖥️ Windows Desktop App - WPF + WebView2 Wrapper mit konfigurierbarer URL
|
||
- [ ] 🎨 Canvas - HTML/CSS/JS inline rendern in sandboxed iframes mit Resize und Source-View
|
||
(Message-Tag: `[canvas:<title>:<height (optional)>]...[/canvas]`)
|
||
|
||
## Multi-Modell-Panel (Fusion/MoA)
|
||
- [x] 🔄 MoA-Zwischenrunden persistieren (F5 überleben) - `RunPanelMember` (`Services/AnthropicService.Panel.cs`) persistiert jetzt JEDE Proposer-Runde (statt nur der finalen) mit `layer`/`totalLayers` im JSON-Transkript; `wwwroot/js/history.js` gruppiert die Panel-Bubbles nach Layer und rendert die "Runde k/N"-Divider beim Reload.
|
||
- [ ] 💰 Member-Token in die Chain-Kosten - Panel-Member-Tokens fließen nicht ins `TokenUsage` → Badge zeigt nur Worker-Kosten (bei MoA jetzt ≈ Runden × Agenten, also spürbar). Ziel: Usage aus allen drei Member-Pfaden (Anthropic-Loop, CLI-Events, OpenAI-Response) thread-safe (lock/Interlocked) ins geteilte `usage`-Objekt in `Services/AnthropicService.Panel.cs` akkumulieren.
|