Adds scripts/live-dbus-test.sh (`just live-dbus`): each scenario runs the installed Ghostty 1.3.1 and the Rust build on a private dbus-run-session bus inside a private headless weston (the user's session bus is never written to), with Python/Gio mocks for org.freedesktop.Notifications, the GlobalShortcuts/Settings portal and org.freedesktop.systemd1, plus a real xdg-desktop-portal run. Scenarios: single-instance (+detect), +new-window with arguments, notifications, global shortcuts, color-scheme settings, cgroup scope creation, URL opening. tests/live_dbus.rs compares the Rust build against goldens recorded from the original (skips when tools or a fresh production build are missing). Two Rust bugs found and fixed (no upstream deviation): - GlobalShortcuts CreateSession/BindShortcuts payloads used the wrong D-Bus signatures ((v), double-boxed values), which a real portal rejects; signature tests added. - CreateSession was sent twice at startup; the config is now bound only after the D-Bus connection is set, as in Zig. All nine scenarios now behave identically to the original (docs/rewrite/notes/live-dbus.md). Test Plan: - just live-dbus - cargo test --test live_dbus (needs target/vp/production/ghostty)
18 lines
1.7 KiB
Markdown
18 lines
1.7 KiB
Markdown
# Known differences
|
||
|
||
All behavioural differences found by the audits (RV1–RV18) have been fixed;
|
||
intentional deviations (upstream bugs fixed rather than replicated) are listed
|
||
in DEVIANT_FIXES.md. No known unfixed behavioural differences remain.
|
||
|
||
What remains is verification coverage that this Linux machine cannot provide:
|
||
|
||
## Not verifiable on this machine
|
||
|
||
- Native Apple execution: Metal, IOSurface, CoreText, Apple input APIs, Mach handling and Apple packaging (compile-checked only, `just check-macos`).
|
||
- Native Windows (real Windows console host, Windows-only APIs Wine stubs: `ResizePseudoConsole` is a Wine stub, POSIX-semantics rename over an existing file is unsupported by Wine). The Windows code paths are otherwise run under Wine (`just test-windows-wine`, see `notes/windows-wine.md`): ConPTY, `CreateProcessW`, pipes, the IO thread and `cmd.exe` children are runtime-tested; `just check-windows` stays the clippy gate.
|
||
- Native FreeBSD execution (cross `cargo check` only, if the target could be added).
|
||
- Real input methods (ibus/fcitx are not installed; the IME paths are covered with a mock `GtkIMContext`, see `notes/verification-VR.md`).
|
||
- Desktop-specific portal backends (GNOME/KDE GlobalShortcuts, a real notification daemon). The D-Bus/portal protocol Ghostty speaks (GTK single-instance and `+new-window`, desktop notifications, GlobalShortcuts, Settings colour scheme, systemd cgroup scope, xdg-open) *is* now covered at runtime against the original on a private bus, with mocks and the real xdg-desktop-portal + gtk backend (`just live-dbus`, `notes/live-dbus.md`).
|
||
- Real-browser rendering (wasm is checked with Node only).
|
||
- Native io_uring execution; Swift code was excluded.
|