All notable changes to this project are documented in this file.
- Added safe in-app updater support.
- Added manual update checks from Settings.
- Added optional background update checks with a default 7-day interval.
- Added latest/current version display in Settings.
- Added update download and install flow with explicit user confirmation.
- Added updater documentation.
- Update metadata is fetched only from the official PrimeBuild-pc/ThreadPilot GitHub repository.
- Prereleases are excluded by default.
- Installer assets are selected from GitHub HTTPS release assets.
- SHA256 checksums are verified when SHA256SUMS.txt is available.
- Checksum mismatches are rejected.
- Authenticode signature verification is performed on a best-effort basis, rejecting explicitly invalid signatures.
- Installer launch uses ProcessStartInfo without shell command construction.
- Concurrent update attempts are prevented.
- Updates preserve AppData, settings, profiles, CPU masks, rules, custom/imported power plans, and logs.
- Only updater temporary files are cleaned by the update flow.
- Full uninstall behavior remains separate.
- Project version updated to 1.4.0.
- Installer, packaging, Chocolatey, and release metadata updated to v1.4.0.
- Build passed.
- Automated tests passed.
- Completed Simplified Chinese localization coverage for primary WPF views, dialogs, context menus, tooltips, tray menu text, status text, and user-facing service messages.
- Changed Inno Setup display metadata so installed apps list ThreadPilot as
ThreadPilotwhile keeping1.3.1in version metadata. - Added guarded cleanup for obsolete
ThreadPilot 0.1.0-betauninstall registry metadata only when it clearly matches the old ThreadPilot display name and Program Files install path.
- Project, package, installer, Chocolatey, Sonar, and app manifest metadata updated to 1.3.1.
- Full uninstall removes ThreadPilot-owned AppData/settings for the uninstalling user account and removes ThreadPilot startup entries; normal install/update preserves user data.
- No automatic in-app updating was added.
- No elevation, affinity, process control, power plan, or system tweak behavior was changed.
- Added localization infrastructure.
- Added English and Simplified Chinese resource dictionaries.
- Added language selector in Settings.
- Added localized notification support for selected user-facing messages.
- Added tests for localization fallback, language persistence, Settings language selection, and localized notifications.
- English remains the default application language.
- Simplified Chinese is available as an optional display language.
- Project version updated to 1.3.0.
- Unsupported or invalid language settings now fall back to English.
- Missing translation keys fall back safely to English or the key.
- No changes to elevation, system tweaks, affinity, or privileged operation behavior.
- CPU topology v2 support with
CpuSelectionfor topology-aware affinity. - Group-aware CPU Sets support and safer handling for processor groups and systems with more than 64 logical processors.
- Memory priority controls and persistent process rules.
- Apply at process start for saved rules while ThreadPilot is running.
- Process tab context menu actions, explicit Apply now, and Save as rule flows.
- Selected process summary panel for current affinity, priority, memory priority, and last operation status.
- Optional Diagnostics experience hidden by default.
- README and release documentation now describe ThreadPilot as a process control center rather than a performance overlay.
- Default presets are gaming-oriented and topology-aware.
- Intel hybrid handling uses topology and
EfficiencyClassinstead of hardcoded SKU lists. - AMD preset generation is CCD/L3-aware and avoids hardcoded SKU lists.
- Project version updated to 1.2.0.
- Startup binding crash caused by a display-only selected-process summary message binding to a read-only property with a TwoWay-capable target.
- CPU64 no longer aliases CPU0 in the new safe affinity paths.
- Persistent rule auto-apply cancellation is handled as shutdown/cancellation instead of logged as a warning.
- CPU priority guardrails warn for High priority and block Realtime priority.
- Anti-cheat/protected-process failures use safe user messaging and ThreadPilot does not bypass protected processes.
- Persistent rules reuse the existing affinity, priority, memory-priority, and Realtime guardrail backend instead of duplicating apply logic.
- Apply at process start is runtime-based and works only while ThreadPilot is running.
- No Windows Service, registry autorun, IFEO persistence, installer privilege workaround, tag, GitHub release, or generated release artifact is included in this update.
- Administrator rights can help normal access-denied cases but do not bypass protected-process or anti-cheat restrictions.
- Windows 11 native visual refresh: neutral Fluent surfaces, refined card styles, and reduced visual weight across Rules, Logs, Performance, Settings, Tweaks, Process, Power Plans, and CPU Masks views.
- Sidebar navigation separator polish: horizontal separator lines softened for a cleaner Windows 11 Settings-like sidebar appearance.
- Start minimized default clarification:
StartMinimizednow explicitly defaults tofalsefor predictable manual-launch visibility.
- Project version updated to 1.1.6.
- Older settings JSON without
startMinimizedfield no longer risks unexpected minimized startup.
- Expanded core service test coverage to 104 tests.
- Hardened background refresh behavior while ThreadPilot is minimized or hidden to tray.
- Improved process enumeration resilience for access-denied, protected, and rapidly terminating processes.
- Added a verified affinity apply flow so UI state reflects the OS-confirmed affinity after explicit apply.
- Added duplicate and debounce protection for process-driven power plan switching.
- Redesigned Process Management into a clearer two-pane layout with selected-process actions on the right.
- Clarified terminology between Automation Monitoring and Live Metrics.
- Prevented passive process read failures from emptying the process table.
- Preserved explicit-only affinity changes so process selection and mask selection do not apply affinity automatically.
- Global unobserved task exception handler with structured diagnostics.
- Domain exception hierarchy and ErrorCode registry (
ThreadPilotExceptionand derived types). - Retry policy unit tests covering transient and non-retriable behaviors.
- Release readiness documentation set:
- Exception handling policy
- Quality gates
- Release runbook
- Release notes template
- Test plan v1.1.1
- GitHub release automation script (
build/create-github-release.ps1).
- System tray periodic status updates now use adaptive backoff after failures.
- Tray update path reduces UI-thread load by collecting metrics off-dispatcher and applying UI updates on dispatcher only.
.gitignoreexpanded for AI/workspace temporary artifact cleanup.
- Improved persistence of unhandled exception metadata for post-mortem diagnostics.