From 567aac33ad2e505f2e60298dfc2ba6f5b9d81eb2 Mon Sep 17 00:00:00 2001 From: "marcus.hinz" Date: Wed, 24 Jun 2026 18:59:20 +0200 Subject: [PATCH] Memory: ghostty-Notiz entfernt, Feedback-Notiz (keine rhetorischen Fragen) ergaenzt --- limbach/memory/MEMORY.md | 2 +- .../feedback-keine-rhetorischen-fragen.md | 13 ++++++ limbach/memory/ghostty-miniterm-einbindung.md | 40 ------------------- 3 files changed, 14 insertions(+), 41 deletions(-) create mode 100644 limbach/memory/feedback-keine-rhetorischen-fragen.md delete mode 100644 limbach/memory/ghostty-miniterm-einbindung.md diff --git a/limbach/memory/MEMORY.md b/limbach/memory/MEMORY.md index 3c157a2..732e5eb 100644 --- a/limbach/memory/MEMORY.md +++ b/limbach/memory/MEMORY.md @@ -2,4 +2,4 @@ - [adesso Styling](adesso-styling.md) — Corporate-Template-Quelle & Design-Tokens für Folien 2–4 (adesso_style.py) - [Integrationsserver Aufwand](integrationsserver-aufwand.md) — grobe Aufwandsschätzung Event-Sourcing-Integrationsserver (~300–530 PT) - [Git-Permission-Scope offen](git-permission-scope-offen.md) — Plan: git/cd/Datei prompt-frei je Projekt via update_scripts-Command (Wrapper + Pfad-Globs aus additionalDirectories), globales cd/git raus -- [Ghostty in Mac-App-Builder](ghostty-miniterm-einbindung.md) — SwiftTerm durch libghostty ersetzen: Weg, Aufwand (Zig), ghostling als Vorlage +- [Keine rhetorischen Fragen](feedback-keine-rhetorischen-fragen.md) — Aussagen statt Fragen, kein Belehr-Ton diff --git a/limbach/memory/feedback-keine-rhetorischen-fragen.md b/limbach/memory/feedback-keine-rhetorischen-fragen.md new file mode 100644 index 0000000..b390fb0 --- /dev/null +++ b/limbach/memory/feedback-keine-rhetorischen-fragen.md @@ -0,0 +1,13 @@ +--- +name: feedback-keine-rhetorischen-fragen +description: "Keine rhetorischen Fragen in Antworten, sachlicher Aussagestil" +metadata: + node_type: memory + type: feedback + originSessionId: 55edb555-2c52-4cb9-82fd-6aebe0099547 +--- + +Keine rhetorischen Fragen in Antworten — Aussagen formulieren, nicht in Frageform verpacken. Auch keine pseudo-pädagogischen oder belehrenden Frageformulierungen ("Warum du?", "Was ist X?"). Wird als Verkauf-für-dumm und als Predigt-/Professoren-Ton empfunden. + +**Warum:** Stört massiv, wiederholt scharf eingefordert. +**How to apply:** Sachverhalt direkt als Aussage hinstellen. Keine Frage als Stilmittel, kein Aufzählen von Grundlagen, die er kennt. Siehe [[feedback-keine-intent-unterstellung]]. diff --git a/limbach/memory/ghostty-miniterm-einbindung.md b/limbach/memory/ghostty-miniterm-einbindung.md deleted file mode 100644 index 81c115a..0000000 --- a/limbach/memory/ghostty-miniterm-einbindung.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: ghostty-miniterm-einbindung -description: "Prüfung, ob Ghostty/libghostty statt SwiftTerm in den Mac-App-Builder eingebunden werden kann" -metadata: - node_type: memory - type: project - originSessionId: c054beab-7d0a-44f2-992f-ee3f9304358e ---- - -Projekt `__mac-cluade-app-builder` (in /home/marcuh/claude-projects/) baut pro Aufruf eine eigenständige macOS-`.app` mit eigener Bundle-ID → eigenes Dock-Icon + eigener ⌘-Tab-Eintrag. Ein gemeinsames Binary (Sources/MiniTerm/main.swift) liest pro Bundle Info.plist-Keys (MTCommand, MTWorkingDirectory, MTFontSize, MTFontName, MTWindowTitle); make-app.sh assembliert das Bundle. Nutzt heute **SwiftTerm** (SPM-Dependency). Funktioniert. - -Frage: SwiftTerm durch **Ghostty** ersetzen, weil Terminal besser (GPU-Rendering, Ligaturen, vollere Kompatibilität). - -Befund: -- Ghostty.app als Ganzes hilft nicht — eine gemeinsame App löst die Pro-Projekt-Identität (Dock/⌘-Tab) nicht (gleiche `--class`-Grenze wie im README). Lösung bleibt: pro Projekt eigenes Bundle. -- Richtiger Weg: **libghostty** (Zig-Kern, C-API) statt SwiftTerm in die eigene Swift-Hülle linken — analog zur jetzigen Konstruktion. Offizielles Minimalbeispiel als Vorlage: `ghostling` (github.com/ghostty-org/ghostling). -- Genutzte Funktionsfläche ist winzig (Prozess in Login-Shell starten, rendern, Font, Shift+Enter-Key-Monitor, Copy/Paste) → laufendes API-Risiko gering, obwohl libghostty-Embedding-API offiziell noch nicht stabil ist. -- Einmaliger Aufwand = Integration: **Zig-Toolchain** auf den Mac, libghostty aus Quellbaum bauen, C-Header + lib manuell in die Swift-Hülle linken. Kein fertiges SPM-Paket wie SwiftTerm. -- Zig = einzelnes self-contained Binary (Tarball, kein Installer), aber **bestimmte von Ghostty gepinnte Version** nötig. Gehört auf den Mac, nicht auf Linux (Build geht nur unter macOS, Xcode CLT/AppKit). -- Bestehende Mac-Tools reichen sonst: swift (Xcode CLT), sips/iconutil/codesign (macOS built-in). Nur Zig ist neu. -- Bundle-Hülle, make-app.sh und Shift+Enter-Key-Monitor bleiben unverändert; SwiftTerm-Variante bleibt als Rückfallpunkt funktionsfähig. - -Projekt umgezogen nach `~/projects/claude-app-builder-4-mac` (eigenes Git, Remote git.lintus.art); aus `~/claude-projects` entfernt. - -Stand 2026-06-21: **libghostty erfolgreich gebaut.** Volle macOS-Variante mit Metal-Renderer (Surface-/App-API: `ghostty_app_new`, `ghostty_surface_new/draw/key`…) liegt als `vendor/libghostty/{lib/libghostty.a (arm64, 135 MB), include/, patches/, README.md}` im Projekt. Quelle Ghostty v1.3.1 + Zig 0.15.2. - -Stolpersteine (alle gelöst, im README/Patch dokumentiert): -- Zig 0.15.2 linkt auf dem **Host (macOS 26.5)** kein natives Binary — libSystem-Inkompatibilität mit dem 26er-SDK (Auto-Erkennung von `26.x` scheitert; explizit `26.0` ginge). 0.16/0.17 linken, aber Ghostty 1.3.1 baut nicht damit (ArrayList/EnvMap/Writer-Drift + requireZig). Kein Patch am Host möglich. -- Lösung: Build in **macOS-15-VM** (tart, cirruslabs-Image, Apple-Silicon-Host) mit aktivem **CLT (15.5-SDK)** → Zig linkt. `metal`-Shader-Compiler nur per `DEVELOPER_DIR` aus Xcode geholt. -- 3 Build-Patches an Ghostty: build.zig (macOS-libghostty.a-Install freischalten, shared `.so` raus), GhosttyXCFramework.zig (nur macOS-Slice, kein iOS/Universal), MetallibStep.zig (metal via Xcode-DEVELOPER_DIR). - -Link gegen Host-Swift verifiziert: Smoke-Test (modulemap + `swiftc -lghostty` + Frameworks AppKit/Metal/MetalKit/QuartzCore/CoreText/CoreGraphics/CoreVideo/IOSurface/Carbon/Foundation/CoreFoundation, `-lc++`) linkt die arm64-`.a` auf macOS 26.5/SDK-26 und ruft `ghostty_info()` (Cross-SDK unkritisch). - -**Surface-Integration gebaut und lauffähig** (Stand 2026-06-21): MiniTerm linkt libghostty, kompiliert, läuft, Test-`.app` startet ohne Crash mit GPU-gerenderter Login-Shell. -- `Sources/CGhostty/` — C-Modul (ghostty.h + modulemap) für die C-API. -- `Sources/MiniTerm/Ghostty.swift` — `GhosttyApp` (init/config/runtime-callbacks/tick) + `GhosttySurfaceView` (NSView, `ghostty_surface_new` mit nsview-Zeiger, Größe/Scale/Fokus, Tastatur inkl. Shift+Enter→`ghostty_surface_text`, Maus/Scroll). -- `main.swift` — Engine-Wahl per Info.plist `MTEngine` (Default `ghostty`, `swiftterm` = Fallback; auch bei libghostty-Init-Fehler). -- `Package.swift` — CGhostty-Target + linkerSettings (`-Lvendor/libghostty/lib -lghostty` + Frameworks AppKit/Metal/MetalKit/QuartzCore/CoreText/CoreGraphics/CoreVideo/IOSurface/Carbon, `-lc++`). - -Offen/zu prüfen: visuelle Bestätigung (Rendering, Tippen, Resize); Clipboard-Callbacks sind no-op (kein ⌘C/⌘V über libghostty); Font-Family wird nicht gesetzt (nur font_size); arm64-only. VM + Scratch abgeräumt.