File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -35,6 +35,8 @@ coverage*.info
3535* .coverage
3636* .coveragexml
3737* .trx
38+ FINAL_RELEASE_PLAN.md
39+ RELEASE_PLAN.md
3840
3941# .NET / NuGet
4042* .deps.json
Original file line number Diff line number Diff line change @@ -283,9 +283,7 @@ private async Task<int> RunSmokeTestAsync(ILogger logger)
283283 logger . LogInformation ( "Starting ThreadPilot smoke test" ) ;
284284
285285 var settingsService = this . ServiceProvider . GetRequiredService < IApplicationSettingsService > ( ) ;
286- await settingsService . LoadSettingsAsync ( ) ;
287-
288- _ = this . ServiceProvider . GetRequiredService < MainWindow > ( ) ;
286+ await settingsService . LoadSettingsAsync ( ) . ConfigureAwait ( false ) ;
289287 _ = this . ServiceProvider . GetRequiredService < ProcessViewModel > ( ) ;
290288 _ = this . ServiceProvider . GetRequiredService < PowerPlanViewModel > ( ) ;
291289
Original file line number Diff line number Diff line change @@ -40,6 +40,7 @@ SolidCompression=yes
4040WizardStyle = {#MyWizardStyle}
4141ArchitecturesInstallIn64BitMode = x64compatible
4242ArchitecturesAllowed = x64compatible
43+ MinVersion = 10.0 .22000
4344UninstallDisplayIcon = {app} \{#MyAppExeName}
4445
4546[Languages]
Original file line number Diff line number Diff line change 44[ ![ Release] ( https://img.shields.io/github/v/release/PrimeBuild-pc/ThreadPilot?sort=semver )] ( https://github.com/PrimeBuild-pc/ThreadPilot/releases )
55[ ![ Coverage] ( https://codecov.io/gh/PrimeBuild-pc/ThreadPilot/branch/main/graph/badge.svg )] ( https://codecov.io/gh/PrimeBuild-pc/ThreadPilot )
66[ ![ winget] ( https://img.shields.io/winget/v/PrimeBuild.ThreadPilot )] ( https://github.com/microsoft/winget-pkgs )
7- [ ![ Windows] ( https://img.shields.io/badge/Windows-11%20official%20%7C%2010%20best--effort -blue?logo=windows )] ( https://www.microsoft.com/windows )
7+ [ ![ Windows] ( https://img.shields.io/badge/Windows-11-blue?logo=windows )] ( https://www.microsoft.com/windows )
88[ ![ .NET] ( https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet&logoColor=white )] ( https://dotnet.microsoft.com/ )
99[ ![ License] ( https://img.shields.io/badge/License-AGPLv3-blue.svg )] ( LICENSE )
1010
@@ -21,15 +21,15 @@ The project targets users who need Process Lasso style capabilities in a modern
2121- I/O and scheduling related tuning utilities.
2222- Rule-driven power plan switching based on process start/stop events.
2323- Conditional profiles, system tray controls, and runtime monitoring.
24- - Windows 11 first-class support; Windows 10 support is best effort .
24+ - Windows 11 first-class support.
2525
2626## Screenshots
2727
2828<img width =" 2470 " height =" 1696 " alt =" Gemini_Generated_Image_xzgtdpxzgtdpxzgt " src =" https://github.com/user-attachments/assets/e535e496-8b7d-4d38-883b-e0c7f68a610f " />
2929
3030## ⚙️ Requirements
3131
32- - Windows 11 (official support), Windows 10 22H2+ (best effort ).
32+ - Windows 11 (Build 22000+ ).
3333- .NET 8 SDK for source builds.
3434- Administrator privileges are required only for advanced process and power operations.
3535
Original file line number Diff line number Diff line change 1+ # Security Policy
2+
3+ See [ docs/SECURITY.md] ( docs/SECURITY.md ) for the full security policy, supported versions, and vulnerability disclosure process.
Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ public class SecurityService : ISecurityService
7070
7171 private const uint ProcessQueryLimitedInformation = 0x1000 ;
7272 private const int ProcessProtectionInformationClass = 61 ;
73+ private const int MaxLogTokenLength = 200 ;
7374
7475 [ StructLayout ( LayoutKind . Sequential ) ]
7576 private struct ProcessProtectionInformation
@@ -294,8 +295,8 @@ private static string SanitizeForLog(string value)
294295 . Replace ( '\t ' , ' ' )
295296 . Trim ( ) ;
296297
297- return sanitized . Length > 200
298- ? sanitized [ ..200 ]
298+ return sanitized . Length > MaxLogTokenLength
299+ ? sanitized [ ..MaxLogTokenLength ]
299300 : sanitized ;
300301 }
301302 }
Original file line number Diff line number Diff line change 1515 <application >
1616 <!-- Windows 10 and 11 -->
1717 <supportedOS Id =" {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
18- <!-- Windows 8.1 -->
19- <supportedOS Id =" {1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
20- <!-- Windows 8 -->
21- <supportedOS Id =" {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
22- <!-- Windows 7 -->
23- <supportedOS Id =" {35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
2418 </application >
2519 </compatibility >
2620
2721 <!-- DPI awareness -->
2822 <application xmlns =" urn:schemas-microsoft-com:asm.v3" >
2923 <windowsSettings >
30- <dpiAware xmlns =" http://schemas.microsoft.com/SMI/2005/WindowsSettings" >true</dpiAware >
3124 <dpiAwareness xmlns =" http://schemas.microsoft.com/SMI/2016/WindowsSettings" >PerMonitorV2</dpiAwareness >
3225 </windowsSettings >
3326 </application >
Original file line number Diff line number Diff line change @@ -32,14 +32,6 @@ What to do:
3232- Ensure Performance Logs and Alerts services are healthy.
3333- Validate that perflib counters are enabled on the machine.
3434
35- ## App Does Not Start on Windows 10
36- ThreadPilot officially targets Windows 11; Windows 10 support is best effort.
37-
38- What to do:
39- - Install latest Windows 10 updates (22H2+ recommended).
40- - Install .NET 8 runtime/SDK if running from source.
41- - Check %TEMP%\ThreadPilot_Debug.log for startup diagnostics.
42-
4335## Smoke Test Command
4436For CI or local validation:
4537
You can’t perform that action at this time.
0 commit comments