Skip to content

🔄 Sync main branch changes to net9#379

Merged
arcenox merged 1 commit intonet9from
sync-main-to-net9-20251117-232001
Nov 17, 2025
Merged

🔄 Sync main branch changes to net9#379
arcenox merged 1 commit intonet9from
sync-main-to-net9-20251117-232001

Conversation

@arcenox
Copy link
Copy Markdown
Collaborator

@arcenox arcenox commented Nov 17, 2025

🤖 Automated Branch Sync

This PR syncs recent changes from main branch to net9.

Changes Applied:

  • ✅ Applied recent commits from main (using cherry-pick)
  • ✅ Updated version numbers (10.x.x → 9.x.x)
  • ✅ Updated target framework (net10.0 → net9.0)
  • ✅ Preserved .csproj files from net9 branch
  • ⏭️ Commits already in target branch were automatically excluded

Review Notes:

  • All .csproj files maintain net9 configurations
  • Directory.Build.props has been updated for net9 compatibility
  • Ready for testing on net9 environment

Created automatically by branch sync workflow


Note

Replace scheduler timers with Task.Delay loops, refine next-ticker batching/selection, correct cron occurrence updates and execution times, and fix deletion routing.

  • Scheduler/Background Services:
    • Replace PeriodicTimer loops with while + Task.Delay, using dynamic sleep durations and clearing execution context safely.
    • Adjust restart logic to trigger only when a new task is overdue or ≥500ms earlier than planned.
  • Ticker selection/queuing:
    • Rewrite GetNextTickers to compute remaining time once, batch cron/time tickers when in the same second, and merge queued functions.
    • Add SafeRemaining helper for non-negative delays.
  • Persistence (EF Core):
    • ReleaseAcquiredCronTickerOccurrences: simplify to use baseQuery directly.
    • QueueCronTickerOccurrences: set ExecutionTime from the group key (executionTime) instead of now.
    • UpdateCronTickerOccurrencesWithUnifiedContext: update by occurrence IDs (cronOccurrenceIds) via setter.UpdateCronTickerOccurrence.
  • Other:
    • Fix DeleteTicker routing for cron vs time tickers.
    • Minor cleanup in InternalFunctionContext usings.

Written by Cursor Bugbot for commit 98ac6cc. This will update automatically on new commits. Configure here.

@arcenox arcenox added automated Automated PR sync Branch synchronization net9 Target: net9 branch labels Nov 17, 2025
@arcenox arcenox merged commit 65be706 into net9 Nov 17, 2025
1 check passed
=======
.Where(x => cronOccurrenceIds.Contains(x.Id))
.ExecuteUpdateAsync(setter => setter.UpdateCronTickerOccurrence<TCronTicker>(functionContext), cancellationToken)
>>>>>>> f7b961a (Fix/schedulerbackground (#376))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Stray Merge Markers Break the Build

Merge conflict markers (<<<<<<< HEAD, =======, >>>>>>>) were accidentally left in the code within the UpdateCronTickerOccurrencesWithUnifiedContext method. This prevents the code from compiling and must be resolved by choosing the correct implementation.

Fix in Cursor Fix in Web

@arcenox arcenox deleted the sync-main-to-net9-20251117-232001 branch November 17, 2025 23:32
arcenox added a commit that referenced this pull request Mar 15, 2026
* Fixed the issue with dead node release

* Fixed the scheduler to handle inline tasks and to not create deadlock on threads of TickerQ

* fixed the window time of picking tasks

* Fixed the task cancellation issue

* fixed the scheduler to show real time threads active

* updated version for release

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#377)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#379)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#383)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Updated PR to push net9

* fixed merge conflicts

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#387)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#389)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#392)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#394)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* 🔄 Sync main branch changes to net9 (#400)

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files

* Fixed the issue with .net app net9 versions

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#402)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#404)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#406)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#420)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#421)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#424)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#425)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* 🔄 Sync main branch changes to net9 (#431)

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files

* Added reference to TickerQ from Test csproj

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#435)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#452)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#467)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#489)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#491)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#493)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#495)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#506)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#529)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#531)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#538)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#536)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#533)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Fix #521: Set explicit C# 13 language version for .NET 9 (#547)

Set LangVersion to 13.0 in Directory.Build.props for deterministic
builds and remove the per-project LangVersion override from TickerQ.csproj.
C# 13 is the latest language version compatible with .NET 9.

https://claude.ai/code/session_015JykuFsRPUz3q19jxYh7uy

Co-authored-by: Claude <noreply@anthropic.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#545)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#552)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#553)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#555)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#565)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#563)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#561)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#558)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#560)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#568)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix .net9

* fix build prop

* fix

* fix

* fix

* stable release along with hub.

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#577)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix dashboard and conflicts

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#583)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#608)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#613)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#601)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#597)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#595)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#592)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#588)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files

* Sync changes from main to net9 - Applied recent commits, updated versions & framework, preserved .csproj files (#625)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Fix DotNetVersion range for net9 — was incorrectly set to [10.0.0,11.0.0) (#626)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Sync changes from main to net9 (#630)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync main → net9 (#634)

* Sync changes from main to net9

* Add IsEnabled support to sync-excluded EF Core files for net9

Add IsEnabled to ForCronTickerExpressions mapping and filter disabled
cron tickers in GetAllCronTickerExpressions. These files are excluded
from git sync and need manual updates per target framework.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Sync changes from main to net9 (#637)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#640)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#643)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#646)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#649)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#653)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#655)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#660)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#662)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#664)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#667)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#671)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Fix test project versions and PR workflow on net9 branch

- Add tests/Directory.Build.props with net9 TargetFramework and DotNetVersion
- Replace hardcoded versions with $(DotNetVersion) in test csproj files
- Add missing Microsoft.AspNetCore.TestHost package for DashboardPathBaseTests
- Add EF Core test project to PR workflow build and test steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Sync changes from main to net9 (#674)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#678)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Sync changes from main to net9 (#679)

* Updated for the net10 support

* update to release version

* added release for net9

* added pattern to skip commits using comments on commit for cherry pick merge between branches

* remove unecessary build command

* fixed the sync

* updated cherry detections

* try merge based on commit

* Fixed the json options to be isolated (#375)

* Fix/schedulerbackground (#376)

* Fixed the scheduler background to Task.Delay since the Peridic Timer were skipping ticks on short interval with seconds.

* small refactor

* fixed the mixd up delete ticker

* beta version 17 release (#382)

* Feature/improvements (#386)

* Made improvements and new feature: request by default not using GZIP compression

* Added timezone dashboard support and other fix on features.

* Fixed the seefing data

* Update README.md

* Update README.md

* updated beta version

* Feature/new improvements (#397)

* Added some new features on dashboard and on demand running directly without giving pressure of background scheduler

* Added dispatch interfaces

* added pagination on machine names

* Added test coverage

* added examples

* Added sample sqlite for samples

* Added csproj fules for Sample data

* fixed the locking of immediate run ticker in safe for runcondition

* fiexed indexing, the scheduler on high run and memory persistence

* fixed dashboard path merge

* small fixes on manager

* Added migration changes for examples

* releas of stable version

* Update README.md

* Release of stable version.

* Fix schema assignment logic and add SetSchema method (#415)

* Fix schema assignment logic in UseTickerQDbContext and add SetSchema method

* Refactor UseTickerQDbContext to simplify schema assignment logic

* Add support for enabling/disabling background services (#413)

* Checkpoint from VS Code for coding agent session

* Remove documentation on separating job queueing from job processing

* Update Directory.Build.props

* Added logo locally

* Fix retry logic and add unit tests for ExecuteTaskAsync (#429)

* Add retry logic improvements and unit tests for ExecuteTaskAsync

* Refactor retry test setup to use SetupRetryTestFixture for consistency

* fix: namespace conflicts for ModuleInitializer attribute in TickerQIncrementalSourceGenerator (#433)

* Update Directory.Build.props

* Update Directory.Build.props

* fix update ExecutionTime for CronTickerOccurrence (#461)

* feat: add configurable policy name for Host auth (#482)

* Initial plan

* Add configurable authorization policy name for Host mode

Co-authored-by: jods4 <3832820+jods4@users.noreply.github.com>

* Refactor: Make policy an optional parameter to WithHostAuthentication

Co-authored-by: jods4 <3832820+jods4@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jods4 <3832820+jods4@users.noreply.github.com>

* fix: Host auth. should not depend on Authorization header (#481)

Fixes #446

* [Feature] Remove ASP.NET Core dependency from TickerQ.Utilities to support all .NET platforms (#480)

* Removes ASP.NET Core dependency

Generalizes TickerQ to support non-ASP.NET Core environments like console applications and worker services.

Refactors extension methods to utilize IHost and IServiceProvider instead of IApplicationBuilder, decoupling the core library from ASP.NET Core.

Updates dependencies to use Microsoft.Extensions.* packages directly, using defined DotNetVersion.

* Resolves NuGet version mismatches

Ensures consistent NuGet package versions by defining the .NET package version as a variable in the Directory.Build.props file and using it across all project files.
This maintains consistency of dependency versions across all projects.

---------

Co-authored-by: EarlJester <shon3322@gmail.com>

* Fix missing await to AuthenticateHostAsync call (#494)

* Fix #497 (#503)

* Fix stackoverflow in JsonExampleGenerator (#519)

* Addded unit tests to cover existing JsonExampleGenerator functionality. Prevent infinite recursion in JsonExampleGenerator.

* Update src/TickerQ.Dashboard/Infrastructure/Dashboard/JsonExampleGenerator.cs

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

* Update src/TickerQ.Dashboard/TickerQ.Dashboard.csproj

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

* Update src/TickerQ.Dashboard/Infrastructure/Dashboard/JsonExampleGenerator.cs

good catch

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

---------

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

* Feature/tickerq hub (#508)

* Added persistence for the redis.

* TickerQHub integration

* added ready-to-deploy the new version

* pre-release

* fix references

* Add missing ASP.NET Core package references to TickerQ.SDK (#537)

Added package references for ASP.NET Core extension packages to resolve
CS0234 build errors when deploying. The SDK uses ASP.NET Core types
(IEndpointRouteBuilder, IEndpointFilter, Results, etc.) but was missing
the required package references.

Added packages:
- Microsoft.AspNetCore.Http.Abstractions
- Microsoft.AspNetCore.Http.Results
- Microsoft.AspNetCore.Routing
- Microsoft.AspNetCore.Mvc.Abstractions

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

Co-authored-by: Claude <noreply@anthropic.com>

* Claude/fix aspnetcore namespace xuvot (#540)

* Add missing ASP.NET Core package references to TickerQ.SDK

Added package references for ASP.NET Core extension packages to resolve
CS0234 build errors when deploying. The SDK uses ASP.NET Core types
(IEndpointRouteBuilder, IEndpointFilter, Results, etc.) but was missing
the required package references.

Added packages:
- Microsoft.AspNetCore.Http.Abstractions
- Microsoft.AspNetCore.Http.Results
- Microsoft.AspNetCore.Routing
- Microsoft.AspNetCore.Mvc.Abstractions

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

* Fix ASP.NET Core namespace errors by using Web SDK

Changed TickerQ.SDK to use Microsoft.NET.Sdk.Web with OutputType=Library
instead of adding individual ASP.NET Core packages. The individual packages
(Microsoft.AspNetCore.Http.Abstractions, etc.) are not published for .NET 5+
and are only available through the shared framework.

Using Sdk.Web with OutputType=Library provides access to ASP.NET Core types
(IEndpointRouteBuilder, IEndpointFilter, Results, etc.) while still
producing a class library output.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

---------

Co-authored-by: Claude <noreply@anthropic.com>

* Remove invalid ASP.NET Core package references (#541)

The ASP.NET Core packages (Microsoft.AspNetCore.Http.Abstractions, etc.)
don't exist as standalone NuGet packages for .NET 5+. They were discontinued
after .NET Core 2.x and are only available through the shared framework.

Since TickerQ.SDK already uses Microsoft.NET.Sdk.Web, these types are
automatically available through the implicit framework reference. The
explicit package references were causing NU1102 errors during restore.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

Co-authored-by: Claude <noreply@anthropic.com>

* Claude/remove invalid aspnetcore packages xuvot (#542)

* Remove invalid ASP.NET Core package references

The ASP.NET Core packages (Microsoft.AspNetCore.Http.Abstractions, etc.)
don't exist as standalone NuGet packages for .NET 5+. They were discontinued
after .NET Core 2.x and are only available through the shared framework.

Since TickerQ.SDK already uses Microsoft.NET.Sdk.Web, these types are
automatically available through the implicit framework reference. The
explicit package references were causing NU1102 errors during restore.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

* Fix TickerQ.Dashboard to use Web SDK for ASP.NET Core types

Changed TickerQ.Dashboard to use Microsoft.NET.Sdk.Web with OutputType=Library
to provide access to ASP.NET Core types (IApplicationBuilder, etc.) that are
required for the dashboard middleware and endpoints.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

* Fix TickerQ.RemoteExecutor to use Web SDK for ASP.NET Core types

Changed TickerQ.RemoteExecutor to use Microsoft.NET.Sdk.Web with OutputType=Library
to provide access to ASP.NET Core types (IEndpointRouteBuilder, IEndpointFilter, etc.)
that are required for the remote execution endpoints.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

---------

Co-authored-by: Claude <noreply@anthropic.com>

* Claude/remove invalid aspnetcore packages xuvot (#543)

* Remove invalid ASP.NET Core package references

The ASP.NET Core packages (Microsoft.AspNetCore.Http.Abstractions, etc.)
don't exist as standalone NuGet packages for .NET 5+. They were discontinued
after .NET Core 2.x and are only available through the shared framework.

Since TickerQ.SDK already uses Microsoft.NET.Sdk.Web, these types are
automatically available through the implicit framework reference. The
explicit package references were causing NU1102 errors during restore.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

* Fix TickerQ.Dashboard to use Web SDK for ASP.NET Core types

Changed TickerQ.Dashboard to use Microsoft.NET.Sdk.Web with OutputType=Library
to provide access to ASP.NET Core types (IApplicationBuilder, etc.) that are
required for the dashboard middleware and endpoints.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

* Fix TickerQ.RemoteExecutor to use Web SDK for ASP.NET Core types

Changed TickerQ.RemoteExecutor to use Microsoft.NET.Sdk.Web with OutputType=Library
to provide access to ASP.NET Core types (IEndpointRouteBuilder, IEndpointFilter, etc.)
that are required for the remote execution endpoints.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

* Fix IApplicationBuilder cast in Dashboard ServiceExtensions

The UseDashboardApplication callback receives an object (since TickerQ.Utilities
doesn't have ASP.NET Core dependencies), so we need to explicitly cast it to
IApplicationBuilder before calling extension methods on it.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

---------

Co-authored-by: Claude <noreply@anthropic.com>

* Enable NuGet package generation for Web SDK projects (#546)

Microsoft.NET.Sdk.Web sets IsPackable=false by default. Added explicit
IsPackable=true to TickerQ.SDK, TickerQ.RemoteExecutor, and TickerQ.Dashboard
to ensure NuGet packages are generated during build.

https://claude.ai/code/session_01XaNrB2LuCkTM6FRjxuUyt7

Co-authored-by: Claude <noreply@anthropic.com>

* Fix #511 and #517: null reference and orphaned cron ticker bugs (#549)

- #511: Add null check for CachedDelegate in RunContextFunctionAsync with
  a clear InvalidOperationException message instead of cryptic NRE
- #517: Fix orphaned cron tickers not being cleaned up on restart when
  their expression was edited via the dashboard. The dashboard update
  wipes InitIdentifier, causing the seeded-only cleanup to miss them.
  Now checks all cron tickers against TickerFunctionProvider.TickerFunctions
  to remove any whose function no longer exists in code. Applied to
  EF Core, In-Memory, and Redis persistence providers.

https://claude.ai/code/session_015JykuFsRPUz3q19jxYh7uy

Co-authored-by: Claude <noreply@anthropic.com>

* Fix thread-safety bugs, resource leaks, and scheduling issues (#550)

* Fix thread-safety bugs, resource leaks, and scheduling issues across core components

Addresses multiple concurrency bugs, resource disposal issues, and adds
performance optimizations across the scheduler, cancellation, caching,
and persistence layers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add tests for SafeCancellationTokenSource, CronScheduleCache DST handling, cancellation manager, and task scheduler

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix BindingFlags in SetProperty_Reinitializes test — ParametersToUpdate is public

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* added extension method for WebApplication

* pre-release

* fix and pre-release

* removed the not-needed reference from the Tickerq.

* fixed based on the tickerq architecture.

* update version

* fix and pre-release...

* release a stable version

* release a stable version along with the new libs for the hub.

* Fix .NET 9+ EF Core query failures caused by ReadOnlySpan array.Contains() (#574)

On .NET 9+, the compiler resolves array.Contains() to
MemoryExtensions.Contains() which uses ReadOnlySpan<T>. EF Core cannot
translate ReadOnlySpan<T> in LINQ expressions, causing
InvalidOperationException at runtime for all persistence queries that
filter by arrays of IDs.

Convert all Guid[] and string[] parameters to List<T> before use in
EF Core LINQ .Where() clauses so the compiler resolves to
List<T>.Contains() which EF Core can translate to SQL IN clauses.

Fixes #460, #462, #465, #466, #470

https://claude.ai/code/session_01JLAicT6LCaCbcR8aZhNri2

Co-authored-by: Claude <noreply@anthropic.com>

* fix the dashboard...

* Add comprehensive unit tests for core TickerQ components (#582)

New test files covering must-have areas that were previously untested:

- TickerExecutionTaskHandlerTests: success/failure/cancellation/terminate
  execution paths, parent-child execution with RunCondition logic,
  instrumentation logging, null delegate handling
- TickerQDispatcherTests: constructor guards, dispatch delegation,
  empty/null context handling, priority routing
- TerminateExecutionExceptionTests: all constructors, status defaults,
  inner exception preservation
- SoftSchedulerNotifyDebounceTests: notify callback, duplicate suppression,
  flush, dispose idempotency, zero-value handling
- RestartThrottleManagerTests: debounce coalescing, timer reset, dispose safety
- WorkItemTests: constructor validation, null guard, token handling
- PaginationResultTests: computed properties (TotalPages, HasPreviousPage,
  HasNextPage, FirstItemIndex, LastItemIndex), edge cases
- TickerResultTests: all internal constructors via reflection
- TickerHelperTests: serialization with/without GZip, round-trip,
  custom JSON options, complex objects

https://claude.ai/code/session_01AmFBuKfp4VyfuRCviW7meu

Co-authored-by: Claude <noreply@anthropic.com>

* added rickerq hub to readme file.

* Fix authorize against HostAuthorizationPolicy when set (#591)

* Add host policy support to AuthService and new unit tests

Refactored AuthenticateHostAsync to support host authorization
policies using IAuthorizationService. Added comprehensive
unit tests for host mode authentication, including policy
checks and multiple identity scenarios.

* Rename test method for clarity in AuthServiceHostTests

Renamed AuthenticateAsync_HostMode_WithMultipleIdentities_SecondaryIdentitySatisfiesPolicy_ReturnsSuccessWithSecondaryName to ...ReturnsSuccess for improved clarity and consistency. No changes to the test logic or implementation.

* Update AuthService to pass HttpContext as auth resource

Changed the resource parameter in AuthorizeAsync from null to the current HttpContext. This enables authorization policies to access request-specific context during evaluation, allowing for more flexible and informed authorization decisions.

* Added dashboard group name for the openapi (#585)

* fixed unit testing and issue of (#586)

* added the sample for worker service

* fix issue 522 (#587)

* Add JSON-serializable tracking fields to TimeTickerEntity (#609)

* Add JSON-serializable tracking fields to TimeTickerEntity

Added Status, LockHolder, LockedAt, ExecutedAt, ExceptionMessage, SkippedReason, ElapsedTime, RetryCount, and ParentId to TimeTickerEntity<TTicker>, all with [JsonInclude] for serialization. Enhances tracking and state visibility.

* Add custom JSON converter for TimeTickerEntity

Introduced TimeTickerEntityConverter for explicit serialization/deserialization. Registered converter in Redis provider. Removed redundant [JsonInclude] attributes. Improved property handling and query readability in persistence logic.

* revert that

* Delete samples/TickerQ.Sample.WebApi/Properties/launchSettings.json

* Delete src/TickerQ.Dashboard/Properties/launchSettings.json

* Delete src/TickerQ.RemoteExecutor/Properties/launchSettings.json

* Delete src/TickerQ.SDK/Properties/launchSettings.json

* Delete tests/TickerQ.Tests.WebApi/Properties/launchSettings.json

* Update .gitignore to remove Aspire project entries

Removed ignore rules for sample Aspire projects.

* revert

* revert

* Fix UseApplicationDbContext implementation #498 (#590)

* Fix UseApplicationDbContext implementation

* Remove unnecessary comment

* Move to async implementation

* Fix tests

* Add sample project for ApplicationDbContext usage

* added unit tests for more edge cases coverage. (#623)

* Improve branch sync workflow, migrate to slnx, and clean up repo (#628)

- Rewrite sync-version-branches.yml with .sync-exclude support, DotNetVersion fix, conflict auto-resolution, and PR comments when excluded files are modified
- Add .sync-exclude listing version-specific EF Core files and TickerQ.sln
- Migrate TickerQ.sln to TickerQ.slnx (XML-based, .NET 10+)
- Remove tracked SQLite db files (tickerq-console.db*)
- Update .gitignore: add *.db, tmpgen/, *.DotSettings.user

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix EF Core type mapping error for MySQL providers in MigrateDefinedCronTickers (#631)

Use List<string> instead of HashSet<string> for the allRegisteredFunctions
collection used in LINQ-to-SQL queries. Some EF Core providers (Devart MySQL,
Oracle MySQL Connector) don't assign type mappings to HashSet parameters in
IN expressions, causing InvalidOperationException on EF Core 10.

Fixes #621, #624

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Add IsEnabled property to CronTickerEntity with full-stack support (#632)

Add ability to enable/disable cron tickers without deleting them.
Disabled tickers are filtered out of the scheduling pipeline while
remaining visible in the dashboard. Includes toggle endpoint, dashboard
UI with confirmation dialog, and fixes flaky test caused by parallel
test execution sharing static TickerCancellationTokenManager state.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix TickerModelCustomizer not applying configured schema (#635)

TickerModelCustomizer was calling configurations without passing the
schema, causing migrations to always use the default "ticker" schema
instead of the one set via SetSchema(). Now resolves the schema from
TickerQEfCoreOptionBuilder, matching how TickerQDbContext does it.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Replace reflection-based JSON serialization in Dashboard with source … (#638)

* Replace reflection-based JSON serialization in Dashboard with source generation

Adds DashboardJsonSerializerContext with [JsonSerializable] for all Dashboard
types, replacing anonymous objects in endpoints with named DTOs. Wires up
TypeInfoResolverChain with source-gen context + DefaultJsonTypeInfoResolver
fallback for user-defined entity types. Fixes StringToByteArrayConverter to
use JsonDocument.Parse instead of reflection-based Deserialize<object>.
Supports projects using JsonSerializerIsReflectionEnabledByDefault=false.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix reflection-free scenarios: register Guid[] in source-gen context, configure ASP.NET HTTP JSON options, and avoid reflection in StringToByteArrayConverter

- Add Guid[] to DashboardJsonSerializerContext for minimal API endpoint parameter binding
- Register DashboardJsonSerializerContext in ConfigureHttpJsonOptions for app-level serialization
- Serialize JsonElement via options chain in StringToByteArrayConverter instead of TickerHelper.RequestJsonSerializerOptions
- Add TickerQ.Sample.Dashboard.ReflectionFree sample project

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Dashboard failing with old Startup.cs pattern (IHost not implementing IApplicationBuilder) (#641)

UseTickerQ() passes IHost to DashboardApplicationAction, but in the old
Host.CreateDefaultBuilder + Startup.cs pattern, IHost does not implement
IApplicationBuilder (only WebApplication does in the new pattern).

Fix: Register an IStartupFilter that injects Dashboard middleware into the
pipeline when the web host builds it. This works in both patterns:
- New pattern: UseDashboardDelegate applies directly (IHost is IApplicationBuilder),
  and sets MiddlewareApplied flag to prevent IStartupFilter from duplicating.
- Old pattern: UseDashboardDelegate skips (IHost is not IApplicationBuilder),
  and IStartupFilter applies the middleware when the pipeline is built.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Relax abstractions version constraints and fix sync workflow version handling (#645)

- Add DotNetAbstractionsVersion property with open range [8.0.0,) to
  allow consumers to use newer Microsoft.Extensions.*Abstractions packages
- Update all csproj files to use $(DotNetAbstractionsVersion) for abstractions
- Fix sync workflow to handle any major version dynamically instead of
  hardcoded patterns (e.g. 10.x → 8.x now works correctly)
- Preserve DotNetAbstractionsVersion from target branch during sync

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Relax abstractions version constraints and fix sync workflow version handling (#647)

- Add DotNetAbstractionsVersion property with open range [8.0.0,) to
  allow consumers to use newer Microsoft.Extensions.*Abstractions packages
- Update all csproj files to use $(DotNetAbstractionsVersion) for abstractions
- Fix sync workflow to handle any major version dynamically instead of
  hardcoded patterns (e.g. 10.x → 8.x now works correctly)
- Preserve DotNetAbstractionsVersion from target branch during sync

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Eliminate inline scripts from Dashboard for CSP script-src 'self' support (#648)

Move all inline JavaScript to external files served via middleware,
allowing the Dashboard to work with strict Content-Security-Policy
headers that block 'unsafe-inline'.

- Extract Vite's preload script from embedded index.html at startup
  and serve it as __tickerq-preload.js (cached, before auth)
- Serve runtime config (window.TickerQConfig, window.__dynamic_base__)
  as __tickerq-config.js endpoint (dynamic, before auth)
- Replace inline <script> injection with external <script src="...">
  references in the HTML template
- Remove SanitizeForInlineScript (no longer needed for external files)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Dashboard BasePath not working with UsePathBase (#332) (#651)

Replace app.Map() with PathBase-aware routing middleware that strips the
PathBase prefix from basePath at request time, so the dashboard works
regardless of middleware ordering or whether the user includes the PathBase
prefix in SetBasePath(). Also fix CombinePathBase to detect when PathBase
already ends with basePath (inside a Map branch) to prevent doubled paths
in frontend URLs.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix design-time DbContext failure when TickerQEfCoreOptionBuilder is unavailable (#457) (#652)

Make OnModelCreating and TickerModelCustomizer null-safe by falling back
to Constants.DefaultSchema when the option builder service is not
resolvable (design-time migrations, integration tests, Aspire).

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix source generator namespace sanitization for assemblies with invalid C# identifier characters (#303) (#657)

Use RootNamespace build property when available, falling back to sanitized
assembly name (replacing dashes and other invalid characters with underscores).

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix empty request deserialization throwing JsonException (#463) (#658)

Add null/empty guard in ReadTickerRequest<T> to return default
instead of throwing when no request data is provided.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix dashboard date format to use browser locale (#581) (#663)

Replace hardcoded DD.MM.YYYY format with Intl.DateTimeFormat using
the browser's locale, so dates display in the user's preferred format.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix dashboard date format to use locale-independent YYYY-MM-DD (#666)

* Fix dashboard date format to use browser locale (#581)

Replace hardcoded DD.MM.YYYY format with Intl.DateTimeFormat using
the browser's locale, so dates display in the user's preferred format.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix dashboard date format to use consistent locale-independent YYYY-MM-DD format (#581)

Replace locale-dependent Intl.DateTimeFormat(undefined) with formatToParts
using en-CA locale for consistent YYYY-MM-DD HH:mm:ss display regardless
of the user's browser locale. Also fixes ChainJobsModal toLocaleDateString.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Add per-function concurrency control via maxConcurrency parameter (#670)

* Add per-function concurrency control via maxConcurrency attribute parameter (#458)

Adds a `maxConcurrency` parameter to `[TickerFunction]` that limits how many
instances of a specific function can execute concurrently. When set to 0 (default),
concurrency is unlimited (preserving backward compatibility). The limit is enforced
via a per-function SemaphoreSlim in the dispatcher, queuing excess work instead of
skipping it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add tests for per-function concurrency gate and dispatcher concurrency behavior

Tests cover:
- ConcurrencyGate: null for unlimited, semaphore creation, caching, independence
- Dispatcher: semaphore acquire/release, release on exception, independent
  semaphores per function, serialized execution with maxConcurrency=1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Apply concurrency gate to all QueueAsync call sites

Previously only TickerQDispatcher and FallbackBackgroundService used the
concurrency gate. This adds it to TickerQSchedulerBackgroundService (the
main scheduler loop) and SdkExecutionEndpoint (SDK remote execution).

Also moves ITickerFunctionConcurrencyGate to TickerQ.Utilities so the SDK
project can resolve it from DI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add scheduler concurrency gate integration tests

Verify that TickerQSchedulerBackgroundService correctly uses the
concurrency gate when queuing tasks: semaphore acquire/release on
success, release on exception, and no semaphore for unlimited functions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Centralize test project versions for cross-branch compatibility (#673)

* Centralize test project versions via Directory.Build.props

Replace hardcoded TargetFramework and package versions in test projects
with MSBuild variables (DotNetVersion), matching the pattern used by src
projects. This ensures version compatibility when backporting to v8/v9.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add EntityFrameworkCore test project to PR workflow

The pr.yaml workflow only built and ran TickerQ.Tests. Added
TickerQ.EntityFrameworkCore.Tests to both the build and test steps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix design-time DbContext tests failing due to EF Core GetService throw

EF Core's GetService<T>() extension throws InvalidOperationException
when the service is unresolvable, so the null-conditional (?.) from
#652 never executes. Use try-catch to fall back to DefaultSchema.
Also add EnableServiceProviderCaching(false) to prevent model cache
pollution across tests with the same DbContext type.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix AddStackExchangeRedis overriding EF Core persistence provider (#676)

* Fix AddStackExchangeRedis overriding EF Core persistence provider (#669)

Change Redis persistence registration to TryAddSingleton so EF Core's
AddSingleton takes precedence regardless of registration order. Move
in-memory provider registration after external providers as a
TryAddSingleton fallback. Add dedicated Redis test project with
registration precedence tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add functional tests for persistence provider CRUD via managers and DI

Exercise ITimeTickerManager, ICronTickerManager, and
ITickerPersistenceProvider end-to-end through in-memory, EF Core,
and EF Core + Redis configurations. Add InternalsVisibleTo for the
new test project.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add concurrency and locking tests for persistence providers

Test lock acquisition, optimistic concurrency, dead node recovery,
concurrent multi-node access, cron occurrence locking, and
per-function concurrency gate (serialized/parallel execution,
exception safety).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use atomic Lua scripts for Redis acquire/release/recovery operations

Replace all non-atomic read-check-write patterns with Redis Lua scripts
that execute atomically (single-threaded), eliminating TOCTOU race
conditions in multi-node deployments. This brings Redis provider parity
with EF Core's atomic ExecuteUpdateAsync + WHERE clause guarantees.

Three Lua scripts: AcquireScript (status/holder/updatedAt check + lock),
ReleaseScript (status/holder check + unlock), RecoverDeadNodeScript
(dead node holder match + reset to Idle).

10 methods updated: QueueTimeTickers, QueueTimedOutTimeTickers,
AcquireImmediateTimeTickersAsync, ReleaseAcquiredTimeTickers,
ReleaseDeadNodeTimeTickerResources, QueueCronTickerOccurrences,
QueueTimedOutCronTickerOccurrences, AcquireImmediateCronOccurrencesAsync,
ReleaseAcquiredCronTickerOccurrences, ReleaseDeadNodeOccurrenceResources.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Redis registration test to not require live Redis connection

The test was resolving the service provider which triggered an actual
Redis connection attempt. Changed to check the service descriptor
instead, which validates registration without needing a running server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Daniel Nordström <daniel.mauritzson@gmail.com>
Co-authored-by: Cédric Hulin <hulin.cedric@gmail.com>
Co-authored-by: Alex <58499431+AlexeyKhlebnikov@users.noreply.github.com>
Co-authored-by: jods <jods4@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jods4 <3832820+jods4@users.noreply.github.com>
Co-authored-by: EarlJester <111294669+EarlJester@users.noreply.github.com>
Co-authored-by: EarlJester <shon3322@gmail.com>
Co-authored-by: stevewoj <steve.wojciechowski@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Wojciech Wentland <wojciech.wentland@int.pl>
Co-authored-by: Ingmar Olmaru <48388318+Kedireng@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Arbër Maksuti <arbermaksuti01@gmail.com>
Co-authored-by: Daniel Nordström <daniel.mauritzson@gmail.com>
Co-authored-by: Cédric Hulin <hulin.cedric@gmail.com>
Co-authored-by: Alex <58499431+AlexeyKhlebnikov@users.noreply.github.com>
Co-authored-by: jods <jods4@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jods4 <3832820+jods4@users.noreply.github.com>
Co-authored-by: EarlJester <111294669+EarlJester@users.noreply.github.com>
Co-authored-by: EarlJester <shon3322@gmail.com>
Co-authored-by: stevewoj <steve.wojciechowski@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Wojciech Wentland <wojciech.wentland@int.pl>
Co-authored-by: Ingmar Olmaru <48388318+Kedireng@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated Automated PR net9 Target: net9 branch sync Branch synchronization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant