fd82f85800
Ptyxis 50.x (the new default terminal on Ubuntu 26.04) ships with VTE 0.84.x, which parses the `\x1b[?2026h` / `\x1b[?2026l` synchronized- output begin/end pair but still flashes the entire viewport on every wrapped frame instead of deferring rendering. gnome-terminal 3.58 on the same VTE renders cleanly, so the heuristic stays narrow: trigger only on TERM_PROGRAM matching `ptyxis` (case-insensitive) or PTYXIS_VERSION non-empty. Add a new `synchronized_output` setting (`auto` | `on` | `off`, default `auto`) controlling whether the renderer wraps each frame in DEC 2026. `apply_env_overrides` flips `auto` → `off` when Ptyxis is detected; the four wrapping sites in ui.rs (`draw_app_frame_inner`, `reset_terminal_viewport`, `resume_terminal`, and the early-init viewport reset) now respect the resolved flag. Users on Ptyxis who upgrade past an upstream fix or want to confirm one landed can override with `/set synchronized_output on`. 8 new tests cover: default-auto resolves enabled, off disables, on stays enabled, set/aliases, Ptyxis via TERM_PROGRAM, Ptyxis via PTYXIS_VERSION alone, explicit `on` beats the heuristic, explicit `off` is preserved, and no non-Ptyxis TERM_PROGRAM (including Ghostty and VS Code, which both keep DEC 2026 on) regresses. Reported via WeChat by Cyrux on Ubuntu 26.04 with v0.8.30 npm install; analysis by Hunter pinpointed Ptyxis + VTE 0.84 as the cause.