[Repo Assist] fix(release): enforce minimum VC++ runtime version for onnxruntime/sherpa-onnx - #712
Conversation
…erpa-onnx Adds a file-version check for vcruntime140.dll in the release native-dependency verifier script. VCRuntime.CefSharp.140 1.0.5 ships 14.29 (VS 2019 16.11), but OnnxRuntime 1.26 and sherpa-onnx 1.13 are compiled with VS 2022 and need 14.40+. Bundling 14.29 causes sherpa-onnx-c-api to fail DLL initialisation (0x8007045A), crash-looping the tray on startup (issue #703). Changes: - Add $Script:MinVCRuntimeVersion = 14.40.0.0 constant with explanatory comment - In the app-local VC runtime check loop, verify vcruntime140.dll file version is >= 14.40.0.0 on Windows and emit a clear error pointing to issue #703 when not - Update script description to document the multi-library VC runtime dependency - Add ReleaseWorkflow_VCRuntimeMinimumVersionIsEnforced test to pin the check The version check runs only on Windows (FileVersionInfo reads Windows PE metadata). CI will catch the mismatch on the next x64/arm64 build leg. Closes #703 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: found issues before merge. Reviewed June 7, 2026, 9:15 AM ET / 13:15 UTC. Summary Reproducibility: yes. for a source-level path: current main still pins VCRuntime.CefSharp.140 1.0.5, and the PR adds a required 14.40 Windows verifier without changing that source. I did not run a Windows publish in this read-only review. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Land a self-contained release-runtime fix that sources 14.40+ app-local VC++ DLLs, keeps this verifier as a regression gate, and uses Windows publish proof before closing #703. Do we have a high-confidence way to reproduce the issue? Yes for a source-level path: current main still pins VCRuntime.CefSharp.140 1.0.5, and the PR adds a required 14.40 Windows verifier without changing that source. I did not run a Windows publish in this read-only review. Is this the best way to solve the issue? No; a verifier is the right kind of regression gate, but this PR is not the best standalone fix because it makes the existing packaging fail without providing a 14.40+ runtime source. The safer path is to pair runtime sourcing and validation in the same PR. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 4be005707f44. Label changesLabel changes:
Label justifications:
Evidence reviewedAcceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
superceded by #713 |
🤖 This PR was created by Repo Assist, an automated AI assistant.
Closes #703
Summary
Adds a minimum VC++ runtime file-version check to
Test-ReleaseNativeDependencies.ps1.VCRuntime.CefSharp.140 1.0.5shipsvcruntime140.dllversion 14.29 (VS 2019 16.11), butorg.k2fsa.sherpa.onnx 1.13andMicrosoft.ML.OnnxRuntime 1.26are compiled with VS 2022 and need ≥ 14.40. When the older app-local DLL wins the loader search over the user's system runtime,sherpa-onnx-c-apifails DLL initialisation (0x8007045A) during GC finalisation ofOfflineTts, crash-looping the tray.Root Cause
Test-ReleaseNativeDependencies.ps1verified presence and Authenticode signature of the app-local VC runtime DLLs, but never checked their file version. A stale-version DLL could ship undetected and only fail at runtime.Fix
scripts/Test-ReleaseNativeDependencies.ps1$Script:MinVCRuntimeVersion = [Version]"14.40.0.0"constant (documented with issue reference).[System.Diagnostics.FileVersionInfo]forvcruntime140.dllon Windows and emit a clear, actionable error when the version is below the minimum.The check runs only on Windows (
FileVersionInforeads Windows PE metadata); it is skipped on Linux/macOS CI legs where the DLL cannot be introspected. On the Windows x64/arm64 build legs whereRequireAppLocalVCRuntimeis used, the error message directs maintainers to updateVCRuntime.CefSharp.140to a version shipping 14.40+ DLLs.tests/OpenClaw.Tray.Tests/ReleaseSigningWorkflowTests.csReleaseWorkflow_VCRuntimeMinimumVersionIsEnforcedtest that reads the verifier script and asserts it contains the minimum version constant,FileVersionInfousage, and the issue reference — ensuring the version gate cannot be silently removed.Trade-offs
VCRuntime.CefSharp.140to a version that ships 14.40+ DLLs.Test Status
Add this agentic workflows to your repo
To install this agentic workflow, run