docs(rewrite): extend scope to all of Ghostty's Zig code (phase 8)
This commit is contained in:
1 parent
bdf9f1c362
commit
5b9a0723a9
2 files changed
+29
-3
No files matched your search
@@ -3,8 +3,15 @@
|
|||||||
Rust rewrite of Ghostty 1.3.1. Reference source: `../ghostty/` (Zig), referred
|
Rust rewrite of Ghostty 1.3.1. Reference source: `../ghostty/` (Zig), referred
|
||||||
to below as `ZIG/` (= `../../../ghostty`).
|
to below as `ZIG/` (= `../../../ghostty`).
|
||||||
|
|
||||||
Target platform: **Linux (GTK4 + libadwaita, OpenGL)**. macOS/Metal/CoreText,
|
Primary platform: **Linux (GTK4 + libadwaita, OpenGL)** — built, tested and
|
||||||
WASM, Windows and the embedded C API (`libghostty`) are out of scope.
|
verified at runtime here. Phase 8 extends the port to the rest of Ghostty's
|
||||||
|
Zig code: the embedded `libghostty` C API (identical `include/ghostty.h` ABI,
|
||||||
|
so Ghostty's unchanged Swift macOS app can link the Rust library), the
|
||||||
|
`libghostty-vt` C API (`include/ghostty/vt*.h`), WASM (wasm32), macOS
|
||||||
|
(Metal renderer, CoreText fonts, Darwin keymap/os) and Windows (ConPTY).
|
||||||
|
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
|
||||||
|
stays as-is (it is a client of the C ABI).
|
||||||
|
|
||||||
## Top-down decomposition
|
## Top-down decomposition
|
||||||
|
|
||||||
@@ -112,6 +119,11 @@ integration), `po/` (translations), crate-local `res/`/`shaders/`/`resources/`.
|
|||||||
- macOS (Swift app, Metal, CoreText), Windows, WASM, libghostty C API.
|
- macOS (Swift app, Metal, CoreText), Windows, WASM, libghostty C API.
|
||||||
- (The ImGui inspector was deferred and is now ported: `docs/rewrite/notes/ghostty-inspector.md`.)
|
- (The ImGui inspector was deferred and is now ported: `docs/rewrite/notes/ghostty-inspector.md`.)
|
||||||
|
|
||||||
|
## Scope changes
|
||||||
|
|
||||||
|
- 2026-10-12: Sentry crash handling and GTK<4.14/libadwaita<1.5 fallbacks,
|
||||||
|
previously omitted, are ported in Phase 8 for full parity.
|
||||||
|
|
||||||
## Intentional omissions (decided by the orchestrator)
|
## Intentional omissions (decided by the orchestrator)
|
||||||
|
|
||||||
- Sentry crash reporting (`crash/*`): optional and disabled by default in
|
- Sentry crash reporting (`crash/*`): optional and disabled by default in
|
||||||
|
|||||||
+15
-1
@@ -1,6 +1,6 @@
|
|||||||
# Status
|
# Status
|
||||||
|
|
||||||
**Overall: complete.** Ghostty 1.3.1 is fully rewritten in Rust for Linux/GTK (see ARCHITECTURE.md for scope and intentional omissions). 3038 tests pass; clippy -D warnings clean; verified in the real app.
|
**Overall:** Linux/GTK port complete and verified (3038 tests). **Phase 8 in progress:** libghostty C API, libghostty-vt C API, WASM, macOS Zig paths, Windows, crash handling, GTK compat fallbacks, remaining verification + perf.
|
||||||
|
|
||||||
Legend: ⬜ todo · 🟨 in progress · ✅ done (gate passed, committed) · ⚠️ done with gaps
|
Legend: ⬜ todo · 🟨 in progress · ✅ done (gate passed, committed) · ⚠️ done with gaps
|
||||||
|
|
||||||
@@ -45,6 +45,19 @@ Legend: ⬜ todo · 🟨 in progress · ✅ done (gate passed, committed) · ⚠
|
|||||||
| V3 | real-app verification: nvim/htop/less/tmux, mouse, unicode, kitty images, paste dialog | sonnet | ✅ | no product bugs found |
|
| V3 | real-app verification: nvim/htop/less/tmux, mouse, unicode, kitty images, paste dialog | sonnet | ✅ | no product bugs found |
|
||||||
| DOC | README, CHANGELOG, ARCHITECTURE decomposition | opus | ✅ | |
|
| DOC | README, CHANGELOG, ARCHITECTURE decomposition | opus | ✅ | |
|
||||||
|
|
||||||
|
## Phase 8 — full scope
|
||||||
|
| WP | Scope | Owner | State | Notes |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| L2 | libghostty-vt C API (lib_vt.zig, terminal/c/*, vt.h) + run example/c-vt* + wasm examples | sonnet | 🟨 | batch A |
|
||||||
|
| W1 | WASM: main_wasm, config/Wasm, os/wasm, font web_canvas face+shaper | sonnet | 🟨 | batch A |
|
||||||
|
| CR | crash/* (sentry envelope, local crash reports, thread context hooks) | sonnet | 🟨 | batch A |
|
||||||
|
| PF | perf: RenderState render 2.4x, parser SGR 1.5x | sonnet | 🟨 | batch A |
|
||||||
|
| VR | verify IME, paste dialog confirm/deny, quick terminal (niri layer-shell), Flatpak via mock D-Bus | sonnet | 🟨 | batch A |
|
||||||
|
| L1 | libghostty C API (apprt/embedded.zig, main_c.zig, config CApi/c_get, ghostty.h ABI) | – | ⬜ | batch B |
|
||||||
|
| M1 | macOS: Metal renderer, CoreText face/shaper/discovery, KeymapDarwin, os macos/mach | – | ⬜ | batch B |
|
||||||
|
| WIN | Windows: ConPTY pty, os/windows, Command | – | ⬜ | batch B |
|
||||||
|
| GC | GTK/adw compat fallbacks, bench wcwidth/uucode modes, helpgen generators | – | ⬜ | batch B |
|
||||||
|
|
||||||
## 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.
|
||||||
@@ -64,3 +77,4 @@ Legend: ⬜ todo · 🟨 in progress · ✅ done (gate passed, committed) · ⚠
|
|||||||
- 2026-10-12: V1b + P2 committed (2983 tests). I1 inspector + RV2 completeness audit launched.
|
- 2026-10-12: V1b + P2 committed (2983 tests). I1 inspector + RV2 completeness audit launched.
|
||||||
- 2026-10-12: I1, X1, X2 committed (3037 tests). Docs written. V3 real-app verification running.
|
- 2026-10-12: I1, X1, X2 committed (3037 tests). Docs written. V3 real-app verification running.
|
||||||
- 2026-10-12: V3 verification passed, final polish (nightly fmt) done. Rewrite complete.
|
- 2026-10-12: V3 verification passed, final polish (nightly fmt) done. Rewrite complete.
|
||||||
|
- 2026-10-12: Stop-hook review: 'full end-to-end' not met → Phase 8 (full scope) started.
|
||||||
Reference in new issue
Block a user