fix(update): embed asInvoker manifest in updater#338
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR adds Windows manifest support to the Rust updater binary by introducing an executable manifest with minimal privileges, a Rust build script to embed the manifest during compilation, and integration tests to validate the configuration. ChangesWindows Manifest Embedding for Rust Updater
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Check ReportSummary
Test Results
Code Quality
Test Artifacts
LinksThis report is auto-generated by GitHub Actions |
Summary
asInvokermanifest into the Rust updater binaryWhy
Windows can treat executables with names like
*_updater.exeas installers when they do not carry an explicit manifest. The existing 570 client launches the downloaded updater withCreateProcess(UseShellExecute=false), so Windows returns Win32Exception 740 instead of showing UAC. EmbeddingasInvokerin the updater itself prevents the heuristic and fixes existing clients once they download the updated updater artifact.Validation
cargo build --manifest-path external/moder-update/src/updater/Cargo.toml --releaserequestedExecutionLevel level="asInvoker"cargo test --manifest-path external/moder-update/src/updater/Cargo.tomldotnet test TelegramSearchBot.Test/TelegramSearchBot.Test.csproj --filter "FullyQualifiedName~ModerUpdateIntegrationTests|FullyQualifiedName~SelfUpdateBootstrapTests"Summary by CodeRabbit
Tests
Chores