diff --git a/CHANGELOG.md b/CHANGELOG.md index 90e99e8..d83a16c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,65 @@ Alle Änderungen am Projekt. Format: [Keep a Changelog](https://keepachangelog.com/de/1.1.0/) +> **Hinweis:** Dieser Changelog hatte eine große Lücke — er endete bei `0.0.0.5` +> (2026-03), das Projekt lief aber bis `0.2.0.2` (2026-07) weiter (u. a. OAuth, +> Voice-Streaming, Speaker-ID, Datei-Manager). Ab dem Projekte-/Multi-Threading- +> Epos (2026-07) wird wieder gepflegt; die dazwischenliegenden Versionen +> `0.0.0.6`–`0.1.9.6` sind nicht rückwirkend nacherfasst. + +--- + +## [Unreleased] — 2026-07-10 + +### Hinzugefügt + +**Proxy — ARIA-Persona über echten System-Prompt-Kanal** +- Persona + Tool-Use-Format gehen jetzt über `--append-system-prompt` der Claude-CLI statt als ``-getaggter User-Content im Prompt (`openai-to-cli.js`: Prompt = nur Verlauf, `systemPrompt` separat; neue `sed`-Zeile schleust `--append-system-prompt`,`options.systemPrompt` ins `buildArgs`-Array von `manager.js`) + +**Multi-Threading — echte Parallelität in der App** +- `agent_activity`-Events tragen jetzt die `projectId` (Brain → Proxy `aria_project_id` → Bridge → App); der „ARIA denkt"-Indikator zeigt nur noch den **fokussierten** Kontext statt global zu flackern (`agentActivityByCtx`-Map) +- Kontext-scoped Cancel: neuer Proxy-Endpoint `/cancel {projectId}` killt nur die Subprozesse *eines* Kontexts (`/cancel-all` bleibt fürs NOT-AUS); Bridge-soft-Cancel + App-Abbrechen tragen die fokussierte `projectId` + +**Diagnostic — Datei-Zuordnung** +- Projekt-Dropdown pro Datei im Datei-Manager (nutzt `/api/files-set-project`) — auch alt-hochgeladene Dateien nachträglich einem Projekt zuweisen + +### Behoben + +- **Identität:** fester `IDENTITY_ANCHOR` ganz oben im System-Prompt — ARIA verliert in (Pentest-)Projekten nicht mehr die Rolle bzw. deutet ihre eigene Aufgabe nicht mehr als Prompt-Injection +- **Barge-In kontext-scoped:** eine Frage im Hauptchat blockiert/killt nicht mehr die parallele Arbeit in einem Projekt (Busy-Status kontextgenau aus `queueStatus` statt global) + +--- + +## [0.1.9.7 – 0.2.0.2] — 2026-07-02 … 2026-07-10 — Projekte & Multi-Threading + +Der große Epos: Themen-Bündel („Projekte") im Hauptchat, echt nebenläufig verarbeitet. + +### Hinzugefügt + +**Projekte (Brain + App + Diagnostic)** +- Named Themen-Bündel, im Hauptchat verankert, per Sprache adressierbar („steige in Projekt X ein", „für Frankreich: …"), CRUD via Meta-Tools + UI +- App: Focus-One-View + Drawer + Queue-Status-Dots + „← Hauptchat"-Button +- Diagnostic: Kontext-Strip + Focus-Filter + Queue-Polling +- Dateien pro Projekt getaggt (Manifest `file_projects.json`, Filter im Datei-Manager) + +**Multi-Threading (Brain)** +- Per-Request `project_id` statt globalem `active_project`; per-Projekt-`asyncio.Lock` = Queue-Verhalten pro Kontext, verschiedene Kontexte laufen parallel +- Queue-Aware-Prompting (spätere Nachricht kann laufenden Task als überholt markieren) ohne Extra-LLM-Call + +**Voice-Router (Bridge)** +- 30s-Sticky-Kontext, Prefix-Adressierung, Meta-Command-Interception („zurück zum Hauptchat" ohne Brain-Call), Voice folgt App-Focus + +**Migration** +- Alt-getaggte Projekt-Nachrichten (in `conversation.jsonl`, aber ohne Tag im `chat_backup.jsonl`) werden nachträglich einsortiert — idempotent, nicht-destruktiv, reihenfolge-erhaltend + +### Behoben + +- **Leere Projekte:** Drawer resettete den App-Focus beim Öffnen auf `status.active` (im Multi-Threading = null); Diagnostic warf `project_id` beim `chat_history`-Reload weg (server.js + Renderer); untagged ARIA-Bubbles/Backup-Writes aus dem toten Gateway-Watch-Pfad +- **Voice → falscher Kontext:** Registry-Race (`stt_stream_end` poppte die Focus-`projectId` vor dem finalen `stt_endpoint`); App übernimmt jetzt die autoritative Server-`projectId` der STT-Bubble +- **STT-Endpointing:** akustische Stille als robustes Signal statt rein semantischer Stagnation (nicht mehr „hört nach zwei Worten auf" / „merkt Ende nicht") +- **Anhänge:** Bild/Datei + Frage landen im gewählten Projekt statt im Hauptchat (projectId durch die ganze Anhang-Kette) +- **Bild-Bubbles im Diagnostic:** ARIA-Datei-Bubbles tragen `project_id`, werden nicht mehr fälschlich vom Focus-Filter ausgeblendet + --- ## [0.0.0.5] — 2026-03-13