Conversation
…dering in Anthropic models, clean up duplicate and placeholder model entries, and prevent self-referential aliases in Update-ProviderModels.ps1
- Change Provider / Model to a single dropdown auto-populated from ProviderModels.cs - Change SmartHopper Version to a dropdown auto-populated from git tags (>= v1.0.0) - Add tools/Update-ModelVerificationTemplate.ps1 and tools/Update-VersionVerificationTemplate.ps1 - Add github workflows to keep templates in sync
…roviderModels.ps1 with validation logic - Add check-provider-models.yml workflow to validate provider model defaults on PR - Add -ValidateOnly and -FailOnValidationErrors parameters to Update-ProviderModels.ps1 - Implement Test-ProviderModelValidation to check for missing default capabilities, pending capability definitions, and realtime models - Add composite default capability definitions (Text2Text, ToolChat, ReasoningChat, etc.)
marc-romu
approved these changes
May 13, 2026
* ci: dispatch PR checks after bot writes * chore(ci): update license headers * ci: stabilize bot-triggered required checks * chore(ci): update license headers * Revert "chore(ci): update license headers" This reverts commit 93e11fc. * Revert "ci: stabilize bot-triggered required checks" This reverts commit 2e1c230. * ci: normalize source files as utf8 * ci: ignore bom-only provider model changes * ci: add required check gate jobs --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* chore(models): update DeepSeek model list [ci skip] * chore(ci): update license headers * fix(models): keep DeepSeek first-party model IDs * fix(models): complete DeepSeek defaults * chore(ci): update license headers --------- Co-authored-by: marc-romu <49920661+marc-romu@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* chore(models): update OpenAI model list [ci skip] * fix(models): complete OpenAI registry review * chore(ci): update license headers * chore(ci): update license headers * Modify Default capabilities for OpenAI models Updated the Default capabilities for multiple models in OpenAIProviderModels.cs to include additional features. * Update model entries in CHANGELOG.md Updated OpenAI model entries and added new models across various providers in the changelog. --------- Co-authored-by: marc-romu <49920661+marc-romu@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* chore(models): update Anthropic model list [ci skip] * fix(models): keep Anthropic first-party IDs * chore(ci): update license headers * chore(ci): update license headers * Update Default capabilities for Anthropic models * Fix Anthropic model name in CHANGELOG.md Updated Anthropic model defaults in the changelog. --------- Co-authored-by: marc-romu <49920661+marc-romu@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix(ci): detect 'already_exists' milestone error code from GitHub API
The release-promotion and manage-milestones workflows caught
milestone-create errors using e.message.includes('already exists'),
but GitHub returns the validation error code as 'already_exists'
(underscore). The catch never matched, so the workflow failed when
promoting to a stage whose milestone had been created earlier
(see run 25953798871, promoting 1.4.2-beta -> 1.4.2-rc).
Match the actual response: check status 422 and the regex
/already[_ ]exists/ to keep backwards compatibility with older
Octokit message formats.
* fix(ci): pr-milestone handle 'already_exists' + paginate milestones
- listMilestones returned the first 30 milestones only, so existing
versions like 2.0.0-alpha were missed and the job tried to create
them again, triggering a 422 'already_exists' validation error.
- Paginate via github.paginate(..., per_page: 100) so we walk the
full milestone list before deciding to create.
- If creation still races with another job, treat the 422
'already_exists' response as recoverable: re-list the milestones
and pick up the existing one instead of failing the workflow.
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…uled run (#480) The scheduled `chore-update-provider-models` workflow was failing for OpenAI, MistralAI and OpenRouter with a generic 'Process completed with exit code 1' and no further detail in the run log. The provider files were rewritten on disk during the run (e.g. '[OpenAI] Wrote 86 model(s) to OpenAIProviderModels.cs') but then the matrix job failed, no PR was created, and the auto-discovered models were discarded. Root cause: Update-ProviderModels.ps1 called `Write-Error` under `$ErrorActionPreference = 'Stop'`, which threw a terminating exception. The fetch-models action wrapper caught that exception, wrote the message to $env:GITHUB_OUTPUT only (never to the host), and exited 1. The actual validation reason — usually that newly auto-inserted models from OpenRouter arrived with empty metadata and mapped to `AICapability.None` — was never visible. Changes: - Update-ProviderModels.ps1: replace `Write-Error` in the validation block with one `Write-Host '::error ...'` annotation per validation issue, then `exit 9` deterministically when -FailOnValidationErrors is set. Issues now show up in the run log without being obscured by a thrown exception, and the JSON report on stdout is preserved so callers can read structured details. - .github/actions/ai/fetch-models/action.yml: set `$ErrorActionPreference = 'Stop'` in the wrapper, inspect `$LASTEXITCODE` after invoking the script, and surface both the script's exit code and any catch-block exception via `Write-Host '::error::...'` before populating GITHUB_OUTPUT and exiting. The structured report is still emitted on non-zero exit so downstream steps can inspect validation details. - .github/workflows/chore-update-provider-models.yml: set `fail-on-validation-errors: false` for the scheduled run so a PR is always opened for the maintainer to review, add a 'Compute validation summary' step that turns the report's validation block into Markdown, and inject that block into both the run summary and the PR body. The PR-level `check-provider-models.yml` job still enforces validation as a required check before merge. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add early abort when merging dev-stage PRs to main to prevent creating GitHub releases for development versions. All subsequent steps (release notes generation, release creation, template updates) are now conditional on the dev check.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated sync of direct commits to
main(e.g., workflow or hash updates) intodev.maindevThis PR is kept open and reused on subsequent
mainupdates.