archiveHome-Punkt abgehakt (Ursache war der Config-Round-Trip); zwei neue Punkte

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
marcusH
2026-07-19 23:04:25 +02:00
parent 96b6c47587
commit 84eb15ca01
+31 -5
View File
@@ -1,10 +1,20 @@
# Offene Punkte — bei jedem Start prüfen und abhaken
- [ ] **„Projekt hinzufügen" prüfen: verliert `archiveHome`.**
Verdacht: Der Add-Projekt-Pfad schreibt die `ai-control.json` neu und lässt
`archiveHome` fallen, statt die bestehende Config zu übernehmen.
- [x] **„Projekt hinzufügen" verliert `archiveHome` — Ursache gefunden, behoben.**
Der Verdacht (Add-Projekt-Pfad) war falsch. Ursache war ein verlustbehafteter
Config-Round-Trip: `read_project_config_in` deserialisiert in `ProjectConfig`,
serde verwirft dabei still jeden unbekannten Key, und `write_project_config_in`
schreibt die Datei komplett neu. Geschrieben hat die Pool-Zuweisung
(`ProjectList.vue:113``assign_pool_in`), ausgeführt von einem **älteren
Build ohne das Feld `archive_home`** — daher der Halbzustand mit erhaltener
Berechtigung in `.claude/settings.json` (anderer Schreibpfad).
Befund 2026-07-19 (claude-ai-control):
Fix: `#[serde(flatten)] rest` in `ProjectConfig` reicht unbekannte Keys
unverändert durch; Regressionstest `pool_zuweisen_erhaelt_fremde_keys`.
Einschränkung: Die Versionsdifferenz ist aus Zeitstempeln erschlossen, das
alte Binary war schon überschrieben. Der Defekt selbst ist am Code belegt.
Ursprünglicher Befund 2026-07-19 (claude-ai-control):
- `archive/` existiert seit 21:03 samt Testdokument, war also gesetzt.
- `.claude/settings.json` hat den Eintrag noch:
`additionalDirectories: ~/claude-projects/claude-ai-control/archive`
@@ -14,10 +24,26 @@
`clear_project_archive_home` (archive.rs:96-104) nimmt beides zurück.
- Folge: `panel-wiring.ts:45` blendet Wiki- und Suche-Tab aus.
Zu prüfen: Schreibpfade auf `PROJECT_FILE` in `domain/project.rs`
Zu prüfen war: Schreibpfade auf `PROJECT_FILE` in `domain/project.rs`
(`write_project_config_in`, project.rs:81) — welcher davon eine frische
Config ohne `archive_home` schreibt.
- [ ] **Command-History braucht eine Identität statt Indizes.**
Aufgefallen beim Fix von `commands_delete` (Panik bei Doppelklick, Löschen
der falschen Kachel). Der Fix schickt jetzt den Befehlstext mit und gleicht
serverseitig ab — das verhindert Schaden, ist aber nur ein Notnagel: Zwei
identische Befehle im selben Record sind nicht unterscheidbar, und die
Panel-Indizes hinken der Datei weiter um bis zu ein Watcher-Intervall
(200 ms) hinterher. Sauber wäre eine ID je Eintrag beim Schreiben.
- [ ] **`csp: null` in `tauri.conf.json` ersetzen.**
Aufgefallen beim XSS-Fix: Es gibt keine zweite Schranke. Das Panel liegt im
selben Webview wie das Terminal, dessen `term_write` die PTY über das
Fensterlabel adressiert — eingeschleustes Skript könnte in die laufende
Shell schreiben. Das Markdown-Rendering ist jetzt entschärft
(`src/markdown.ts`), aber eine echte CSP wäre die Schranke dahinter.
Braucht eine Runde Prüfen, was inline benötigt wird (Themes, xterm).
- [ ] **Projekt-Artefakte im Projektordner bündeln (`.ai-control/`?).**
`ai-control.json` und das Projekt-Icon liegen heute lose im Projektordner.
Idee: beides in ein Unterverzeichnis (z. B. `.ai-control/`) zusammenziehen,