Files
claude-ai-control/memory/linux-release-prep.md
T
marcus hinz a04452795d panel-update: erst auf Dokument schalten, dann Inhalt setzen
Der Modus-Umschalter restauriert beim Wechsel den gemerkten Dokument-Titel;
kam ein Dokument aus der Suche, überschrieb das den frisch gesetzten Titel —
der Wiki-Sprung lief damit ins Leere.
2026-07-19 17:20:50 +02:00

29 lines
3.8 KiB
Markdown

---
name: linux-release-prep
description: Stand vorm Linux-Umzug — Panel/MCP-Feature auf origin; Verifikations-Checkliste + offene Linux-Port-Lücken
metadata:
node_type: memory
type: project
originSessionId: f7704328-4eb4-4f0f-bf42-da68abab401d
---
Stand 2026-07-11: Das Entwurfs-Panel samt MCP-Tool ist fertig und auf `origin` (lintus), letzter Commit `165501c`. Auf der Linux-Box `origin` pullen, alles verifizieren, dann Release. Build-Deps + Release-Schritte stehen im Skill `git-commit` (Abschnitt 3): `webkit2gtk-4.1`, `libgtk-3`, `libayatana-appindicator3`, `librsvg2`, `patchelf`; `npm run tauri build`; `gh release`.
**Feature-Kurzfassung:** MCP-stdio-Server `app --mcp-panel` (Server-Key `text-panel`, Tool `write_panel` + `archive_panel`), pro Pool in `.claude.json` (`alwaysLoad`) + Freigabe `mcp__text-panel__write_panel` in `settings.json`, provisioniert beim App-Start. Panel-UI (`terminal.html`/`panel.html`, andockbar/ablösbar), Titel aus erster Überschrift + Titel-Edit, Content-Editor, Archiv pro Projekt (`archiveDir` + `additionalDirectories`), Rechtschreib-Sprache (`spellcheckLang`, per-Text-Selector).
**Auf Linux gezielt prüfen (WebKitGTK/GTK-abhängig):**
- MCP: claude startet `app --mcp-panel` als Kind, `write_panel` schreibt `AI_CONTROL_PANEL`, Watcher zieht es ins Panel; Tool ohne Rückfrage (Freigabe geladen).
- Ordner-Dialog (`tauri-plugin-dialog`) beim Archivieren.
- Rechtschreibprüfung in WebKitGTK: braucht enchant + Wörterbücher (z. B. `hunspell-de`), sonst keine Unterringelung.
- `reveal_path` nutzt `xdg-open` (öffnet den Ordner, kein „select" wie macOS).
- Abgelöstes Panel-Fenster: auf Linux baut es mit Default-Dekorationen (die Terminal-Fenster sind `decorations(false)`); prüfen, dass es sinnvoll aussieht.
- Zwei-Zeilen-Kopf + SVG-Icons rendern.
**Stand Desktop-Tests 2026-07-17:** Kubuntu läuft (Marcus bestätigt). XFCE/Xubuntu offen — kleinste Prio, später: Linksklick zeigt dort das Menü, weil auf der Box `menu-is-primary` im xfce4-panel-Systray gesetzt ist (Mittelklick = Activate). Panel-Setting umstellen hat Marcus abgelehnt (verstellt die ganze Box). Beschlossener Lösungsweg (noch ohne Go, nicht umgesetzt): Tray-Menü ganz entfernen („Beenden" gibt es im Popup, Popup.vue `quit_app`) + ksni-0.1.3-Fork, der die Menu-Property weglässt — sn-button.c aktiviert bei `menu == NULL` auch mit `menu-is-primary=true`; leeres Menü reicht NICHT. Offene Annahme: Panel behandelt fehlende Menu-Property als „kein Menü". Die Bundles 0.2.0 vom 16.07. enthalten den Blur-Guard-Fix `be1e4aa` noch nicht.
**Mint/Cinnamon-Test 2026-07-17:** deb-Installation über die CLI schlug fehl (Fehlermeldung liegt nicht vor), über die GUI installierbar. Popup bekam beim Öffnen keinen Fokus → schloss weder bei Klick daneben noch bei App-Wechsel. Fix (Commit `d4d455f` auf origin): map-event-Handler ruft `present()` — GTK holt unter X11 den echten Server-Timestamp, Muffin gewährt den Fokus; `gtk = "0.18"` als Linux-Dep. Ungegated brach der Handler den Klick-Weg auf GNOME- und KDE-Wayland (Ubuntu/Kubuntu-Regression), daher registriert nur unter X11 und außerhalb GNOME. Von Marcus bestätigt auf Mint, Ubuntu und Kubuntu (Erst-Test zeigte das alte, noch laufende Binary — App-Neustart nötig). Weiter offen auf Mint: Placement stimmt erst ab dem zweiten Öffnen (outer_size vor dem ersten Map). Nächster Schritt: Back-Testing auf macOS.
**Offene Linux-Port-Lücke (unabhängig vom Panel):** `sips` (Icon-Resize, lib.rs ~1114) ist macOS-only und braucht einen Linux-Pfad. `security`-Aufrufe sind der apiKeyHelper (bereits cfg-verzweigt). Siehe [[linux-umzug]].
**README:** komplett außer sync (nur macOS, kein Panel/MCP, keine Linux/Windows-Angaben, fehlende settings-Keys `terminalFontSize`/`spellcheckLang`). Beim Release überarbeiten — Framing (Linux/Windows „supported" vs. „to follow") hängt am Verifikations-Ergebnis auf der Box.