* feat(desktop): unify Tauri title bar and window controls
Blend window controls into the dashboard header, preserve native dragging and resizing across macOS, Linux and Windows, and keep system controls available while web chrome cannot receive input. Reuse the native navigation and modal owners, with AppKit gesture handling on macOS and GTK resize capture on Linux.
* fix(desktop): keep native chrome for older Gateway dashboards
Enable unified window chrome only after the hosted UI announces support for its layout and modal contract. Preserve native title bars for older dashboards, restore native mode before replacing a WebView, and declare the Rust-injected script as a production Knip entry. Covers the published 2026.9.4 UI and current UI without Gateway-version branches.
* test(workboard): await concurrent harness cleanup
* feat: support inline browser panels in the Tauri companion
* test: cover inline browser proof in companion CI routing
* fix: register the native browser validation entry point
* fix(onboarding): preserve desktop recovery and model setup results
Keep Tauri startup errors on the initiating page, discover eligible Ollama
models before catalog limits, and retain uncertain activation ownership.
Align browser verification with the existing native/server budget and
reject interrupted model output before publishing setup replies or commands.
Guide app users directly to their agent; external channels remain optional.
Verified with native Tauri startup/retry and Codex chat, live local models,
HTTP discovery, browser recovery, terminal-result regressions, and type/lint
gates. Closes#139086.
* test(onboarding): keep terminal regressions in the existing graph
* fix(onboarding): stop retrying terminal setup failures
Use one interactive agent loop and surface its terminal error without another planner call. Preserve the separate one-shot CLI planner. Validate config proposals with the existing inference-owner guard before admission, and mirror only authoritative proposal transitions. Align recovery E2E fixtures with the real Gateway rejection metadata.
* test(onboarding): align Gateway fixtures with the single agent loop
Fix Linux AppImage startup failures caused by recursive GStreamer dependency collection.
- stage only the required media plugin set
- verify direct FUSE and extracted startup, shell ABI isolation, media playback, and onboarding
- document explicit Linux packaging prerequisites
Related: https://github.com/openclaw/openclaw/issues/136148
* fix(linux): restore first-run Gateway choices without the CLI
* test(linux): make native first-run CI failures reliable
Propagate native test failures through tee with explicit Bash pipefail. Query server-side AT-SPI role names under the fixed C locale because WebKitGTK 2.50.4 emits shifted numeric roles; preserve the existing semantic and visibility assertions. Clear stale accessibility errors after a successful scan.