Repository navigation
Wisp 2.7: clip recording, game audio, display restart and update fixes - #148
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
The release commits for Wisp 2.7 (version 2.7.0, shown as 2.7) on top of main 1560731. The owner chose to publish this as 2.7, a reliability update, instead of 2.6.14. There are no code changes here; the fixes were merged separately:
audio_endpoint_buffer_limitincident on Windows build 22631).WM_DWMCOMPOSITIONCHANGEDfailures (0xD0000701), retry composition and report one renderer-host incident instead of closing Wisp.scheduler_lateand discarding the rolling buffer; spool writes moved off the media thread.read-failed(timeout) and gets a 10 s bound instead of being cancelled at 150 ms per read.system-stoppedinstead ofshutdown-incomplete.rate-limited, and report a network outage once instead of at every check.This commit changes the same nine files as the 2.6.13 release (#137):
Wisp.App.csproj(Version, FileVersion, AssemblyVersion),Wisp.Updater.csproj,installer/Wisp.iss,app.manifestandLICENSES/library-sources-distribution.json(version and file name; the source archive is still the 2.6.8 one, so no new library-sources prerelease is needed).## 2.7.0 - 2026-10-21, with entries rewritten for players, plus four new entries for Report a slow crash-event lookup as a timeout and give it time to finish #150–Read the latest release tag from the release page before the API #155 (the Tools PRs added no Unreleased lines).ReleaseNotesCatalog.cs: new current2.7entry (label RELIABILITY UPDATE, with Clips, Reliability, Updates and Diagnostics groups); 2.6.13 is no longer marked current.docs/releases/Wisp-2.7.0-release-notes.md, headed# Wisp 2.7like 2.5 and 2.6.Why
system-stoppedandrate-limited.Checked
Final release gate at c90b6b4 on this PC, with the PC idle, a clean clone at exactly that commit, pinned SDK 8.0.425, VS 2022 Build Tools and local Inno Setup 6.7.3:
Test-RepositoryPolicy.ps1: passed, including the 2.7.0 release-content check.installer/Build-Installer.ps1: passed. This covers 157 Python tool tests (2 skipped), the locked restore with NuGet audit, full-solution format verify, the Release build, the critical behaviour tests, the UiReview build, publish, identity checks, the updater guard smoke test, Inno packaging and installer runtime validation. It producedWisp-Setup-2.7.0.exe, ProductVersion 2.7.0.0, SHA-2560D9817CF8C0B4AA55DED892F3D175D48ECD5491E355AECB234BB032B1859EB8C(a local candidate; CI rebuilds the published bundle from the merge commit).dotnet test Wisp.slnfailed 1 of 6000 App tests:TachRendererDiagnosticsTests.EnabledUncontendedProducerHasNoPerEventAllocationsmeasured 6888 bytes allocated on its producer thread, against 0. That is one of the four allocation-sensitive tests the nightly has run in isolation since 2.6.9 (Test-AppBehavior.ps1 -Full), and no tach code changed in this release. The repo's own full procedure,Test-AppBehavior.ps1 -Full, passed on the same build: Core 776, Telemetry 96, App 5996, Update 184, Updater 75, plus each of the four isolated tests alone, 6000 App tests in all. The gate script now uses that procedure.contractFailures0.Wisp.Recorder.exe --self-teston the linked binary (same SHA-256 as the published copy): 100 policy contracts, 45 diagnostic, 80 thumbnail, 13 borderless, 21 screen.Headless recorder fixture against the real NVENC session (release recorder sources, generated 2160p60 input, self-process audio). Every clip was checked with ffprobe/ffmpeg 9.0.1:
Owner's in-game tests: 2.6.14 RC 1 recorded without restarting but its saved lossless clip would not play; #149 fixed that. The owner then chose to publish without testing a further private installer ("i dont need the 2.7 installer just publish and tag when ready").
CI on this PR at c90b6b4: Build and test and CodeQL passed.
Not verified
audio_endpoint_buffer_limitincidents and a first clip from the affected player.