AzLocal.UpdateManagement
0.8.74
PowerShell module to manage Azure Local (formerly Azure Stack HCI) cluster updates using Azure Update Manager APIs. Provides functions to start updates, check update status, list available updates, and monitor update runs. Renamed from AzStackHci.ManageUpdates in v0.7.3 to align with the Azure Local product name.
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) Microsoft. All rights reserved.
Package Details
Author(s)
- Neil Bird Microsoft
Tags
Azure AzureLocal AzureStackHCI Updates UpdateManager HCI Automation CICD Pipeline ServiceNow ITSM Incident
Functions
Connect-AzLocalServicePrincipal Start-AzLocalClusterUpdate Get-AzLocalClusterUpdateReadiness Get-AzLocalClusterInventory Get-AzLocalClusterInfo Get-AzLocalUpdateSummary Get-AzLocalAvailableUpdates Get-AzLocalUpdateRuns Set-AzLocalClusterUpdateRingTag Invoke-AzLocalFleetOperation Get-AzLocalFleetProgress Test-AzLocalFleetHealthGate Export-AzLocalFleetState Resume-AzLocalFleetUpdate Stop-AzLocalFleetUpdate Test-AzLocalClusterHealth Get-AzLocalFleetStatusData New-AzLocalFleetStatusHtmlReport Test-AzLocalUpdateScheduleAllowed Reset-AzLocalSideloadedTag Get-AzLocalItsmConfig Test-AzLocalItsmConnection New-AzLocalIncident Copy-AzLocalPipelineExample Update-AzLocalPipelineExample Copy-AzLocalItsmSample Get-AzLocalFleetHealthFailures Test-AzLocalApplyUpdatesScheduleCoverage Get-AzLocalUpdateRunFailures Get-AzLocalApplyUpdatesScheduleConfig Resolve-AzLocalCurrentUpdateRing Get-AzLocalApplyUpdatesScheduleNextFirings New-AzLocalApplyUpdatesScheduleConfig Update-AzLocalApplyUpdatesScheduleConfig Get-AzLocalApplyUpdatesScheduleCycleCalendar Get-AzLocalFleetHealthOverview Get-AzLocalLatestSolutionVersion Get-AzLocalFleetConnectivityStatus New-AzLocalFleetConnectivityStatusSummary Add-AzLocalPipelineVersionBanner Export-AzLocalAuthValidationReport Invoke-AzLocalClusterInventory Set-AzLocalClusterUpdateRingTagFromCsv Export-AzLocalUpdateRunMonitorReport Export-AzLocalFleetUpdateStatusReport Export-AzLocalClusterUpdateReadinessReport Export-AzLocalFleetConnectivityStatusReport Export-AzLocalApplyUpdatesScheduleAudit Export-AzLocalFleetHealthStatusReport Resolve-AzLocalPipelineUpdateRing Export-AzLocalClusterReadinessGateReport Invoke-AzLocalReadinessGatedClusterUpdate Add-AzLocalApplyUpdatesStepSummary Add-AzLocalNoReadyClustersStepSummary Invoke-AzLocalItsmTicketingFromArtifact Update-AzLocalSideloadCatalog Resolve-AzLocalSideloadPlan Invoke-AzLocalSideloadUpdate Export-AzLocalSideloadStatusReport Add-AzLocalSideloadStepSummary
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## Version 0.8.74 - Consistent "Up to Date" classification across Step.5 / Step.7 / Step.9 readiness reports, deep-tree fix for the `Progress` column in the Step.7 monitor and the standalone HTML "Recent Update Run History" report, and removal of dead `target="_blank"` portal-link attrs (GH / ADO step-summary sanitisers strip them - replaced with an explicit Ctrl/Cmd/middle-click tip). No public API or export-count change (still 60).
- **FIX (reporting)**: a cluster that has already applied every required update was being mis-classified. Step.5 (`Export-AzLocalClusterUpdateReadinessReport`) showed `0` in its "Up to date" summary count and listed fully-patched clusters in the "Not-Ready clusters (review first)" table; Step.7 (`Export-AzLocalClusterReadinessGateReport`) rendered them with a no-entry icon in a binary `Ready?` column, implying failure. Root cause: the "Up to Date" test required `AllAvailableUpdates` to be empty, but a cluster that has installed all updates still lists those (now-Installed) package names there, so the strict test never matched.
- **FIX (Progress column)**: the `Progress` column rendered by the Step.7 in-flight monitor and the standalone HTML "Recent Update Run History" table was always reporting the coarse top-level wrapper count (typically `1/2 steps`) for the whole multi-hour run because Azure Local only exposes two top-level wrapper steps (`Prepare update` + `Start update`) and `Start update` stays `InProgress` end-to-end. Both paths now traverse the full nested step tree via a new private helper (`Get-AzLocalUpdateRunStepStats`) and report leaf-step completion as `M/N steps (P%)` (optionally suffixed with `, K failed`), so the Progress column climbs as the install proceeds and matches how `CurrentStep` already walks the tree via `Get-DeepestActiveStep`.
- **FIX (portal hyperlinks)**: the Cluster / Update portal hyperlinks in the Step.7 (monitor), Step.8 (fleet update status) and Step.10 (fleet health status) step-summary tables always opened in the current tab even though the markdown set `target="_blank"`. GitHub's GFM sanitiser (and the ADO equivalent) strips `target` entirely and forces `rel="nofollow"` - confirmed in the rendered HTML of a real GHA job summary. The dead `target="_blank"` / `rel="noopener"` attributes are now removed (so the emitted markdown matches the rendered DOM), and each affected table is preceded by an explicit tip: "Hold `Ctrl` (or `Cmd` on macOS) when clicking - or middle-click - Cluster or Update links to open them in a new tab." The standalone HTML report (`New-AzLocalFleetStatusHtmlReport`) is unaffected - it ships as a raw `.html` artifact, not a step-summary.
- **NEW (internal)**: `Get-AzLocalClusterReadinessStatus` private helper is now the single source of truth for the readiness priority cascade (UpdateFailed > ActionRequired > HealthFailure > SbeBlocked > InProgress > ReadyForUpdate > UpToDate > NeedsInvestigation). Step.5, Step.7 and Step.9 (`Export-AzLocalFleetUpdateStatusReport`) all classify clusters identically via this helper - previously each re-implemented the logic inline and the definitions had drifted.
- **CHANGE (Step.7)**: the per-cluster readiness table's binary `Ready?` column is replaced with a readable `Status` column (`Ready`, `Up to Date`, `In Progress`, `SBE Prerequisite`, `Health Failure`, `Update Failed`, `Action Required`, `Needs Investigation`). The header now shows a distinct `Up to Date` count and a new `UP_TO_DATE_COUNT` / `UpToDateCount` step output is emitted (additive; existing `READY_COUNT` gate semantics are unchanged). PassThru gains `UpToDateCount`.
- **CHANGE (Step.5)**: the "All clusters detail" table's `Ready` boolean column is replaced with the same readable `Status` label, and the "Not-Ready clusters (review first)" table now excludes Up-to-Date and Ready clusters.
- **CHANGE (Step.7)**: the "No Clusters Ready" summary (`Add-AzLocalNoReadyClustersStepSummary`) gains `-UpToDateCount` / `-NotReadyCount` parameters and renders an Up-to-Date vs Not-Ready breakdown so idle runs show that already-patched clusters are a healthy steady state (a notice, not a warning, when all are up to date). Both apply-updates templates wire the counts through.
- **All bundled pipeline templates** bump `GENERATED_AGAINST_MODULE_VERSION` from `'0.8.73'` to `'0.8.74'`.
## Version 0.8.73 - Cycle calendar: cluster counts folded INLINE into the "Eligible rings" column (Step.3 apply-updates schedule audit). No public API or export-count change (still 60).
- **CHANGE**: `Get-AzLocalApplyUpdatesScheduleCycleCalendar` no longer renders a separate "Clusters in ring(s)" column when `-ClusterRingCounts` is supplied. Instead the "Eligible rings" header is relabelled "Eligible rings (cluster count)" and each ring token carries its count inline, e.g. `` `Prod` (9), `Canary` (3) ``. Dead days still render `_(none - dead day)_`. The per-ring projection table keeps its separate "Cluster count" column.
- **FIX**: `Export-AzLocalApplyUpdatesScheduleAudit` (the Step.3 pipeline render path) now builds a ring -> tagged-cluster-count map from the cluster CSV and forwards it as `-ClusterRingCounts`. Previously this caller never passed the parameter, so the cluster counts never appeared in the rendered Step.3 cycle calendar even though the cmdlet supported them.
- **All bundled pipeline templates** bump `GENERATED_AGAINST_MODULE_VERSION` from `'0.8.72'` to `'0.8.73'`.
## Version 0.8.72 - Patch: pipeline-template polish only. Schedule-file author guidance moved OUTSIDE the apply-updates.yml customise marker so it refreshes on existing consumers; single-digit Step.N display names zero-padded (Step.0 -> Step.00 ... Step.9 -> Step.09) so the GitHub Actions sidebar / Azure DevOps list sort in execution order. No public API or export-count change (still 60).
- **FIX**: `apply-updates.yml` (GitHub Actions + Azure DevOps) - the schedule-file author guidance comments were trapped INSIDE the `# BEGIN/END-AZLOCAL-CUSTOMIZE:schedule-triggers` block, so corrections could never reach an already-deployed consumer. All author guidance is now ABOVE the marker; the marker body holds only the trigger directive.
- **CHANGE (display only)**: single-digit pipeline step numbers zero-padded to two digits in all display names / titles (`Step.0` -> `Step.00` ... `Step.9` -> `Step.09`; `Step.10` unchanged) so the GitHub Actions sidebar and Azure DevOps list sort in execution order. Functional identifiers (artifact names) are unchanged.
- **All bundled pipeline templates** bump `GENERATED_AGAINST_MODULE_VERSION` from `'0.8.71'` to `'0.8.72'`.
## Version 0.8.71 - Patch: production strict-mode crash fix in `Export-ResultsToJUnitXml` (`UpdateStarted` success row lacked `CurrentState`/`Progress`); GitHub Actions `sideload-updates.yml` schedule-path default corrected `./.github/` -> `./config/`; stale `Step.N_*.yml` filename references in pipeline doc strings de-numbered. No public API or export-count change (still 60). See CHANGELOG for the full v0.8.71 entry.
## Version 0.8.7 - On-prem solution-update sideloading automation (new Step.6 pipeline + 5 new Public cmdlets) + pipeline filenames de-numbered (rename-aware Update) + breaking display-step renumber. Module export count grows 55 -> 60. See CHANGELOG for the full v0.8.7 entry.
## Version 0.8.6 - Step.3 cycle-calendar enrichment (per-day CRON + UpdateStartWindow tag coverage) + six v0.8.5 pipeline regression fixes (Step.0/3/4/6/9) + new Pester static-audit guards. See CHANGELOG for the full v0.8.6 entry.
## Version 0.8.5 - New Public cmdlet `Get-AzLocalApplyUpdatesScheduleCycleCalendar` + Step.6 manual schedule-file inputs + Step.3 cycle-calendar regression fix + per-ring cluster-count column + full thin-YAML port of all 10 Step pipelines (14 new Public cmdlets). Module export count grows 35 -> 55. See CHANGELOG for the full v0.8.5 entry.
## Version 0.7.99 - Property/Summary renames (AvailableUpdates -> AllAvailableUpdates, AvailableUpdatesCount -> ActionableUpdatesCount, Ready/NotReady Summary -> ReadyForUpdate/UpToDate/NotReadyForUpdate) + Step.7 CRITICAL elapsed-days 7->3 + artifact zip names prefixed with step.X-
For full v0.7.x and v0.8.x release notes see:
https://github.com/NeilBird/Azure-Local/blob/main/AzLocal.UpdateManagement/CHANGELOG.md
FileList
- AzLocal.UpdateManagement.nuspec
- Public\Get-AzLocalFleetStatusData.ps1
- Public\Resolve-AzLocalCurrentUpdateRing.ps1
- Automation-Pipeline-Examples\azure-devops\fleet-connectivity-status.yml
- Automation-Pipeline-Examples\github-actions\fleet-health-status.yml
- ITSM\ITSM-Connector-Plan.md
- Private\ConvertTo-ScrubbedCliOutput.ps1
- Private\Get-AzLocalSideloadCatalog.ps1
- Private\Invoke-AzLocalRemoteSolutionImport.ps1
- Private\Resolve-AzLocalUpdateRunDeepestError.ps1
- Private\Write-AzLocalPipelineNotice.ps1
- Public\Export-AzLocalFleetHealthStatusReport.ps1
- Public\Get-AzLocalItsmConfig.ps1
- Public\Resolve-AzLocalPipelineUpdateRing.ps1
- AzLocal.UpdateManagement.psd1
- Automation-Pipeline-Examples\azure-devops\fleet-health-status.yml
- Automation-Pipeline-Examples\github-actions\fleet-update-status.yml
- ITSM\README.md
- Private\Export-ResultsToJUnitXml.ps1
- Private\Get-AzLocalSideloadState.ps1
- Private\Invoke-AzLocalServiceNowAdapter.ps1
- Private\Resolve-SafeOutputPath.ps1
- Private\Write-AzLocalPipelineWarning.ps1
- Public\Export-AzLocalFleetState.ps1
- Public\Get-AzLocalLatestSolutionVersion.ps1
- Public\Resolve-AzLocalSideloadPlan.ps1
- AzLocal.UpdateManagement.psm1
- Automation-Pipeline-Examples\azure-devops\fleet-update-status.yml
- Automation-Pipeline-Examples\github-actions\inventory-clusters.yml
- Private\Add-AzLocalPipelineStepSummary.ps1
- Private\Format-AzLocalDurationHuman.ps1
- Private\Get-AzLocalSolutionUpdateDownload.ps1
- Private\Invoke-AzLocalSideloadedAutoReset.ps1
- Private\Resolve-WildcardDate.ps1
- Private\Write-Log.ps1
- Public\Export-AzLocalFleetUpdateStatusReport.ps1
- Public\Get-AzLocalUpdateRunFailures.ps1
- Public\Resume-AzLocalFleetUpdate.ps1
- example-update-request.json
- Automation-Pipeline-Examples\azure-devops\inventory-clusters.yml
- Automation-Pipeline-Examples\github-actions\manage-updatering-tags.yml
- Private\Convert-AzLocalScheduleSchemaVersion.ps1
- Private\Format-AzLocalIncidentBody.ps1
- Private\Get-AzLocalUpdateRunStepStats.ps1
- Private\Invoke-AzLocalSideloadedAutoResetForCluster.ps1
- Private\Resolve-WildcardDateRange.ps1
- Private\Write-UpdateCsvLog.ps1
- Public\Export-AzLocalSideloadStatusReport.ps1
- Public\Get-AzLocalUpdateRuns.ps1
- Public\Set-AzLocalClusterUpdateRingTag.ps1
- README.md
- Automation-Pipeline-Examples\azure-devops\manage-updatering-tags.yml
- Automation-Pipeline-Examples\github-actions\monitor-updates.yml
- Private\Convert-AzLocalSideloadCatalogSchemaVersion.ps1
- Private\Format-AzLocalUpdateRun.ps1
- Private\Get-CurrentStepPath.ps1
- Private\Invoke-AzLocalUpdateApply.ps1
- Private\Select-AzLocalNextUpdateForCluster.ps1
- Private\Write-Utf8NoBomFile.ps1
- Public\Export-AzLocalUpdateRunMonitorReport.ps1
- Public\Get-AzLocalUpdateSummary.ps1
- Public\Set-AzLocalClusterUpdateRingTagFromCsv.ps1
- Test-Pipelines.ps1
- Automation-Pipeline-Examples\azure-devops\monitor-updates.yml
- Automation-Pipeline-Examples\github-actions\sideload-updates.yml
- Private\Convert-AzLocalUpdateWindowToCron.ps1
- Private\Get-AzLocalClusterReadinessStatus.ps1
- Private\Get-DeepestActiveStep.ps1
- Private\Invoke-AzResourceGraphQuery.ps1
- Private\Set-AzLocalClusterTagsMerge.ps1
- Public\Add-AzLocalApplyUpdatesStepSummary.ps1
- Public\Get-AzLocalApplyUpdatesScheduleConfig.ps1
- Public\Invoke-AzLocalClusterInventory.ps1
- Public\Start-AzLocalClusterUpdate.ps1
- Automation-Pipeline-Examples\apply-updates-schedule.example.yml
- Automation-Pipeline-Examples\azure-devops\sideload-updates.yml
- docs\cmdlet-reference.md
- Private\ConvertFrom-AzLocalCronExpression.ps1
- Private\Get-AzLocalClusterUpdateRuns.ps1
- Private\Get-DeepestErrorMessage.ps1
- Private\Invoke-AzRestJson.ps1
- Private\Set-AzLocalPipelineOutput.ps1
- Public\Add-AzLocalNoReadyClustersStepSummary.ps1
- Public\Get-AzLocalApplyUpdatesScheduleCycleCalendar.ps1
- Public\Invoke-AzLocalFleetOperation.ps1
- Public\Stop-AzLocalFleetUpdate.ps1
- Automation-Pipeline-Examples\azlocal-update-management-custom-role.json
- Automation-Pipeline-Examples\docs\appendix-pipelines.md
- docs\concepts.md
- Private\ConvertFrom-AzLocalScheduleYaml.ps1
- Private\Get-AzLocalItsmDedupeKey.ps1
- Private\Get-ExportFormat.ps1
- Private\Invoke-FleetJobsInParallel.ps1
- Private\Test-AzCliAvailable.ps1
- Public\Add-AzLocalPipelineVersionBanner.ps1
- Public\Get-AzLocalApplyUpdatesScheduleNextFirings.ps1
- Public\Invoke-AzLocalItsmTicketingFromArtifact.ps1
- Public\Test-AzLocalApplyUpdatesScheduleCoverage.ps1
- Automation-Pipeline-Examples\README.md
- Automation-Pipeline-Examples\docs\appendix-release-history.md
- docs\rbac.md
- Private\ConvertFrom-AzLocalUpdateExcluded.ps1
- Private\Get-AzLocalItsmTriggerDecision.ps1
- Private\Get-HealthCheckFailureSummary.ps1
- Private\Invoke-FleetOpClusterAction.ps1
- Private\Test-AzLocalAllowedUpdateVersionsString.ps1
- Public\Connect-AzLocalServicePrincipal.ps1
- Public\Get-AzLocalAvailableUpdates.ps1
- Public\Invoke-AzLocalReadinessGatedClusterUpdate.ps1
- Public\Test-AzLocalClusterHealth.ps1
- Automation-Pipeline-Examples\sideload-auth-map.example.csv
- Automation-Pipeline-Examples\docs\sideload-robocopy.md
- docs\release-history.md
- Private\ConvertFrom-AzLocalUpdateExclusion.ps1
- Private\Get-AzLocalModuleRootManifestPath.ps1
- Private\Get-LastUpdateRunErrorSummary.ps1
- Private\New-AzLocalPipelineJUnitXml.ps1
- Private\Test-AzLocalRemoteFileHash.ps1
- Public\Copy-AzLocalItsmSample.ps1
- Public\Get-AzLocalClusterInfo.ps1
- Public\Invoke-AzLocalSideloadUpdate.ps1
- Public\Test-AzLocalFleetHealthGate.ps1
- Automation-Pipeline-Examples\sideload-catalog.example.yml
- Automation-Pipeline-Examples\docs\sideload.md
- docs\troubleshooting.md
- Private\ConvertFrom-AzLocalUpdateSideloaded.ps1
- Private\Get-AzLocalPipelineCustomiseMarkers.ps1
- Private\Get-LatestUpdateByYYMM.ps1
- Private\New-AzLocalPSRemotingSession.ps1
- Private\Test-AzLocalUpdateExcludedAllowed.ps1
- Public\Copy-AzLocalPipelineExample.ps1
- Public\Get-AzLocalClusterInventory.ps1
- Public\New-AzLocalApplyUpdatesScheduleConfig.ps1
- Public\Test-AzLocalItsmConnection.ps1
- Automation-Pipeline-Examples\.itsm\azurelocal-itsm.yml
- Automation-Pipeline-Examples\github-actions\apply-updates-schedule-audit.yml
- docs\images\apply-updates-summary.png
- Private\ConvertFrom-AzLocalUpdateWindow.ps1
- Private\Get-AzLocalPipelineHost.ps1
- Private\Get-TagValue.ps1
- Private\Read-AzLocalApplyUpdatesYamlCrons.ps1
- Private\Test-AzLocalUpdateExclusion.ps1
- Public\Export-AzLocalApplyUpdatesScheduleAudit.ps1
- Public\Get-AzLocalClusterUpdateReadiness.ps1
- Public\New-AzLocalFleetConnectivityStatusSummary.ps1
- Public\Test-AzLocalUpdateScheduleAllowed.ps1
- Automation-Pipeline-Examples\.itsm\templates\incident-body.md
- Automation-Pipeline-Examples\github-actions\apply-updates.yml
- docs\images\auth-smoke-test-validate-oidc.png
- Private\ConvertTo-AzLocalAdditionalProperties.ps1
- Private\Get-AzLocalPipelineId.ps1
- Private\Import-AzLocalFleetState.ps1
- Private\Register-AzLocalSideloadCopyTask.ps1
- Private\Test-AzLocalUpdateSideloadedAllowed.ps1
- Public\Export-AzLocalAuthValidationReport.ps1
- Public\Get-AzLocalFleetConnectivityStatus.ps1
- Public\New-AzLocalFleetStatusHtmlReport.ps1
- Public\Update-AzLocalApplyUpdatesScheduleConfig.ps1
- Automation-Pipeline-Examples\azure-devops\apply-updates-schedule-audit.yml
- Automation-Pipeline-Examples\github-actions\assess-update-readiness.yml
- docs\images\inventory-clusters-run-output.png
- Private\ConvertTo-AzLocalUpdateRingKqlFilter.ps1
- Private\Get-AzLocalPipelineManifest.ps1
- Private\Install-AzGraphExtension.ps1
- Private\Resolve-AzLocalItsmSecret.ps1
- Private\Test-AzLocalUpdateVersionInProgressMatch.ps1
- Public\Export-AzLocalClusterReadinessGateReport.ps1
- Public\Get-AzLocalFleetHealthFailures.ps1
- Public\New-AzLocalIncident.ps1
- Public\Update-AzLocalPipelineExample.ps1
- Automation-Pipeline-Examples\azure-devops\apply-updates.yml
- Automation-Pipeline-Examples\github-actions\authentication-test.yml
- docs\images\README.md
- Private\ConvertTo-SafeCsvCollection.ps1
- Private\Get-AzLocalRunEndTime.ps1
- Private\Invoke-AzCliJson.ps1
- Private\Resolve-AzLocalSideloadCredential.ps1
- Private\Test-AzLocalUpdateWindow.ps1
- Public\Export-AzLocalClusterUpdateReadinessReport.ps1
- Public\Get-AzLocalFleetHealthOverview.ps1
- Public\Reset-AzLocalSideloadedTag.ps1
- Public\Update-AzLocalSideloadCatalog.ps1
- Automation-Pipeline-Examples\azure-devops\assess-update-readiness.yml
- Automation-Pipeline-Examples\github-actions\fleet-connectivity-status.yml
- ITSM\ITSM-Config-Reference.md
- Private\ConvertTo-SafeCsvField.ps1
- Private\Get-AzLocalSideloadAuthMap.ps1
- Private\Invoke-AzLocalItsmHttp.ps1
- Private\Resolve-AzLocalSideloadTargetPath.ps1
- Private\Test-ExportPathWritable.ps1
- Public\Export-AzLocalFleetConnectivityStatusReport.ps1
- Public\Get-AzLocalFleetProgress.ps1
- Automation-Pipeline-Examples\azure-devops\authentication-test.yml
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.9.26 | 65 | 7/27/2026 |
| 0.9.25 | 12 | 7/27/2026 |
| 0.9.24 | 192 | 7/24/2026 |
| 0.9.23 | 90 | 7/23/2026 |
| 0.9.22 | 83 | 7/22/2026 |
| 0.9.21 | 404 | 7/15/2026 |
| 0.9.20 | 323 | 7/8/2026 |
| 0.9.19 | 13 | 7/8/2026 |
| 0.9.18 | 69 | 7/7/2026 |
| 0.9.17 | 17 | 7/7/2026 |
| 0.9.16 | 51 | 7/6/2026 |
| 0.9.15 | 170 | 7/2/2026 |
| 0.9.14 | 19 | 7/2/2026 |
| 0.9.13 | 18 | 7/2/2026 |
| 0.9.12 | 59 | 7/1/2026 |
| 0.9.11 | 89 | 6/29/2026 |
| 0.9.10 | 108 | 6/26/2026 |
| 0.9.1 | 13 | 6/26/2026 |
| 0.9.0 | 52 | 6/25/2026 |
| 0.8.99 | 6 | 6/25/2026 |
| 0.8.98 | 5 | 6/25/2026 |
| 0.8.97 | 36 | 6/24/2026 |
| 0.8.96 | 34 | 6/23/2026 |
| 0.8.95 | 10 | 6/23/2026 |
| 0.8.94 | 107 | 6/19/2026 |
| 0.8.93 | 25 | 6/18/2026 |
| 0.8.92 | 10 | 6/18/2026 |
| 0.8.91 | 13 | 6/18/2026 |
| 0.8.90 | 5 | 6/18/2026 |
| 0.8.89 | 7 | 6/18/2026 |
| 0.8.88 | 41 | 6/17/2026 |
| 0.8.87 | 37 | 6/16/2026 |
| 0.8.86 | 17 | 6/16/2026 |
| 0.8.85 | 6 | 6/16/2026 |
| 0.8.84 | 34 | 6/15/2026 |