Skip to content

refactor(llm): unify agent tool loop + built-in provider presets #593

refactor(llm): unify agent tool loop + built-in provider presets

refactor(llm): unify agent tool loop + built-in provider presets #593

Triggered via pull request September 12, 2026 04:01
Status Success
Total duration 4m 59s
Artifacts 2

pr.yml

on: pull_request
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

24 warnings
build (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-dotnet@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmRouteResolver.cs#L14
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmProviderCatalog.cs#L86
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmProviderCatalog.cs#L16
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmProviderCatalog.cs#L13
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmHistoryQueryService.cs#L133
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmHistoryQueryService.cs#L133
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (ubuntu-latest): TelegramSearchBot.LLM/Service/AI/LLM/Transports/OllamaTransport.cs#L9
The using directive for 'Microsoft.Extensions.Logging' appeared previously in this namespace
build (ubuntu-latest): TelegramSearchBot.Search/Model/SearchMessageDTO.cs#L13
Non-nullable property 'Search' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
build (ubuntu-latest): external/moder-update/src/Moder.Update/ProcessSpawner.cs#L46
This call site is reachable on all platforms. 'ProcessStartInfo.CreateNewProcessGroup' is supported on: 'windows'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1416)
build (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea, actions/setup-dotnet@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
build (windows-latest)
Unexpected input(s) 'file', valid inputs are ['base_sha', 'binary', 'codecov_yml_path', 'commit_parent', 'directory', 'disable_file_fixes', 'disable_search', 'disable_safe_directory', 'disable_telem', 'dry_run', 'env_vars', 'exclude', 'fail_ci_if_error', 'files', 'flags', 'force', 'git_service', 'gcov_args', 'gcov_executable', 'gcov_ignore', 'gcov_include', 'handle_no_reports_found', 'job_code', 'name', 'network_filter', 'network_prefix', 'os', 'override_branch', 'override_build', 'override_build_url', 'override_commit', 'override_pr', 'plugins', 'recurse_submodules', 'report_code', 'report_type', 'root_dir', 'run_command', 'skip_validation', 'slug', 'swift_project', 'token', 'url', 'use_legacy_upload_endpoint', 'use_oidc', 'use_pypi', 'verbose', 'version', 'working-directory']
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/LlmHistoryQueryService.cs#L133
The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/GeneralLLMService.cs#L351
Async-iterator 'GeneralLLMService.GenerateEmbeddingsAsync(string, string, ILlmEmbeddings, LLMChannel, LLMApiBinding, CancellationToken)' has one or more parameters of type 'CancellationToken' but none of them is decorated with the 'EnumeratorCancellation' attribute, so the cancellation token parameter from the generated 'IAsyncEnumerable<>.GetAsyncEnumerator' will be unconsumed
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/GeneralLLMService.cs#L347
Async-iterator 'GeneralLLMService.GenerateEmbeddingsAsync(string, string, ILlmEmbeddings, LLMChannel, CancellationToken)' has one or more parameters of type 'CancellationToken' but none of them is decorated with the 'EnumeratorCancellation' attribute, so the cancellation token parameter from the generated 'IAsyncEnumerable<>.GetAsyncEnumerator' will be unconsumed
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/GeneralLLMService.cs#L311
Async-iterator 'GeneralLLMService.AnalyzeImageAsync(string, long, string, ILlmVision, LLMChannel, LLMApiBinding, string, CancellationToken)' has one or more parameters of type 'CancellationToken' but none of them is decorated with the 'EnumeratorCancellation' attribute, so the cancellation token parameter from the generated 'IAsyncEnumerable<>.GetAsyncEnumerator' will be unconsumed
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/GeneralLLMService.cs#L305
Async-iterator 'GeneralLLMService.AnalyzeImageAsync(string, long, string, ILlmVision, LLMChannel, string, CancellationToken)' has one or more parameters of type 'CancellationToken' but none of them is decorated with the 'EnumeratorCancellation' attribute, so the cancellation token parameter from the generated 'IAsyncEnumerable<>.GetAsyncEnumerator' will be unconsumed
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/GeneralLLMService.cs#L299
Async-iterator 'GeneralLLMService.AnalyzeImageAsync(string, long, string, ILlmVision, LLMChannel, CancellationToken)' has one or more parameters of type 'CancellationToken' but none of them is decorated with the 'EnumeratorCancellation' attribute, so the cancellation token parameter from the generated 'IAsyncEnumerable<>.GetAsyncEnumerator' will be unconsumed
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/GeneralLLMService.cs#L116
Async-iterator 'GeneralLLMService.ExecAsync(Message, long, string, LLMChannel, CancellationToken)' has one or more parameters of type 'CancellationToken' but none of them is decorated with the 'EnumeratorCancellation' attribute, so the cancellation token parameter from the generated 'IAsyncEnumerable<>.GetAsyncEnumerator' will be unconsumed
build (windows-latest): TelegramSearchBot.LLM/Service/AI/LLM/Transports/OllamaTransport.cs#L9
The using directive for 'Microsoft.Extensions.Logging' appeared previously in this namespace
build (windows-latest): TelegramSearchBot.Search/Model/SearchMessageDTO.cs#L13
Non-nullable property 'Search' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
report
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/github-script@v7. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
test-results-ubuntu-latest
1.33 MB
sha256:e66e7b9e6cfadae4678ea06b0353abb4b6041778d850896b73d3dea49f5a698f
test-results-windows-latest
1.37 MB
sha256:346e7174d51a0115d9d6d6e56235830dc8391136f599118f7b7383d488476f95