You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The remaining structural renderer gap is direct DirectComposition / swap-chain presentation inside GPUI so the temporary GPU -> CPU -> GPUI image bridge can be removed entirely.
CJK IME commit/preedit input landed in PR [codex] Add Windows and Linux CJK IME input #99 and was user-smoke-tested on Windows. Remaining polish is now hardening and distribution: IME edge-case/international-keyboard validation, advanced selection, shell integration, ligatures, extreme resize/multi-monitor/GPU cases, code signing, installer/signing strategy, and updater hardening.
PR Fix:Linux WSL illegal-instruction startup && inline LaTex #100 hardened the shared non-macOS libghostty-vt build by deriving an explicit generic Zig target from Cargo's target triple. This mainly fixed the Linux/WSL illegal-instruction report in crash on WSL ubuntu 22.04.5 #97, but it also improves Windows artifact reproducibility by preventing accidental native-host CPU feature leakage.
Done
Phase 0 — workspace + portable CI
Cross-platform workspace and cfg gates.
Portable crates compile on Windows.
Windows named-pipe control socket (\\.\pipe\con).
Feature-gated Windows binary name con-app.exe because CON is a reserved DOS device name.
.cargo/config.toml aliases (wbuild, wrun, wtest) for the Windows feature set.
Portable CI includes Windows checks.
Phase 1/2 — backend foundation
ConPTY spawn, resize, reader/writer pipes, lifecycle, and teardown.
Shared libghostty-vt integration through Zig; current validated Zig line is 0.15.2.
Fullscreen/maximize bottom-row correctness after the Neovim repro from the beta cycle.
CJK IME commit/preedit input via GPUI InputHandler, with cursor-relative candidate bounds and width-aware CJK/wide preedit positioning. Landed in PR [codex] Add Windows and Linux CJK IME input #99.
Keep low-latency presents armed until VT generation actually advances.
Preserve successive output wakes instead of draining bursty command output into one repaint.
Treat the staging ring as a mailbox for PTY-driven output.
Avoid presenting stale completed readbacks ahead of fresher submitted snapshots.
Derive exact dirty rows and use D3D row-region readback for small updates.
Replace dirty rows inside a CPU BGRA backing frame before publishing the GPUI image, preserving translucent terminal semantics.
Keep command-start output latency-critical long enough for delayed shell output.
Follow Windows Terminal default profile selection where possible; CON_SHELL remains explicit override.
Add CON_GHOSTTY_PROFILE / CON_LOG_FILE instrumentation for ConPTY, VT snapshot, renderer, render session, and GPUI image handoff timings.
Phase 5 v0 — beta distribution
Windows release workflow creates ZIP + SHA256 sums.
PowerShell one-line installer path exists.
Appcast/update metadata exists.
Settings update card and command-palette check action exist.
Release channel/version are baked from tags.
In-place update path exists for the beta installer flow.
Remaining work
Structural performance
Direct presentation inside GPUI: land or obtain a GPUI API for an external DirectComposition/swap-chain surface, then remove the D3D readback + RenderImage re-upload bridge.
Re-profile with PIX / GPUView / ETW after direct presentation exists; current instrumentation is sufficient for the existing bridge but not a substitute for GPU timeline validation.
Terminal hardening
IME/dead-key/international-keyboard validation matrix across Windows IMEs and keyboard layouts.
Double-click word selection, triple-click line selection, drag-to-scroll selection, Alt-drag column selection.
Ctrl+Space -> NUL behavior where text events are ambiguous.
OSC 133 / OSC 7 shell integration parity.
Ligatures and remaining font-shaping polish.
Extreme resize, high-DPI, multi-monitor, and multi-GPU edge cases.
Distribution hardening
Code signing so SmartScreen trust improves.
Signature verification for downloaded update artifacts.
Decide final installer format: MSI/MSIX/cargo-dist/winget in addition to the current ZIP + PowerShell installer.
ARM64 strategy.
Upstream / GPUI follow-ups
External swap-chain / DirectComposition attachment API for GPUI Windows.
Optional GPUI close-race log cleanup for benign window not found / invalid-handle noise on teardown.
Windows support — status tracker
TL;DR
v0.1.0-beta.25; current Windows support is no longer a placeholder or bring-up track.libghostty-vt, D3D11/DirectWrite glyph-atlas renderer, GPUI-hosted offscreen image bridge, input, mouse, clipboard, custom titlebar, DPI, resize, and Windows distribution v0.CONpath/config issue (windows os save fail #56), fullscreen/maximize bottom-row rendering, and the first large typing-latency pass.libghostty-vtbuild by deriving an explicit generic Zig target from Cargo's target triple. This mainly fixed the Linux/WSL illegal-instruction report in crash on WSL ubuntu 22.04.5 #97, but it also improves Windows artifact reproducibility by preventing accidental native-host CPU feature leakage.Done
Phase 0 — workspace + portable CI
\\.\pipe\con).con-app.exebecauseCONis a reserved DOS device name..cargo/config.tomlaliases (wbuild,wrun,wtest) for the Windows feature set.Phase 1/2 — backend foundation
libghostty-vtintegration through Zig; current validated Zig line is 0.15.2.libghostty-vtZig target selection landed in PR Fix:Linux WSL illegal-instruction startup && inline LaTex #100 so Windows VT artifacts are not tied to the build machine's native CPU feature set.GhosttyApp/GhosttyTerminalshape used by the app.Phase 3a/3b — renderer and terminal grid
RenderSessionbridge into GPUI image rendering; no child HWND dependency in the current path.Phase 3c — input, selection, shell interaction baseline
InputHandler, with cursor-relative candidate bounds and width-aware CJK/wide preedit positioning. Landed in PR [codex] Add Windows and Linux CJK IME input #99.Phase 3e — latency work landed in #64 + #68
CON_SHELLremains explicit override.CON_GHOSTTY_PROFILE/CON_LOG_FILEinstrumentation for ConPTY, VT snapshot, renderer, render session, and GPUI image handoff timings.Phase 5 v0 — beta distribution
Remaining work
Structural performance
RenderImagere-upload bridge.Terminal hardening
Distribution hardening
Upstream / GPUI follow-ups
window not found/ invalid-handle noise on teardown.References
docs/impl/windows-port.mdpostmortem/2026-04-26-windows-row-readback-upload-latency.md,postmortem/2026-04-26-windows-command-render-latency.mdpostmortem/2026-04-21-windows-atlas-pua-rasterization.mdpostmortem/2026-04-21-windows-x-close-log-noise.md