Skip to content

Refactor configuration-driven client factory resolution#271

Merged
kzu merged 1 commit intomainfrom
dev/refactor-client-factory-resolution
May 9, 2026
Merged

Refactor configuration-driven client factory resolution#271
kzu merged 1 commit intomainfrom
dev/refactor-client-factory-resolution

Conversation

@kzu
Copy link
Copy Markdown
Member

@kzu kzu commented May 9, 2026

Refactor configuration-driven client factory resolution

Bind client factories to configuration sections and resolve them through
IClientFactoryResolver and ClientFactoryResolver so configurable clients and
DI registrations are driven by section paths and service keys.

Validation:

  • dotnet build Extensions.AI.slnx
  • dotnet format whitespace -v:diag --exclude ~/.nuget
  • dotnet format style -v:diag --exclude ~/.nuget
  • dotnet test src\Tests\Tests.csproj --no-build --filter "FullyQualifiedName~ConfigurableClientTests"
  • dotnet test src\Tests\Tests.csproj --no-build --filter "FullyQualifiedName!~Devlooped.EndToEnd"

Known issue:

  • dnx --yes retest and the full test project currently fail because
    Devlooped.EndToEnd.GetText in src/Tests/EndToEnd.cs asserts
    GetChatClient("XAI") is not null for a config shape that does not register
    that chat client id.

@kzu kzu enabled auto-merge (rebase) May 9, 2026 03:53
@kzu kzu force-pushed the dev/refactor-client-factory-resolution branch from 8571185 to a0ebd03 Compare May 9, 2026 03:54
Bind client factories to configuration sections and resolve them through
IClientFactoryResolver and ClientFactoryResolver so configurable clients and
DI registrations are driven by section paths and service keys.

Validation:
- dotnet build Extensions.AI.slnx
- dotnet format whitespace -v:diag --exclude ~/.nuget
- dotnet format style -v:diag --exclude ~/.nuget
- dotnet test src\Tests\Tests.csproj --no-build --filter "FullyQualifiedName~ConfigurableClientTests"
- dotnet test src\Tests\Tests.csproj --no-build --filter "FullyQualifiedName!~Devlooped.EndToEnd"

Known issue:
- dnx --yes retest and the full test project currently fail because
  Devlooped.EndToEnd.GetText in src/Tests/EndToEnd.cs asserts
  GetChatClient("XAI") is not null for a config shape that does not register
  that chat client id.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@kzu kzu force-pushed the dev/refactor-client-factory-resolution branch from a0ebd03 to 59f2a00 Compare May 9, 2026 04:04
@kzu
Copy link
Copy Markdown
Member Author

kzu commented May 9, 2026

29 passed 29 passed 10 skipped

🧪 Details on Ubuntu 24.04.4 LTS

from retest v1.1.0 on .NET 10.0.7 with 💜 by @devlooped

@kzu kzu merged commit d4c79cf into main May 9, 2026
4 checks passed
@kzu kzu deleted the dev/refactor-client-factory-resolution branch May 9, 2026 04:06
@kzu kzu added the tech debt label May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant