Introduces IChatClientAccessor and related implementations for workspace-based chat client resolution. Refactors AbpAIOptions and AbpAIWorkspaceOptions, moving workspace configuration logic and service key generation to AbpAIWorkspaceOptions. Updates AbpAIModule to use new accessors and configuration structure, and adds ChatClientAccessor and NullChatClientAccessor classes for dependency injection. Improves separation of concerns and prepares for more flexible workspace management.
Removed ChatClientWithSystemMessage and its extension, consolidating system message logic into user-extensible patterns. Renamed ChatClientNameAttribute to WorkspaceNameAttribute and restricted its usage to classes. Added ConfigureDefault to WorkspaceConfigurationDictionary for easier default workspace setup. Updated documentation to reflect these changes and clarify configuration patterns.
Added 'wwwroot' to the list of web content folders in AbpEmbeddedFileProvider to address resource detection issues, following a workaround for a known .NET 10 RC 1 issue.
Adds a temporary fix for a known issue with Microsoft.Extensions.FileProviders.Embedded in .NET 10 RC1, ensuring correct resource name extraction for web content folders. See https://github.com/dotnet/aspnetcore/issues/63719 for details.
Simplified the logic for mapping extra properties by removing redundant reference checks and always invoking MapExtraProperties with appropriate defaults. Updated related tests and removed unnecessary [MapExtraProperties] attributes from sample mappers.
Introduces the InboxProcessorRetryBackoffFactor option to allow configuration of the initial retry delay for the inbox processor when using the RetryLater failure policy. Updates documentation and logic to use this factor for exponential backoff, providing more flexibility in handling event retries.
Introduces a ProviderName property to IRepository and related base classes, requiring repositories to specify their provider via constructor. Adds provider constants for EF Core, MemoryDb, and MongoDB, and updates repository implementations and tests accordingly. Also refactors EntityName to a public property and renames WithEntityName extension to SetEntityName.