# Tasks: Windows Update Rings (012) **Branch**: `feat/012-windows-update-rings` | **Date**: 2025-12-31 **Input**: [spec.md](./spec.md), [plan.md](./plan.md) ## Phase 1: Contracts + Snapshot Hydration - [X] T001 Verify `config/graph_contracts.php` for `windowsUpdateRing` (resource, allowed_select, type_family, etc.). - [X] T002 Extend `PolicySnapshotService` to hydrate `windowsUpdateForBusinessConfiguration` settings. - [X] T001b Fix Graph filters for update rings (`isof(...)`) and add `windowsFeatureUpdateProfile` support. ## Phase 2: Restore - [X] T003 Implement restore apply for `windowsUpdateRing` settings in `RestoreService.php`. ## Phase 3: UI Normalization - [X] T004 Add `WindowsUpdateRingNormalizer` and register it (Policy “Normalized settings” is readable). - [X] T004b Add `WindowsFeatureUpdateProfileNormalizer` and register it (Policy “Normalized settings” is readable). - [X] T004c Add `WindowsQualityUpdateProfileNormalizer` and register it (Policy “Normalized settings” is readable). ## Phase 4: Tests + Verification - [X] T005 Add tests for sync filters + supported types. - [X] T006 Add tests for restore apply. - [X] T007 Run tests (targeted). - [X] T008 Run Pint (`./vendor/bin/pint --dirty`). ## Open TODOs (Follow-up) - None yet.