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

3.8 KiB

name, description, metadata
name description metadata
linux-release-prep Stand vorm Linux-Umzug — Panel/MCP-Feature auf origin; Verifikations-Checkliste + offene Linux-Port-Lücken
node_type type originSessionId
memory project 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.