Skip to content

Comments

Add LeadingStrings benchmarks for binary and non-ASCII regex patterns#5

Closed
danmoseley wants to merge 63 commits intomainfrom
regex-redux/benchmarks
Closed

Add LeadingStrings benchmarks for binary and non-ASCII regex patterns#5
danmoseley wants to merge 63 commits intomainfrom
regex-redux/benchmarks

Conversation

@danmoseley
Copy link
Owner

Adds two new benchmark classes to exercise the LeadingStrings vs FixedDistanceSets heuristic in the regex engine:

  • Perf_Regex_LeadingStrings_BinaryData: 1MB binary corpus (PE-header-like seed duplicated), alternation of binary patterns. Validates no regression on non-text input.
  • Perf_Regex_LeadingStrings_NonAscii: ~100KB Russian text (Anna Karenina opening), alternation of Russian words. Validates no regression on non-ASCII text where the frequency heuristic bails out.

Companion to dotnet/runtime change: danmoseley/runtime#30

dotnet-maestro bot and others added 30 commits October 9, 2025 13:13
* Update dependencies from https://github.com/dotnet/dotnet build 20251006.2
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25479.101 -> To Version 11.0.0-beta.25506.102
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25479.101 -> To Version 10.0.0-rc.1.25506.102
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25479.101 -> To Version 10.0.100-rc.2.25506.102

* Update dependencies from https://github.com/dotnet/dotnet build 20251007.2
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25479.101 -> To Version 11.0.0-beta.25507.102
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25479.101 -> To Version 10.0.0-rc.1.25507.102
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25479.101 -> To Version 10.0.100-rc.2.25507.102

* Update dependencies from https://github.com/dotnet/dotnet build 20251008.1
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25479.101 -> To Version 11.0.0-beta.25508.101
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25479.101 -> To Version 10.0.0-rc.1.25508.101
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25479.101 -> To Version 10.0.100-rc.2.25508.101

* Update dependencies from https://github.com/dotnet/dotnet build 20251008.2
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25479.101 -> To Version 11.0.0-beta.25508.102
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25479.101 -> To Version 10.0.0-rc.1.25508.102
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25479.101 -> To Version 10.0.100-rc.2.25508.102

* Update dependencies from https://github.com/dotnet/dotnet build 20251008.9
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25479.101 -> To Version 11.0.0-beta.25508.109
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25479.101 -> To Version 10.0.0-rc.1.25508.109
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25479.101 -> To Version 10.0.100-rc.2.25508.109

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/dotnet/macios build 20251007.9
On relative base path root
Microsoft.iOS.Sdk.net9.0_26.0 , Microsoft.MacCatalyst.Sdk.net9.0_26.0 , Microsoft.macOS.Sdk.net9.0_26.0 , Microsoft.tvOS.Sdk.net9.0_26.0 From Version 26.0.9752 -> To Version 26.0.9753

* Update dependencies from https://github.com/dotnet/macios build 20251008.10
On relative base path root
Microsoft.iOS.Sdk.net9.0_26.0 , Microsoft.MacCatalyst.Sdk.net9.0_26.0 , Microsoft.macOS.Sdk.net9.0_26.0 , Microsoft.tvOS.Sdk.net9.0_26.0 From Version 26.0.9752 -> To Version 26.0.9754

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
- clearer naming of codegen/runtime variants
- remove non strip symbols variants
* Update channel map for net11 and move default version to net10 for CertHelper

* Update dependencies from https://github.com/dotnet/dotnet build 20251014.6
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25508.109 -> To Version 11.0.0-beta.25514.106
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25508.109 -> To Version 10.0.0-rc.1.25514.106
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25508.109 -> To Version 10.0.100-rc.2.25514.106

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Initial plan

* Add missing 'six' module dependency for azure.storage.blob

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>

* Update

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: Drew Scoggins <anscoggi@microsoft.com>
* Fixup Brotli compression tests

As seen here, dotnet/runtime#73391 (comment), this test had a bug where in
the work that was being done by the underlying test was not being correctly measured. This fix resolves that.

* Address pr feedback

* code review feedback

---------

Co-authored-by: Radek Zikmund <r.zikmund.rz@gmail.com>
Suppress Sve experimental warning in project config and remove redundant Sve.IsSupported checks as it is already checked when in the benchmark filter config.

Co-authored-by: Yat Long Poon <yatlong.poon@arm.com>
Disable runtime mobile tests for release branch testing.
Co-authored-by: Yat Long Poon <yatlong.poon@arm.com>
* Remove old package name and fix job dependency

* Move from release -> checked
Add SquareRoot and Logarithm to SVE microbenchmark

---------

Co-authored-by: Yat Long Poon <yatlong.poon@arm.com>
…d inside the brackets and making sure it is escaped properly. (dotnet#5025)
….0 packages (dotnet#5027)

Update Blazor.PackageVersions.props to allow references to prerelease net10.0 Microsoft.Extensions packages while we wait for stable packages.
* Remove Windows Tiger runs

* Remove from dotnet-performance as well

* Remove accidental android removal

* Fix typo
* Update dependencies from https://github.com/dotnet/dotnet build 20251105.3
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25514.106 -> To Version 11.0.0-beta.25555.103
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25514.106 -> To Version 10.0.0-rc.1.25555.103
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25514.106 -> To Version 10.0.100-rc.2.25555.103

* Update dependencies from https://github.com/dotnet/dotnet build 20251105.7
On relative base path root
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.25514.106 -> To Version 11.0.0-beta.25555.107
Microsoft.Extensions.Logging , Microsoft.NET.ILLink , Microsoft.NET.ILLink.Tasks , Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.WindowsDesktop.App.Ref , System.Threading.Channels From Version 10.0.0-rc.1.25514.106 -> To Version 10.0.0-rc.1.25555.107
Microsoft.NET.Sdk From Version 10.0.100-rc.2.25514.106 -> To Version 10.0.100-rc.2.25555.107

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/dotnet/xharness build 20251114.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 10.0.0-prerelease.25564.1

* Update dependencies from https://github.com/dotnet/xharness build 20251114.3
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 10.0.0-prerelease.25564.3

* Update dependencies from https://github.com/dotnet/xharness build 20251118.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 10.0.0-prerelease.25568.1

* Update dependencies from https://github.com/dotnet/xharness build 20251118.2
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 10.0.0-prerelease.25568.2

* Update dependencies from https://github.com/dotnet/xharness build 20251119.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 10.0.0-prerelease.25569.1

* Update dependencies from https://github.com/dotnet/xharness build 20251119.2
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25569.2

* Update dependencies from https://github.com/dotnet/xharness build 20251125.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25575.1

* Update dependencies from https://github.com/dotnet/xharness build 20251128.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25578.1

* Update dependencies from https://github.com/dotnet/xharness build 20251128.2
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25578.2

* Update dependencies from https://github.com/dotnet/xharness build 20251201.4
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25601.4

* Update dependencies from https://github.com/dotnet/xharness build 20251201.6
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25601.6

* Update dependencies from https://github.com/dotnet/xharness build 20251201.7
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25601.7

* Update dependencies from https://github.com/dotnet/xharness build 20251203.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 10.0.0-prerelease.25475.1 -> To Version 11.0.0-prerelease.25603.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…i repo (dotnet#5056)

Update Maui runs to use Maui repos NuGet.config and Version.Details.xml (<- only when installing versioned, which we currently do not do) to help minimize downtime due to Maui taking a version of packages we don't have in the performance NuGet.config.
* Add support for net11.0 in MicroBenchmarks.csproj

* Update src/benchmarks/micro/MicroBenchmarks.csproj

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Parker Bibus <pbibus@hotmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Updated some more perf repo references based on dotnet#4610.

* Some more net11 updates.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This property is nullable on the BDN side: GetBytesAllocatedPerOperation -> https://github.com/dotnet/BenchmarkDotNet/blob/master/src/BenchmarkDotNet/Engines/GcStats.cs#L41. The ResultsComparer was crashing when trying to deserialize the json results.
…ter support (dotnet#5030)

* Temporarily disabled MAUI workloads until .NET 11 packages are available (Enable MAUI samples when TargetFramework=net11.0 becomes available dotnet#5055)
* Updated the build to use the latest .NET 11 SDK and workload packages
* Added support for CoreCLR interpreter scenarios in MAUI iOS benchmarks

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
If we would use the python version 3.13t, don't, instead use the non-thread-free version so we can successfully install all of the windows packages.
Copilot AI and others added 29 commits January 15, 2026 12:15
… within Helix upload root (dotnet#5084)

* Add path containment check to avoid duplicate Helix uploads

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>

* Check reports and binlogs directories independently

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: Parker Bibus <parkerbibus@microsoft.com>
…urce resolution (dotnet#5087)

* Move install_latest_maui inside MauiNuGetConfigContext for all MAUI scenarios

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>

* Add Maui Nuget config to mobile scenarios that install maui but build android/ios projects so they succeed in installing Maui as well.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: Parker Bibus <parkerbibus@microsoft.com>
* Add azurelinux3.cobalt.arm64.perf queue to dotnet perf slow pipeline and private sdk testing runs.

* Add missed job.

* Add more missing jobs.

* Setup sdk testing.

* Update the install_prerequisites information for tdnf.

* Remove nativeaot_scenario sdk jobs as they would need to cross compile.

* Testing change

* Add osDistro argument for AL3

* Test

* Fix CertHelper to write diagnostics to stderr instead of stdout

* Remove job comments

* Remove dupe

* PR feedback

* Fix path for redact script

---------

Co-authored-by: Drew Scoggins <anscoggi@microsoft.com>
* Update Blazor warning condition from net10.0 to net12.0 and version check from 9.0 to 11.0

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
…#5086)

* Fix SignOutSessionStateManager compilation error for .NET 11+

Update LoginDisplay.razor in both blazorpizza and blazorpizzaaot scenarios to use conditional compilation. For .NET 11+, use the new Navigation.NavigateToLogout() method. For .NET 8-10, continue using the deprecated SignOutSessionStateManager for backward compatibility.

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>

* Fix blazor pizza app breaking change.

* Fix missing Tasks import.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: Parker Bibus <parkerbibus@microsoft.com>
Add 10.0 channel runs to the performance runs.
* Update to temporary custom built BDN (from latest) version while we wait for AsmResolver to officially release support for net11.0.

* Update Roslyn type DefaultAnalyzerAssemblyLoader -> AnalyzerAssemblyLoader as the Default was internal and recently sealed so no unavailable, and AnalyzerAssemblyLoader seems to be the replacement: dotnet/roslyn#66612.
* Update dependencies from https://github.com/dotnet/xharness build 20251215.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.25615.1

* Update dependencies from https://github.com/dotnet/xharness build 20251222.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.25622.1

* Update dependencies from https://github.com/dotnet/xharness build 20251226.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.25626.1

* Update dependencies from https://github.com/dotnet/xharness build 20260108.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26058.1

* Update dependencies from https://github.com/dotnet/xharness build 20260108.3
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26058.3

* Update dependencies from https://github.com/dotnet/xharness build 20260108.2
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26058.2

* Update dependencies from https://github.com/dotnet/xharness build 20260112.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26062.1

* Update dependencies from https://github.com/dotnet/xharness build 20260112.2
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26062.2

* Update dependencies from https://github.com/dotnet/xharness build 20260114.1
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26064.1

* Update dependencies from https://github.com/dotnet/xharness build 20260114.3
On relative base path root
Microsoft.DotNet.XHarness.CLI From Version 11.0.0-prerelease.25603.1 -> To Version 11.0.0-prerelease.26064.3

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…packages not yet being available in public feeds. (dotnet#5100)
Several parsetraces methods were ignoring the return code from upload.upload(), causing scripts to continue executing even when uploads failed. This change ensures all upload calls properly check the return code and exit with the appropriate error code on failure.
* Pin cryptography==46.0.3 to fix win_arm64 install failure

cryptography 46.0.4 dropped official win_arm64 wheels from PyPI,
causing pip to attempt a source build that fails on ARM64 machines.
Pin to 46.0.3 (last version with win_arm64 wheels) and install it
before the azure packages that depend on it.

* Replace win-arm64/ubuntu-arm64 with -ampere variants in sdk-perf-jobs.yml

Migrate remaining references to the retired win-arm64 and ubuntu-arm64
build machines to win-arm64-ampere and ubuntu-arm64-ampere. Remove
duplicate entries where both old and new names existed in the same block.
* Fix: Update device information extraction to include UDID

* Fix: Update test command arguments for device startup in maui_scenarios_ios.proj
…ios (dotnet#5061)

* Add debug build configuration support for MAUI Android and iOS scenarios

* Add banner for non-release build config

* Update xcode version.

* Fix get_sdk_version paths to properly use the configuration.

* clean-up sdk-perf-jobs from unused configurations

* use only default codegen for debug measurements

* make version manager cross platform

* fix debug path dll paths for android

* set EmbedAssembliesIntoApk=true for debug

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: Parker Bibus <parkerbibus@microsoft.com>
Co-authored-by: Matous Kozak <matouskozak@seznam.cz>
Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
* Add benchmarks for Zstandard

* Wrap with  NET11_0_OR_GREATER

* Fix build

* fixup! Fix build

* Address code review feedback
* Add MAUI -sc test app for iOS
* Reduce iOS payload size to fit into 2GB helix limit with CoreCLR
* Move from testing different codegens for Android to Default configurations to simplify the measurements.
* Fix startup scenario test failures on .NET 11 Preview 2

- Update console template pre.py scripts to search for "Console.WriteLine"
  instead of the removed "// See https://aka.ms/new-console-template" comment
- Make insert_after() raise an exception when the search string is not found
  instead of silently succeeding
- Handle empty parser results in Reporter.WriteResultTable() to prevent
  InvalidOperationException on .Max() of empty sequence
- Add diagnostic logging and fail with exit code -1 when parser returns
  no results in Startup.cs

* Gate WPF scenarios to internal runs due to CloseFailed on CI VMs

WPF Template and WPF SFC fail with CloseFailed on generic Helix CI
VMs because CloseMainWindow() doesn't work in headless environments.
This is the same issue that caused WinForms scenarios to be gated.
Gate both WPF scenarios behind SYSTEM_TEAMPROJECT=internal, with
IncludeVMFlakyScenarios override.

* Address PR feedback: add empty-results tests, skip report on failure

- Add three tests for WriteResultTable() with no counters, empty results,
  and null results to cover the empty-results guard
- Change Reporter message to neutral 'No results in file.'
- Skip CreateTestReport() in Startup.cs when parser returns no results

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danmoseley danmoseley closed this Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.