This is a nightly release of Vibeshine and contains several bug fixes and may contain new features. Check the commit log for more information.
Windows installer · Linux (Arch x86_64)
Nightly Windows installers are unsigned and include self-signed gamepad components. They may cause false-positive antivirus alerts.
Source: a5b56be1d174
Since the preceding successfully published nightly Commit log
2.0.2-daily.d20261016.2: compare exact sources.
fix(linux): retain native KWin 6.8 scanout buffers
Use the reconciled display bridge so CPU scanout keeps the virtual KMS fd
instead of a render node that rejects CREATE_DUMB. Preserve eight outputs,
HDR, seat GPUs and connector mapping alongside the upstream shutdown fix.
All 217 dependency tests and a Linux 7.2.9 module build pass; the affected
KWin 6.8 login transition still requires runtime validation.
Addresses Nonary/Vibepollo#623
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
fix(process): cancel undo waits when host shutdown starts
A restart during an active Steam stream could wait at least 15 seconds for
an undo command while the shutdown watchdog trapped after 10 seconds.
Keep launching cleanup commands, but detach running undo commands when
shutdown is requested so remaining teardown can proceed. Preserve normal
app-stop waits and cover cancellation with the production mailbox types.
Addresses Nonary/vibeshine#319
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High
fix(input): ship Steam-compatible DualSense firmware
Virtual DualSense replies advertised a revision below Steam's update gate.
Pin the verified beta.8 archive and matching VHF/USB-IP/Linux sources so
new sessions report 0x0630. Align installer, CI and source locks, preserve
protocol 2 and signing checks, and cover the actual wire replies.
Addresses Nonary/Vibepollo#624
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High
fix(rtss): select Reflex using the stream's adapter
An unused AMD GPU could veto Reflex on NVIDIA streams because automatic
sync selection inspected the entire GPU inventory. Resolve the selected
capture/render adapter instead, preserving explicit RTSS overrides,
Smooth Motion pacing, provider fallback and stream-stop restoration.
Refs: Nonary/Vibepollo#508
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
fix(wgc): keep capture running when GPU priority boosts fail
REALTIME GPU scheduling is denied for some filtered interactive-user tokens,
which aborted the WGC helper before capture started. Fall back to HIGH and
continue at the existing priority if neither boost succeeds, retaining logs.
Cover successful and denied priority requests and required startup failures
with an executable production-code replay on Linux.
Refs: https://github.com/Nonary/Vibepollo/issues/563
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
fix(capture): share the active source between mirror clients
Normal game clients lost their shared capture worker when remote capture
was isolated, opening competing DXGI duplications and breaking WGC fallback.
Retain one producer until its final mirror disconnects while preserving
private Remote Monitor and Input sources; reject overflowing join queues.
Addresses Nonary/vibeshine#296
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
(cherry picked from commit baee6da6350ae33218fdae17f2d213781cf9b050)
fix(display): Honor configured golden policy during boot recovery
Boot recovery started with a false preference and could replace a duplicated
physical desktop with a dummy-only session snapshot. Persist the resolved
host preference and load it before either boot engine starts, preserving
explicit false, custom state paths, and backup recovery.
Addresses Nonary/Vibepollo#579
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
(cherry picked from commit 032283bc3340b6237f66e1e652226932e14d9e87)
(cherry picked from commit d7468f592d6c06e7471d01ce170216e15288c005)
fix(pairing): Preserve named clients during legacy state import
Older state writers kept legacy certificates after importing named clients.
Load those snapshots without importing a certificate twice, retaining the
named UUID, revocation and client settings. Keep ambiguous named records
fail-closed and explain primary/recovery selection failures.
Addresses Nonary/vibeshine#308
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High Standard
fix(input): route native touch to the captured KWin output
KWin can associate synthetic touch with an unrelated or disabled output.
Recover the reviewed candidate and map each client's node in its session.
Check enabled output lifetime and KWin identity, retry transient failures,
and cancel queued touch on disconnect. Absolute mouse behavior is unchanged.
Recovered-from: 99dbf30f58970cd1c70c35ccae7e453bd73a4dbe
Addresses Nonary/Vibepollo#515
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High Standard
(cherry picked from commit 6d15665f92923b95f3e818a7500a4385d0e80d93)
fix(display): retain awakened monitors through reconnect APPLY
The live topology merge preserves returned physical monitors, but a cached
SettingsManager transaction can still disable them on nonexclusive reconnect.
Refresh that cache when the physical baseline grows, preserving active peers
and durable restore snapshots. Keep exclusive and settings-only paths intact.
Addresses Nonary/Vibepollo#451
Recovers remaining behavior from 7af11b0c3931b26158c51cc9959c86a33e760ea0.
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High Standard
fix(display): restore inactive same-ID physical monitor returns
An extended virtual session can leave an active baseline monitor inactive
when it disappears and returns. Admit one observed same-ID repair while
retaining the virtual target, live peers and saved snapshot ownership.
Keep observed user-disabled outputs passive through later power cycles and
reject incoherent enumeration as return evidence.
Addresses Nonary/Vibepollo#370
Depends-on: Nonary/Vibepollo#451 (0bdc83c53302674137d67707d129a5aee5d6de5f)
Refreshed-from: e45321e18b210d9b36245f46f362343adda2965a
Recovered-from: 1a00d63cef3144fe3b096da488732e927f20a2fa
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High Standard
fix(display): Preserve the physical primary during boot recovery
Boot recovery could replay a stale session snapshot and disable a live
physical primary. Preserve a stable widened desktop only while every saved
baseline display remains active; otherwise keep exact recovery behavior.
Reject incomplete captures without narrowing restore history, and retain
Refs: Nonary/vibeshine#285
Recovered-from: e3a1b17cbf2c6605e58fa163ab1155bc869dd323
Recovered-from: 889175d9b5aeea67a2fbf987b0be21c57e880bd5
Recovered-from: a4d72cdd3f8e6cced3b7db18ede3823e5d61a646
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
fix(windows): finalize NVIDIA cleanup before CRT teardown
Finalize NVIDIA preferences while logging is alive, including early host exits.
Contain cleanup exceptions and make the terminal operation idempotent so the
static destructor cannot restore or log after that boundary. Preserve failed
undo journals for recovery by a later startup instead of retrying during CRT exit.
Cover failure/throw, durable retry and all main-exit paths with negative controls.
Addresses the dump-proven unsafe CRT restoration path in Nonary/Vibepollo#570;
the original C++ exception remains unidentified.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1-sol X-High Standard
(cherry picked from commit ec18541570baca303765e26ce5c9eb08cbfd2cd9)
fix(display): Preserve the primary during legacy boot recovery
Legacy boot recovery could replay a stale narrowed session baseline over a
healthy physical desktop after #285 protected only v2. Preserve the stable
physical desktop at boot while keeping Golden-first and ordinary/exclusive
session restores exact. Confirm without replaying the live capture or
rotating Current/Previous history, and retry when the capture drifts.
Refs: Nonary/vibeshine#285
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
fix(display): Bind legacy boot confirmation to the preserved desktop
A different stable desktop could replace the physical preservation candidate
as the quiet period began and make boot recovery report success. Bind quiet
reads to the expected snapshot and recheck physical eligibility, current
policy and cancellation before success. Leave changed desktops pending
without applying the captured topology or rotating snapshot history.
Refs: Nonary/vibeshine#285
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
fix(capture): honor live pacing and pending mirror admission
Shared capture kept the first client's pace after faster mirrors joined.
Aggregate live effective rates while retaining Windows auto/strict rules,
and wait for pending consumers before initial setup or retry can exit.
Recreate one producer through existing serialized teardown when demand
changes, preserving each encoder's negotiated settings.
Refs: Nonary/vibeshine#296; UltraCode audit U005
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
(cherry picked from commit be4b62f5ee18e485aaf870fd817edebfd3933f9f)
fix(steam): honor explicit Proton compatibility selections
Imported games with Linux entries ignored Steam's explicit Proton choice.
Resolve per-app custom and official tools before selecting the launch payload,
preserve native defaults, and decline unsupported or ambiguous direct launches.
Keep stale prefix history from selecting an old tool across both discovery paths.
Validation: 95 tests pass; the exact-base control exposes 11 regressions.
Refs: Nonary/vibeshine#294
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
(cherry picked from commit 69115543055e6b53397934abc9b9734c39540786)
fix(pairing): Refuse stale recovery for rejected primary state
A readable snapshot can contain newer revocations, credentials and pairings
despite ambiguous certificates. Refuse backup replacement after semantic
rejection and report conflicting record indices without credential data.
Retain fail-closed startup and recovery for missing or malformed JSON.
Adjacent hardening for Nonary/vibeshine#298; duplicate named identities
still require administrator reconciliation.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
(cherry picked from commit f08503f2336463bcac715ea9f7635d2fb1635d2a)
fix(windows): retain stream timer and priority ownership
Stream teardown set another native timer resolution and forced NORMAL priority.
Release successful timer requests, retain failed cleanup for retry, and restore
only the prior priority class that streaming replaced. Count scheduling owners
without holding the scheduling lock across other platform callbacks.
Add source-derived multi-owner and fault-path scenarios; execution is blocked
by the missing local C++ compiler. Physical mouse polling remains unconfirmed.
Related: Nonary/Vibepollo#385
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
(cherry picked from commit 6b68bd5fc0000f1a10eadad2be611e45c10ff102)
test(windows): allow compiler arguments in scheduling replay
Accept explicit compiler arguments so the source replay can use existing local
headers and runtime libraries without changing the host or requiring installation.
Current production callbacks pass 31/31 modeled scenarios; both exact Shine and
Apollo baselines pass 3/31 under the same fixture at nice +15, one job.
These checks exercise fake Windows boundaries and do not measure physical mice.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
(cherry picked from commit a042a113d7e55faf0c353610eb62fafef4f9bf30)
fix(display): restore saved HDR after layout changes
Snapshot restore writes HDR before later layout mode-sets, and the matching
rotation fast path accepts success without checking the resulting state.
Restore known saved HDR last, verify readback, and recheck after reassertion.
Preserve topology gating and saved recovery state when restoration fails.
Cover both adapters and failure retention with deterministic regression tests.
Related: Nonary/Vibepollo#474; the original Steam color symptom is unverified.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
(cherry picked from commit ba599bdcbcb4b8f84a94e0e151aac2c169c2bbdc)
fix(wgc): propagate capture cursor visibility to the helper
WGC accepted the cursor policy without forwarding startup or live changes.
Retain inclusion per capture generation and apply it on the helper owner thread.
Keep the config wire layout stable, reinitialize after failed control writes,
and preserve capture when the optional WinRT cursor API is unavailable.
This repairs the inclusion contract; issue #271's mouse flicker remains unproved.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1-sol X-High Standard
(cherry picked from commit 80f63ee21619ccb5f8cda9adfddd5813856d05bd)
fix(wgc): preserve control records across byte-pipe reads
WGC callbacks could discard split or coalesced cursor and activity updates
after the host cached a successful write. Reassemble the existing config
and fixed-size updates per connection without changing the wire format.
Exercise the actual raw callback path, including partial tails and reconnects,
so the regression fixture cannot silently add framing absent from production.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1-sol X-High Standard
(cherry picked from commit 9f7f345e11536e7d97f70d084c173e7d2f8de1f9)
fix(wgc): admit frames by compositor source cadence
Callback jitter could discard valid compositor frames at the source ceiling.
Gate on native source timestamps while retaining bounded arrival fallback
for unusable timestamps and existing cap resets. The production callback
replay passes 794 checks; exact-base 60 FPS jitter admits 31/60 versus 60/60.
NVIDIA overlay acceptance remains unverified.
Related: https://github.com/Nonary/Vibepollo/issues/512
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High Standard
(cherry picked from commit c75479f084efd357b75296581f0c886a8eb08b6e)
fix(installer): preserve required reboot before further driver repair
An old active display driver can pass health checks while Windows has deferred
replacement changes until reboot. Keep that requirement sticky and stop later
PnP, UMDF and restaging work while preserving service restoration and MSI warnings.
Retain non-reboot recovery and explicit uninstall cleanup, with isolated mocked
PowerShell control-flow fixtures. The original issue #396 freeze remains unconfirmed.
Related: https://github.com/Nonary/Vibepollo/issues/396
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1-sol X-High Standard
(cherry picked from commit 8c95e26a6f161f5ce22b23a4d69308ff28709143)
chore(capture): Trace restart reasons and device notifications
Periodic #301 outages persist without identifying the restart condition.
Record the first monitor latch, capture/backend return and host pipe teardown;
bound device-event diagnostics to model codes and temporary identities.
Preserve recovery decisions and event routing, with production-branch fixtures
covering redaction, malformed payloads, bursts and existing monitor behavior.
Keep the fixture cursor boundary aligned with current master.
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High
(cherry picked from commit fd4a82dcfbce491886dfb7ade7a1759884d9e0b8)
fix(display): preserve selected outputs during headless fallback
The physical-only launch fallback replaced selected VDDs after validation.
Preserve active targets on the configured adapter and outputs awaiting
helper activation, treating failed enumeration as unknown. Retain headless
fallback for unavailable targets and explicit virtual-display modes.
Cover both drivers with focused launch and enumeration replays.
Refs: Nonary/vibeshine#299
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High (Standard)
(cherry picked from commit a356cfb1c0ac48710b1e23f5b6f499218528a213)
(cherry picked from commit 85193097afdecf9e1c1580ad1c3169113004a059)
fix(display): retain fallback when selected outputs stay inactive
An inactive selected output suppressed headless fallback even when the
effective VerifyOnly or disabled policy could not activate it. Preserve
that target only for activating global/session preparation options.
Keep active/unknown selection behavior and cover production request
mapping, topology and override precedence in the replay.
Refs: Nonary/vibeshine#299
Generated with [Codex](https://openai.com/codex/)
Model: GPT-6.1 Sol X-High (Standard)
(cherry picked from commit 524710249ea3b8ef2b41950a6bbd7bafc5a1c117)
(cherry picked from commit f8f8a9e11263053e401247f4c65cfe5dafa6136f)
fix(input): ship the VHF startup lifecycle correction
The pinned producer rejected legal callbacks while starting controllers.
Pin verified beta.9 source and its immutable Windows archive so packaged
hosts receive the lifecycle fix. Preserve protocol 2, signing checks and
driver upgrade policy; reWASD runtime compatibility remains unverified.
Addresses Nonary/Vibepollo#458
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High
fix(tests): build restore policy fixture with Boost targets
The Arch package's direct fixture compiler missed fetched Boost headers.
Build the unchanged fixture through CMake's PropertyTree usage requirements
and run that binary from CTest with fresh storage. Keep Release assertions
and the existing production-policy and persistence checks enabled.
Refs: Nonary/Vibepollo#579
Generated with [Codex](https://openai.com/codex/)
Model: GPT 6.1-Sol X-High