Introduce AnonymousJobExecutionContext and switch anonymous job handler APIs to accept it (Func<AnonymousJobExecutionContext, CancellationToken, Task> / Action<AnonymousJobExecutionContext, CancellationToken>). Update AbpBackgroundJobOptions, IAnonymousJobHandlerRegistry, AnonymousJobHandlerRegistry and AnonymousJobExecutorAsyncBackgroundJob to use the new context and to obtain a cancellation token via ICancellationTokenProvider. Update all callsites (tests, demo module, sample job creator) and documentation to show registering/enqueuing anonymous handlers by name and explain Hangfire display behavior. Also add a .cursor hooks state file. The demo no longer skips enqueuing anonymous jobs for RabbitMQ in this change.
Updated documentation to specify that if a chat client is not configured for a workspace, the default workspace's chat client is returned, and null is only returned if neither is configured.
Replaces all references to 'authorization.md' with 'authorization/index.md' across documentation files to reflect the new file structure. This ensures all internal links to the authorization documentation remain valid after the file was moved and renamed.
The ReverseMap methods will map the destination type back to the source type, but the "source" object will be of type TDestination. In other words, the "TDestination source" object is copied to the "TSource destination" object.
Replaced the outdated GitHub link for 'AI Samples for .NET' with the official Microsoft Learn samples page in both Microsoft.Extensions.AI and Semantic Kernel documentation.
Updated the artificial intelligence documentation to clarify ABP Framework's AI integration approach, focusing on abstractions and workspaces using Microsoft's AI stacks. Simplified installation and usage instructions, provided clearer examples for Microsoft.Extensions.AI and Semantic Kernel, and improved explanations of workspaces and configuration. Removed redundant and verbose sections for better readability and maintainability.