github Nonary/Vibepollo 2.2.0
Vibepollo 2.2.0 (Nightly)

pre-releaseone hour ago

This is a nightly release of Vibepollo 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: 4144ad2969a3

Since the preceding successfully published nightly 2.0.2-nightly.d20261106.r.1.37d6742f42f4: compare exact sources.

2a7ae885764b

revert(installer): Restore the 2.0.1 stable install flow

Repeated installer failures need a longer Canary test period. Restore the 2.0.1 Windows bootstrapper and MSI actions for 2.0.6, removing the newer guard and its test/build wiring from master. Keep application and driver updates, migration data preservation, and nightly security work intact.

Use Vibepollo's own 2.0.1 installer baseline to preserve Apollo migration, service and reinstall behavior; retain hotkey cleanup and downstream tests.

Co-authored-by: Codex <noreply@openai.com>
(cherry picked from commit 9c02f262a799acd2733c203cbb7c4e59a55dd8fc)
(cherry picked from commit 5e6ed8594184212d429bb093d7fd47904c9a6fa6)

d8a2874eccf9

fix(nightly): anchor version to reconciled published stable

Derive the nightly base from the highest published stable release and require its commit in the source before assigning a newer upgrade version. Recheck the anchor at publication and rebuild unchanged source if the stable base advances.

Cover release filtering, version ordering, divergent branches and publication races.

(cherry picked from commit 2e7efbc4818f53fba56c925cf7cd0979b2e575e3)

fe90269af425

fix(nightly): preserve existing source eligibility checks

Keep unchanged-source and migration checks unchanged while anchoring the version to the latest published stable. Align the two hosts' version policy.

(cherry picked from commit 2d072b75b58ea4530ad3e2aa3705d588ed256d48)

51ee91994c81

fix(release): persist build channel and protect numeric packages

(cherry picked from commit fcde508c8997db17304ed68db7aedc7da856e765)

88bcbe971822

feat(release): allocate immutable numeric versions

(cherry picked from commit 270fd4f2e2d8d0de53e8fdcd905ca263f3fb5f8a)

2312d3dcb928

fix(release): support local-only nightly validation tags

(cherry picked from commit 65294174e3678c6ba50beb612b181b1f6d7c0486)

9bf302683b37

fix(release): verify validation tags and dispatched artifacts

(cherry picked from commit f04d45da138347c8bee86ad7257fbc1563ff944d)

a7a4152e3c38

fix(release): close numeric publication gaps

(cherry picked from commit b623dd24d6ac7fa260276a4fa26e12750dfcf888)

0a19a77dec9b

fix(release): preserve notes framing and draft identity

(cherry picked from commit 195d758646265d6109742e79684a76f9bd53f75d)

3c02de3914bf

test(release): align Windows validation workflow contracts

(cherry picked from commit 12c0eb1fa7b0aec746bf5bd1d0fba94a4975c869)

c161b668af71

fix(validation): resolve numeric nightly stable anchor

(cherry picked from commit 80251fe8b5f07508902a0769a7535e94c379081b)

01639647a2eb

test(validation): preserve legacy qualification fallback

(cherry picked from commit ba47380d06bd4bda312c4e51f8c247404c082893)

b69ac184f6c1

test(validation): cover numeric and legacy nightly qualification

(cherry picked from commit 4a3d938e8caba1e8184842937d9b7e52bf9a8751)

cb0ade410060

fix(gamepad): Stop DualSense rumble when emulation is disabled (#708)

(cherry picked from commit 7a5bb9cabc02b8baf177ad135489b35a8da1ce7e)

2f3611b62a39

fix(audio): Honor Steam capture endpoint mute across buffered audio

(cherry picked from commit 03dbc3f1543714fa7b33573d3e994e1d3017cadd)

66101ba04b61

fix(display): Move a virtual display out of a Duplicate group before applying

Windows can activate the virtual display at the same origin as a Duplicate
pair of physical monitors. libdisplaydevice groups displays by origin and
rejects any group larger than two, including the layout it starts from, so
every APPLY failed and capture waited for a display that never appeared.

Before applying, move the configured display to the right edge of the
desktop when it is the only display on its adapter in an oversized group.
The user's own displays never move. Both helper engines do this.

Refs: Nonary/Vibepollo#702

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 6f4549ff386f8324b75b8e2c6a886129a31eaa19)

58b8330ad589

feat(linux): Run commands by their elevated setting, not an approval list

Linux machine-service hosts required `sudo vibeshine authorize-commands`
after every command change, and the approval list missed sources such as
global prep commands, so saved commands failed with exit 126. Windows has
no such step: the Web UI login is the trust boundary and the elevated flag
alone decides privilege.

Match that on Linux:
- The session broker drops the /etc/vibeshine/session-commands check.
  Requests now carry <working-directory> <command>; an empty directory
  still resolves from the command's executable.
- New app-elevated verb: "Run elevated" commands run as root in a
  transient system unit (no app supervisor, which drops all capabilities),
  with SUDO_USER/SUDO_UID/SUDO_GID set. Other commands still run as the
  desktop user through the user manager.
- Upgrades delete the retired allowlist; authorize-commands only prints
  that approval is no longer needed.
- Both Web UIs show the elevated toggle for Linux hosts.
- session-exec logs failed broker requests to the journal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 260d3e59bac571755add2eb509d16e42331ab664)

e9fcc6117725

fix(nightly): Number nightlies above every published release

The numeric allocator refused to run unless the source contained the latest
stable, the highest published version and the previous release source. Canary
does not contain stable 2.0.6, so tonight's nightly would have failed instead
of numbering above it, and the build-time CMake gate had the same dependency.

Take the base from the highest version any published release carries (stable,
prerelease or nightly, with legacy 2.0.5-nightly.* counting as 2.0.5) and keep
the feat/fix rules unchanged. Ancestry now only produces a warning, since the
feat/fix count already excludes commits from every published release source.
A number claimed by another tag, such as a reservation left by a failed build,
is skipped by taking the next patch instead of failing. A retry reuses its own
reservation only while it still outranks everything published, and the
pre-publication re-resolve still stops a nightly that a newer release overtook.

The stable anchor is now informational: publication, Windows versioninfo and
validate-windows no longer fail when the source lacks the latest stable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 8acd02a2f490de39d4e6322091b2c6ebc559ab55)

09f7f22d820b

test(nightly): Keep allocator test warnings out of run annotations

The allocator prints ::warning:: lines, and the nightly workflow runs its tests
in the same job as the real resolve. Fixture warnings such as "canary does not
contain stable 2.0.6" surfaced as run annotations. Capture them in the tests
and assert on them instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit a67ec4ba39492260038e8883febc8d9207fff7be)

82c4bcf652e0

fix(nightly): Verify the reservation tag without MSYS2 brace expansion

Windows CI generates versioninfo with MSYS2 git launched from native
cmake.exe, and the MSYS2 runtime brace-expands unquoted arguments.
"2.2.0^{commit}" reached git as "2.2.0^commit", so the reservation check
always failed and every numeric nightly build stopped with "requires its
annotated reservation tag to peel exactly to HEAD". Legacy -nightly builds
never used that syntax, which is why they kept working.

Peel the tag with "rev-list -n 1 refs/tags/<version>" instead, and make the
versioninfo test reject ^{...} peel syntax in the generator.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit d61083430b8d160ee1fa85870dc109863e048d89)

a94cd7d48855

fix(audio): Mark the endpoint mute callback final for the Windows build

The Windows MinGW build treats -Wdelete-non-virtual-dtor as an error. The COM
callback's Release() does "delete this" on a polymorphic type with a
non-virtual destructor, so the Windows build failed in audio.cpp. Mark the
class final so the delete cannot skip a derived destructor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 4de692efe2770c2a9a8f3310aed14456a707dbbd)

4144ad2969a3

fix(migration): Preserve Vibepollo nightly and launch contracts

Adapt numeric release allocation, tag annotations and CI dispatch to Vibepollo while retaining independent Canary eligibility and exact dispatched-source checks. Keep legacy nightly update compatibility and restore downstream shutdown/profile regressions with coverage for launch metadata and elevated arity.

Reconcile the installer directly to the downstream 2.0.6 result instead of replaying superseded scoped-check and repair history. Skip source merge commits; their retained release behavior is represented by the individual picks and the reconciled installer.

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

Don't miss a new Vibepollo release

NewReleases is sending notifications on new releases.