Repository navigation
feat: add Task Scheduler tab (browse, classify, enable/disable) - #1085
Merged
Merged
Conversation
Implements Task Scheduler Manager (replaces its WIP placeholder in System). Closes #334. - TaskSchedulerService: ScheduledTasks PowerShell module via IPowerShellRunner (Get-ScheduledTask for the fast list, Get-ScheduledTaskInfo lazily on selection, Enable/Disable-ScheduledTask to toggle). Disabling is reversible and NEVER deletes a task — there is no Unregister anywhere. Each toggle is verified by reading the task's State back, so a missing-admin failure (which surfaces on the PS error stream, not as a throw) is reported honestly. - Pure ClassifyTask heuristic: a small, conservative telemetry-folder list (Compatibility Appraiser / CEIP / Feedback / Error Reporting / DiskDiagnostic) → Telemetry; other \Microsoft\Windows\ or Microsoft-authored → System; rest → Third-party. Unit-tested incl. the "other Microsoft task is System not telemetry" guard. - TaskSchedulerViewModel: filter by name/path, hide-system toggle, color-coded list, enable/disable with a confirmation that WARNS for system tasks. - Marked PREVIEW. TaskName/TaskPath always passed as bound parameters.
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
Implements Task Scheduler Manager (System group), replacing its WIP placeholder. Closes #334.
Browse Windows scheduled tasks and turn them on/off, color-coded by type.
How
TaskSchedulerService— theScheduledTasksPowerShell module viaIPowerShellRunner:Get-ScheduledTaskfor the fast full list (typed objects, stable integerStateenum — noschtasks.exeCSV/localization fragility).Get-ScheduledTaskInfolazily on selection (it's a per-task call — not run for all ~200 up front).Enable/Disable-ScheduledTaskto toggle.State=Disabled; the task stays registered. NoUnregister-ScheduledTaskanywhere — the UI cannot delete a task.Stateand reports success only if it actually changed.ClassifyTask(pure, unit-tested) — small conservative heuristic: known telemetry folders (Compatibility Appraiser / CEIP / Feedback / Error Reporting / DiskDiagnostic) → Telemetry; other\Microsoft\Windows\or Microsoft-authored → System (caution); rest → Third-party.TaskSchedulerViewModel— filter by name/path, hide-system toggle, color-coded grid, enable/disable with a confirmation that warns for System tasks and names the reversibility.Preview
Marked PREVIEW (sidebar pill + banner).
Tests
TaskSchedulerServiceTests—ClassifyTaskacross telemetry folders, the Autochk\Proxy special case, "other Microsoft task = System not Telemetry", third-party, null path.ScheduledTaskInfoTests— IsEnabled, FullPath, CategoryLabel, IsSystem, run-display dashes.NavLeaf_TaskScheduler_IsImplementedAndMarkedPreview.Verification