{"name":"main","updatestamp":"2026-10-11T04:50:33.358919Z","head_commit":{"commitid":"7e257d5d47e53c35e94c16d0b6dabb15e2d0eb07","message":"chore(deps): update step-security/harden-runner action to v2.22.1 (#214)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[step-security/harden-runner](https://redirect.github.com/step-security/harden-runner)\n| action | patch | `v2.22.0` → `v2.22.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>step-security/harden-runner\n(step-security/harden-runner)</summary>\n\n###\n[`v2.22.1`](https://redirect.github.com/step-security/harden-runner/releases/tag/v2.22.1)\n\n[Compare\nSource](https://redirect.github.com/step-security/harden-runner/compare/v2.22.0...v2.22.1)\n\n#### What's Changed\n\n- Fixed security rules not initializing on GHES self-hosted runners\n- Fixed GHES connectivity in block mode by implicitly allowing the GHES\nhostname\n\n**Full Changelog**:\n<https://github.com/step-security/harden-runner/compare/v2.22.0...v2.22.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n🚦 **Automerge**: Enabled.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update\nagain.\n\n---\n\n- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/netresearch/t3x-cowriter).\n\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->","timestamp":"2026-10-11T04:49:48Z","ci_passed":true,"author":{"service":"github","username":"netresearch-project-bot[bot]","name":"netresearch-project-bot[bot]"},"branch":"main","totals":{"files":62,"lines":4461,"hits":4291,"misses":170,"partials":0,"coverage":96.18,"branches":383,"methods":415,"sessions":37,"complexity":882.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0},"state":"complete","parent":"40e0048d26518d4100da08902d1e93a73fcc914a","report":{"totals":{"files":62,"lines":4461,"hits":4291,"misses":170,"partials":0,"coverage":96.18,"branches":383,"methods":415,"messages":0,"sessions":37,"complexity":882.0,"complexity_total":0.0,"complexity_ratio":0,"diff":[0,0,0,0,0,null,0,0,0,0,null,null,0]},"files":[{"name":"Classes/Controller/AjaxController.php","totals":{"files":0,"lines":692,"hits":670,"misses":22,"partials":0,"coverage":96.82,"branches":0,"methods":35,"messages":0,"sessions":0,"complexity":170.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/RateLimitedControllerTrait.php","totals":{"files":0,"lines":22,"hits":20,"misses":2,"partials":0,"coverage":90.9,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":8.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/TemplateController.php","totals":{"files":0,"lines":30,"hits":30,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":6.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/ToolController.php","totals":{"files":0,"lines":66,"hits":53,"misses":13,"partials":0,"coverage":80.3,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":10.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/TranslationController.php","totals":{"files":0,"lines":123,"hits":120,"misses":3,"partials":0,"coverage":97.56,"branches":0,"methods":6,"messages":0,"sessions":0,"complexity":28.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/VisionController.php","totals":{"files":0,"lines":51,"hits":51,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":7.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/Backend/StatusController.php","totals":{"files":0,"lines":23,"hits":13,"misses":10,"partials":0,"coverage":56.52,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":7.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/CompleteRequest.php","totals":{"files":0,"lines":33,"hits":33,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":5,"messages":0,"sessions":0,"complexity":16.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/CompleteResponse.php","totals":{"files":0,"lines":65,"hits":65,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":6,"messages":0,"sessions":0,"complexity":12.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/ContextRequest.php","totals":{"files":0,"lines":17,"hits":17,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":11.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/ExecuteTaskRequest.php","totals":{"files":0,"lines":90,"hits":86,"misses":4,"partials":0,"coverage":95.55,"branches":0,"methods":8,"messages":0,"sessions":0,"complexity":52.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/PageSearchResult.php","totals":{"files":0,"lines":13,"hits":0,"misses":13,"partials":0,"coverage":0.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":3.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/ToolRequest.php","totals":{"files":0,"lines":25,"hits":25,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":5,"messages":0,"sessions":0,"complexity":12.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/TranslationRequest.php","totals":{"files":0,"lines":23,"hits":23,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":5,"messages":0,"sessions":0,"complexity":14.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/UsageData.php","totals":{"files":0,"lines":17,"hits":17,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":3.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/VisionRequest.php","totals":{"files":0,"lines":12,"hits":12,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":6.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/EventListener/InjectAjaxUrlsListener.php","totals":{"files":0,"lines":74,"hits":74,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":7.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/ContextAssemblyService.php","totals":{"files":0,"lines":147,"hits":145,"misses":2,"partials":0,"coverage":98.63,"branches":0,"methods":17,"messages":0,"sessions":0,"complexity":71.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/DiagnosticService.php","totals":{"files":0,"lines":123,"hits":123,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":13,"messages":0,"sessions":0,"complexity":45.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/LlmErrorClassifier.php","totals":{"files":0,"lines":12,"hits":12,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":9.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/RateLimitResult.php","totals":{"files":0,"lines":10,"hits":10,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":3.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/RateLimiterService.php","totals":{"files":0,"lines":58,"hits":58,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":6,"messages":0,"sessions":0,"complexity":12.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Dto/DiagnosticCheck.php","totals":{"files":0,"lines":2,"hits":2,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":1.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Dto/DiagnosticResult.php","totals":{"files":0,"lines":10,"hits":10,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":6.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/CallerSource.php","totals":{"files":0,"lines":5,"hits":0,"misses":5,"partials":0,"coverage":0.0,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":1.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/FieldSuggestionController.php","totals":{"files":0,"lines":74,"hits":73,"misses":1,"partials":0,"coverage":98.64,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":20.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/FieldSuggestionRequest.php","totals":{"files":0,"lines":28,"hits":28,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":7,"messages":0,"sessions":0,"complexity":17.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/EventListener/RegisterFieldSuggestionControlsListener.php","totals":{"files":0,"lines":30,"hits":30,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":10.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Form/FieldControl/FieldSuggestionsControl.php","totals":{"files":0,"lines":43,"hits":43,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":14.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/FieldKind.php","totals":{"files":0,"lines":32,"hits":32,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":12.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/FieldProfile.php","totals":{"files":0,"lines":17,"hits":17,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":12.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/FieldSuggestionConfiguration.php","totals":{"files":0,"lines":19,"hits":19,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":9.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/FieldSuggestionException.php","totals":{"files":0,"lines":12,"hits":12,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":6,"messages":0,"sessions":0,"complexity":6.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/FieldSuggestionService.php","totals":{"files":0,"lines":63,"hits":63,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":7,"messages":0,"sessions":0,"complexity":13.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/RecordContext.php","totals":{"files":0,"lines":5,"hits":5,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":4.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/RecordContextReader.php","totals":{"files":0,"lines":120,"hits":120,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":15,"messages":0,"sessions":0,"complexity":55.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/RecordFinder.php","totals":{"files":0,"lines":72,"hits":71,"misses":1,"partials":0,"coverage":98.61,"branches":0,"methods":8,"messages":0,"sessions":0,"complexity":28.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/SlugSuggestionBuilder.php","totals":{"files":0,"lines":15,"hits":14,"misses":1,"partials":0,"coverage":93.33,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":4.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/SuggestionNormalizer.php","totals":{"files":0,"lines":41,"hits":41,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":20.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/Tca.php","totals":{"files":0,"lines":22,"hits":22,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":7,"messages":0,"sessions":0,"complexity":16.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/FieldSuggestion/UntrustedDataFence.php","totals":{"files":0,"lines":8,"hits":8,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":2.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/BackendLabels.php","totals":{"files":0,"lines":10,"hits":0,"misses":10,"partials":0,"coverage":0.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":5.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/ConfigurationSelector.php","totals":{"files":0,"lines":38,"hits":38,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":4,"messages":0,"sessions":0,"complexity":19.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Dto/ConfigurationSelection.php","totals":{"files":0,"lines":6,"hits":0,"misses":6,"partials":0,"coverage":0.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":3.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/EventStream/ServerSentEventEmitter.php","totals":{"files":0,"lines":20,"hits":4,"misses":16,"partials":0,"coverage":20.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":7.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Style/StyleInstruction.php","totals":{"files":0,"lines":2,"hits":0,"misses":2,"partials":0,"coverage":0.0,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":1.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Style/StyleInstructionBuilder.php","totals":{"files":0,"lines":32,"hits":32,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":5,"messages":0,"sessions":0,"complexity":11.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Style/TargetLengthResolver.php","totals":{"files":0,"lines":14,"hits":13,"misses":1,"partials":0,"coverage":92.85,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":13.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Controller/SavedPromptController.php","totals":{"files":0,"lines":66,"hits":51,"misses":15,"partials":0,"coverage":77.27,"branches":0,"methods":6,"messages":0,"sessions":0,"complexity":19.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/SavePromptRequest.php","totals":{"files":0,"lines":14,"hits":14,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":8.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Domain/DTO/SavedPrompt.php","totals":{"files":0,"lines":11,"hits":0,"misses":11,"partials":0,"coverage":0.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":2.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Prompt/PromptSharingConfiguration.php","totals":{"files":0,"lines":7,"hits":7,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":2,"messages":0,"sessions":0,"complexity":4.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Prompt/SavedPromptRepository.php","totals":{"files":0,"lines":87,"hits":87,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":7,"messages":0,"sessions":0,"complexity":19.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/Tool/UnattendedToolRunner.php","totals":{"files":0,"lines":19,"hits":19,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":3,"messages":0,"sessions":0,"complexity":5.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Classes/Service/StructuredAnswer.php","totals":{"files":0,"lines":9,"hits":9,"misses":0,"partials":0,"coverage":100.0,"branches":0,"methods":1,"messages":0,"sessions":0,"complexity":4.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/Ckeditor/AIService.js","totals":{"files":0,"lines":227,"hits":222,"misses":5,"partials":0,"coverage":97.79,"branches":89,"methods":21,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/Ckeditor/CowriterDialog.js","totals":{"files":0,"lines":1052,"hits":1037,"misses":15,"partials":0,"coverage":98.57,"branches":166,"methods":76,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/Ckeditor/HtmlSanitizer.js","totals":{"files":0,"lines":57,"hits":56,"misses":1,"partials":0,"coverage":98.24,"branches":16,"methods":4,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/Ckeditor/Labels.js","totals":{"files":0,"lines":23,"hits":23,"misses":0,"partials":0,"coverage":100.0,"branches":8,"methods":3,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/Ckeditor/UrlLoader.js","totals":{"files":0,"lines":20,"hits":20,"misses":0,"partials":0,"coverage":100.0,"branches":8,"methods":1,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/Ckeditor/cowriter.js","totals":{"files":0,"lines":231,"hits":223,"misses":8,"partials":0,"coverage":96.53,"branches":65,"methods":21,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}},{"name":"Resources/Public/JavaScript/FormEngine/FieldSuggestions.js","totals":{"files":0,"lines":172,"hits":169,"misses":3,"partials":0,"coverage":98.25,"branches":31,"methods":23,"messages":0,"sessions":0,"complexity":0.0,"complexity_total":0.0,"complexity_ratio":0,"diff":0}}]}}}