Updated LogoComponent to use LOGO_URL_TOKEN and LOGO_APP_NAME_TOKEN for logo URL and app name, falling back to environment values if tokens are not provided. This improves flexibility and allows for easier customization of the logo and app name.
Relocated ITocGeneratorService and TocHeading to the Application.Contracts project, and TocGeneratorService to the Application project. This improves project structure by separating contracts and implementations from the web layer.
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.