github Nonary/vibeshine 2.0.5-nightly.d20261102.bf8c546144f0

pre-release4 hours ago

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.

Commit log

Source: bf8c546144f0

Since the preceding successfully published nightly 2.0.2-nightly.d20261029.4b5d3bc63028: compare exact sources.

bedde6f8fe91

ci: run common lint only on manual dispatch

89c09c5cad29

ci(nightly): Align master workflows with canary release

Scheduled workflows start from master while the confirmed nightly source is canary. Align the reviewed reusable Windows and CI workflow definitions so the drift guard can qualify canary with the tested portable and MSI gates.

Keep feature source and tests on canary; retain the existing release identity, signing and publication safeguards.

Co-authored-by: Codex <noreply@openai.com>

af1a08420485

fix(installer): Keep master MSI validation contract complete

The reusable Windows workflow now runs the reviewed MSI contract test on master tag builds. Bring its matching WiX validation guard and template to master so the test checks real package behavior and validation installers cannot replace an existing installation.

Keep the normal nightly package path and canary workflow parity unchanged.

Co-authored-by: Codex <noreply@openai.com>

fea6315650ad

ci(nightly): Align scheduled controls with audited Canary packaging

Scheduled runs resolve Canary from master, so both workflow trees must agree.
Copy only the reviewed release controls and regression checks; keep application
source on its existing branch and preserve master's beta.9 producer identity.
Retain exact-source qualification, scoped signing and publication safeguards.

Co-authored-by: Codex <noreply@openai.com>

18f68113311c

fix(display): honor Remote Monitor HDR requests

833042d22f82

fix(display): protect active monitor color state on retries

2b9a90fb1219

fix(display): verify color and retire abandoned monitor launches

dc61fc42007f

fix(rtsp): retry abandoned monitor reconciliation

0ed50d135dfd

fix(display): verify effective Remote Monitor state

e9a03de0fd3c

fix(display): compose using observed shared geometry

f4e59c8d0ac0

fix(display): retry deferred mode until geometry is observed

499cb31a2ece

fix(display): preserve monitor retries after startup failure

3de53f636f02

Merge canary into Remote Monitor HDR repair

d82bc51afea1

fix(display): Confirm partial snapshots in final recovery validation

398a838502e3

fix(web-legacy): preserve Playnite fullscreen metadata on save

Carry the selected app's existing playnite-fullscreen value into the legacy
editor's replacement payload. Keep ordinary and new apps unchanged.
Cover helper preservation and actual modal hydration/save-handler wiring,
including reusing the modal for ordinary and new apps.

Adapted from Jonathan Malmaud's already merged Nonary/Vibepollo PR #690:
https://github.com/Nonary/Vibepollo/pull/690
Original head: b57fd0a1ac225ae982e94d2de03aa9f605573c0e
Original squash: 1f82fe71297c1830e92b36b42b2c3274db851651

Co-authored-by: Jonathan Malmaud <malmaud@gmail.com>

6d30696125f5

Merge pull request #371 from Nonary/dot/issue-672-hdr

fix(display): honor Remote Monitor HDR requests on Windows

a14362850dba

Merge pull request #381 from Nonary/fix/issue653-restore-stop-20261029

fix(display): Finish recovery for partial snapshots

8df4fb0c27dc

Merge pull request #382 from Nonary/fix/legacy-playnite-fullscreen-690

fix(web-legacy): preserve Playnite fullscreen metadata on save

920f28c27004

test(display): Automate production recovery wrapper regression

980b706052f3

fix(installer): Validate install folder after elevation

Existing installations can contain protected session history directories, causing the safety scan to fail before UAC. Run the full install folder checks in the elevated installer before making changes.

Generated with [Codex](https://openai.com/codex/)

Model: GPT 6.1-Terra High

e10658934fa4

fix(installer): Honor existing gamepad signer trust

Local gamepad packages can use a different signer that is already trusted by Windows. Allow verified packages with existing trust in both machine stores while preventing alternate signers from adding new trust.

Generated with [Codex](https://openai.com/codex/)

Model: GPT 6.1-Terra High

e4b18b396431

feat(input): Default to VHF-preferred automatic keyboard and mouse

Prefer a compatible VHF driver for Windows keyboard and mouse input while retaining explicit SendInput and safe fallback when the driver is unavailable. Preserve press/release ownership, native repeat, wheel detents, and absolute drag ordering to avoid stuck or duplicated input.

Keep local driver packaging isolated from pinned release assets and cover routing, recovery, and Windows key mapping with regression checks.

Generated with [Codex](https://openai.com/codex/)

Model: GPT 6.1-Sol X-High

f0fd3b50d566

build(driver): Pin the released VHF keyboard and mouse package

Use the verified Nonary beta.10 driver release so production installers include VHF keyboard and mouse support. Align the archive hash, source revision, runtime installer checks, and audited CI identity with driver 0.1.0.92.

Generated with [Codex](https://openai.com/codex/)

Model: GPT 6.1-Sol X-High

620b4779a655

Merge pull request #383 from Nonary/test/issue653-recovery-wrapper-automation

test(display): Automate production recovery wrapper regression

3da015ac90b8

test(input): Keep feedback fixtures compatible with VHF input

Model keyboard and mouse ownership when extracting production controller retirement, and cover keeping its shared handle alive. Make the same queue checks runnable on Windows while retaining Linux sanitizer coverage.

Generated with [Codex](https://openai.com/codex/)

Model: GPT 6.1-Sol X-High

509ce22ec0f2

fix(amf): keep the driver's slice count when it refuses the client's (#375)

Native AMF set the client's H.264 and HEVC slices per frame through
set_verified_int64, so a driver that refused the count, or applied another
one, failed encoder setup and the stream never started. Moonlight for
Nintendo Switch asks for four slices per frame.

The count is now a request: config_policy::request_client_slices sends it
when the client asks for more than one slice, and the encoder logs a warning
with the requested and the driver's count and keeps streaming with the
driver's own. An accepted count behaves as before. AV1 tiles are unchanged.

test_native_amf_review.cpp covers the policy (no request at one slice, a
refused, rounded or unreadable count is reported, an accepted one is
applied), and test_amf_client_slices.py pins that the encoder uses it and
no longer fails setup on a refused count.

Signed-off-by: Ramazan Kara <github@r-kara.de>

0b969b2867bf

ci(nightly): dispatch Canary workflow from master (#380)

* ci(nightly): align master display release lock handling

* ci(nightly): dispatch Canary workflow from master

* fix(windows): include Winsock before SDK headers

d6690899e896

fix(audio): Keep continuous loopback audio on one output clock

Use WASAPI packet timestamps and elapsed time to pace silence without
replaying delayed capture packets. Bound buffered time and stall recovery,
correct device-period units, and retain paced silence on uncertain timestamps.
Cover the production buffer and capture adapter in release-mode tests.

Co-authored-by: Codex <noreply@openai.com>

4994cf9f232e

fix(packaging): Stage required inputs for clean component builds

Run TrueHDR staging in the application component so component installs cannot
skip its downloader. Create the Flatpak build directory before copying generated
dependencies, and exercise complete and component installs with failed inputs.

Co-authored-by: Codex <noreply@openai.com>

322e9c0a5263

fix(appimage): Keep the portable launcher unprivileged

Direct native installation and removal to the system package instead of
installing obsolete user units or granting capabilities to the public binary.
Preserve quoted launch arguments and isolate portable state with XDG_CONFIG_HOME.
Exercise legacy options and portable execution without touching host services.

Co-authored-by: Codex <noreply@openai.com>

55d4a6061a23

fix(ui): Keep Linux display overrides visible in V1

Display automation could hide the legacy override editor on Linux, leaving no way to configure resolution substitutions in the guided setup. Keep the editor visible, explain when automation is disabled, and select the rule list that matches the active display policy.

Co-authored-by: Codex <noreply@openai.com>

6ed40ad295d2

fix(windows): Keep display-helper pipe authority in the host

Windows cannot inherit handles across sessions. Keep the preclaimed pipe server in the host and let the interactive helper connect with data-only access granted to its actual token SID. Authenticate both process identities before protocol traffic, preserve endpoint generations and restore retries, and restrict helper process and thread access independently of inheritance.

Exercise the production accept loop and endpoint parser with wrong peers, cancellation, deadlines, and endpoint rotation. Windows service-session and pipe ACL runtime qualification remain required.

Co-authored-by: Codex <noreply@openai.com>

f48fcc56312e

fix(installer): Validate native MSI roots before privileged actions

Direct MSI upgrades must validate existing product roots as well as the
incoming directory before executing installed helpers. Embed a native guard
that rejects writable or redirected trees and resolves legacy roots through
the exact installed product's directory component.

Block early registry-command elevation and reject per-user replacement
registrations before recovery or uninstall dispatch. Preserve validated
machine replacements through the bootstrapper.

Co-authored-by: Codex <noreply@openai.com>

a72451e65e54

Merge concurrent Canary Linux editor fix

Preserve the published Canary update alongside the reviewed audio, packaging, IPC and installer repairs for the paired nightly migration.

Co-authored-by: Codex <noreply@openai.com>

db670e942f21

fix(homebrew): Use the installed product executable on Linux

Linux builds expose the fork product name, while the Homebrew macOS target remains sunshine. Use the platform-specific installed name consistently for formula tests, service launch and signing.

Co-authored-by: Codex <noreply@openai.com>

71b054d03505

test: Keep input and packaging fixtures current

Exercise the current VHF and pipe access adapters without changing the coordinate and gamepad regressions they protect. Pin the SteamOS fixture version so exported source checks reach the packaging policy rather than failing version discovery.

Co-authored-by: Codex <noreply@openai.com>

02831ae5ef05

test(rtsp): Restore terminal composition fixture

Compose current monitor retirement and reconciliation paths so Canary’s terminal lifecycle regression can compile and keep exercising production behavior. Cover published and abandoned monitor handling at the controlled transport boundary.

Co-authored-by: Codex <noreply@openai.com>

3b307f302f90

ci(release): Reconcile Canary with primary release controls

Preserve the complete Canary history and primary-only safeguards while preparing the 2.0.2 release. Keep scheduled nightly dispatch on the default branch and execute the qualified build on Canary with separate concurrency groups.

Co-authored-by: Codex <noreply@openai.com>

7150c4fa0be7

docs(release): Summarize Vibeshine 2.0.2 changes

Describe the user-facing changes and fixes since 2.0.1 so the release artifacts have notes for the exact source tag. Qualify optional features by their client, driver, and runtime requirements.

Co-authored-by: Codex <noreply@openai.com>

c1fb49871ff9

test(macos): Keep FFmpeg dependency checks offline

Seed the content-addressed cache with a synthetic archive and a matching test-only pin so framework checks do not require a Darwin download. Verify that a tampered cache still fails the production checksum check.

Co-authored-by: Codex <noreply@openai.com>

a59ef4edc26d

fix(windows): Restore display-helper pipe access

Grant the read-attributes permission Windows requires for helper pipe
connections without granting pipe creation or ACL control. Keep the grant
and client request on one tested mask, matching the live correction
reported in PR #389 for issue #387.

Co-authored-by: Codex <noreply@openai.com>

6e37a6bd51cd

fix(windows): Restore display-helper pipe access

Grant the read-attributes permission Windows requires for helper pipe
connections without granting pipe creation or ACL control. Keep the grant
and client request on one tested mask, matching the live correction
reported in PR #389 for issue #387.

Co-authored-by: Codex <noreply@openai.com>

4366299e2d48

fix(release): Include the previous stable patch notes

Compose the preceding stable patch line automatically so users can see recent changes without duplicating release-note files.

Co-authored-by: Codex <noreply@openai.com>

4be23215db66

docs(release): Add 2.0.3 stable notes

Describe the Windows virtual display access fix for the stable release.

Co-authored-by: Codex <noreply@openai.com>

8d45d0e76dc1

fix(installer): validate volume root ACLs and report guard failures

61857bd79f8c

fix(installer): Validate replacements before removing the host

The bootstrapper could remove a working installation before the incoming
MSI rejected its destination. Run the package's native preview before any
pre-uninstall, keep path rules aligned, and stop without removing the host
when validation fails. Cover failures and the actual packaged MSI preview.

Co-authored-by: Codex <noreply@openai.com>

9c4fd9536567

merge(canary): Integrate installer upgrade recovery for 2.0.4

470d9b9ec021

docs(release): Add 2.0.4 installer hotfix notes

Document the Windows drive-root permission fix and the pre-removal
validation that preserves the existing host when a replacement is rejected.

Co-authored-by: Codex <noreply@openai.com>

3e6915702548

fix(installer): Warn on uncertain checks and explain blocking failures

Treat incomplete compatibility inspections as warnings while retaining
blocks for observed unsafe paths, permissions, and payloads. Show warnings
on successful completion and include the affected path, failing check, and
Windows error in the UI and logs instead of generic troubleshooting advice.

Co-authored-by: Codex <noreply@openai.com>

bf8c546144f0

fix(installer): Unwrap strings in packaged MSI validation

PowerShell can retain PSObject wrappers in an untyped argument array,
so reflection rejected the test inputs before the native preview ran.
Pass a typed string array and exercise wrapped inputs before compiling.

Co-authored-by: Codex <noreply@openai.com>

Don't miss a new vibeshine release

NewReleases is sending notifications on new releases.