Skip to content

chore: sync main → dev#467

Merged
marc-romu merged 13 commits into
devfrom
main
May 17, 2026
Merged

chore: sync main → dev#467
marc-romu merged 13 commits into
devfrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Automated sync of direct commits to main (e.g., workflow or hash updates) into dev.

  • Source: main
  • Target: dev
  • Commits ahead: 6

This PR is kept open and reused on subsequent main updates.

marc-romu added 6 commits May 3, 2026 23:26
…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.)
@github-actions github-actions Bot requested a review from marc-romu as a code owner May 12, 2026 21:49
@devin-ai-integration devin-ai-integration Bot enabled auto-merge May 13, 2026 21:17
devin-ai-integration Bot and others added 7 commits May 14, 2026 00:20
* 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.
@marc-romu marc-romu merged commit 9e13e75 into dev May 17, 2026
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant