mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
Two WSLg-specific desktop bugs.
Window controls: getTitleBarOverlayOptions() returned false on WSLg while
the window stayed titleBarStyle:'hidden', so the frameless window had no
min/max/close and the frameless maximize settled offset from the work area.
The RDP host only decorates windows that keep a native frame, so it painted
nothing. Electron's native overlay isn't the fix either: its cluster's hit
region drifts from the rendered buttons under the RAIL compositor. The
renderer now paints its own Windows-style min/max/close driven over a
hermes:window-control IPC channel, and maximizedBoundsCorrection snaps a
maximized window back onto the display work area. Extracts titleBarOverlayOptions
into a tested helper.
Dropped an openNewSessionWindow / hermes🪟openNewSession declaration
with no handler, wired maximizedBoundsCorrection into the maximize event
(it was exported and tested but never called), and passed the correct window
to windowControlState in getWindowState.
GPU crash loop: on WSLg the /dev/dxg un-blocklist forced the vGPU on
unconditionally, and on driver stacks that fail Vulkan init
(samplerYcbcrConversion unsupported) the GPU process segfaulted (exit 139)
in a loop on every launch. decideWslgGpuLaunch now consults a sticky
per-version marker: a session that crash-loops the vGPU records a fallback
so the next launch skips the un-blocklist and rides Chromium's software
path. An app update re-probes the GPU once. New wslg-gpu-fallback.ts holds
the pure, tested marker logic.
Co-authored-by: null-runner <nicholas.mariani@hotmail.it>
|
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||