Memory: ghostty-Notiz entfernt, Feedback-Notiz (keine rhetorischen Fragen) ergaenzt
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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]].
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user