docs(rewrite): start phase 9 - port the Swift macOS app to Rust

This commit is contained in:
ddidderr committed 2026-10-12 18:51:17 +02:00
1 parent d91d86c444
commit feacba2d69
2 files changed
+13 -2

No files matched your search

+3 -2
View File
@@ -10,8 +10,9 @@ so Ghostty's unchanged Swift macOS app can link the Rust library), the
`libghostty-vt` C API (`include/ghostty/vt*.h`), WASM (wasm32), macOS `libghostty-vt` C API (`include/ghostty/vt*.h`), WASM (wasm32), macOS
(Metal renderer, CoreText fonts, Darwin keymap/os) and Windows (ConPTY). (Metal renderer, CoreText fonts, Darwin keymap/os) and Windows (ConPTY).
Non-Linux targets are compile-checked (`cargo check --target ...`) on this Non-Linux targets are compile-checked (`cargo check --target ...`) on this
machine; they cannot be run here. The Swift macOS app itself is not Zig and machine; they cannot be run here. Phase 9 additionally ports the Swift macOS app (`macos/`) to Rust
stays as-is (it is a client of the C ABI). (`crates/ghostty-macos`, AppKit via objc2), compile-checked like the rest of
the Apple code; the C ABI stays available for the original Swift app.
## Top-down decomposition ## Top-down decomposition
+10
View File
@@ -106,6 +106,15 @@ Legend: ⬜ todo · 🟨 in progress · ✅ done (gate passed, committed) · ⚠
| RV10 | final Codex verification (RV9 rows + full sweep) | codex astra | ✅ | all prior rows resolved; 8 gaps (1 P1 C buffer len regression) → Z13 | | RV10 | final Codex verification (RV9 rows + full sweep) | codex astra | ✅ | all prior rows resolved; 8 gaps (1 P1 C buffer len regression) → Z13 |
| Z13 | RV10 gaps incl. P1 C action len/alloc mismatch | sonnet | ✅ | | | Z13 | RV10 gaps incl. P1 C action len/alloc mismatch | sonnet | ✅ | |
## Phase 9 — macOS Swift app → Rust (AppKit via objc2; compile-checked)
| WP | Scope | Owner | State | Notes |
|---|---|---|---|---|
| MA1 | foundation: crate, app/AppDelegate, menu, Ghostty.App/Config wrappers, helpers, bundle script, design doc | sonnet | 🟨 | |
| MA2 | Ghostty/ incl. Surface View (Metal layer, input, IME, DnD, a11y) | – | ⬜ | after MA1 |
| MA3 | Features/Terminal (windows, tabs, styles) + Splits | – | ⬜ | after MA1 |
| MA4 | QuickTerminal, Command Palette, Settings, About, Clipboard, Global Keybinds, Secure Input, Services, App Icon | – | ⬜ | after MA1 |
| MA5 | AppleScript, Update (Sparkle), App Intents (assess) | – | ⬜ | after MA1 |
## Log ## Log
- 2026-10-11: Phase 0 complete; Phase 1 launched. - 2026-10-11: Phase 0 complete; Phase 1 launched.
- 2026-10-11: vt (W1+W2) and font sprite (W7) committed; S1 + T1 launched. - 2026-10-11: vt (W1+W2) and font sprite (W7) committed; S1 + T1 launched.
@@ -161,3 +170,4 @@ Legend: ⬜ todo · 🟨 in progress · ✅ done (gate passed, committed) · ⚠
- 2026-10-12: All remaining legit items fixed (P3 rows, Wine runtime testing, ZWJ). Final gate: 3602 native tests, 2758 under Wine, all cross-checks green. Done. - 2026-10-12: All remaining legit items fixed (P3 rows, Wine runtime testing, ZWJ). Final gate: 3602 native tests, 2758 under Wine, all cross-checks green. Done.
- 2026-10-12: Stop-hook: live D-Bus/portal behaviour still unexercised → LIVE launched (private buses; user session untouched). - 2026-10-12: Stop-hook: live D-Bus/portal behaviour still unexercised → LIVE launched (private buses; user session untouched).
- 2026-10-12: LIVE committed (3605 tests). Remaining unverifiable here: native macOS, native Windows (Wine-tested), IME (no input-method daemon installed). - 2026-10-12: LIVE committed (3605 tests). Remaining unverifiable here: native macOS, native Windows (Wine-tested), IME (no input-method daemon installed).
- 2026-10-12: Stop-hook: Swift macOS app is part of Ghostty 1.3.1 → Phase 9 (port to Rust/AppKit) started with MA1.