Skip to content

fix(ci): filter Kokoro release check to releases with general assets#26

Merged
StuBehan merged 1 commit intomainfrom
fix/kokoro-check-asset-filter
Apr 30, 2026
Merged

fix(ci): filter Kokoro release check to releases with general assets#26
StuBehan merged 1 commit intomainfrom
fix/kokoro-check-asset-filter

Conversation

@StuBehan
Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #24 that didn't make it through the squash merge. Tightens the upstream-release filter so the workflow doesn't treat Mandarin-variant-only releases as successors.

The bug

The filter as merged accepts any release whose tag starts with `model-files-v`:

```yaml
--jq '[.[] | select(.tag_name | startswith("model-files-v"))][0].tag_name'
```

That matches `model-files-v1.1`, but v1.1 ships only `kokoro-v1.1-zh.onnx` and `voices-v1.1-zh.bin` — a Mandarin-focused sibling, not a successor to v1.0. On the next scheduled run the workflow would open an upgrade issue, and bumping the URLs as suggested would silently swap the multilingual model for a Chinese-focused one.

The fix

Filter requires the release to contain BOTH `kokoro-vX.Y.onnx` AND `voices-vX.Y.bin` assets (no variant suffix) before treating it as the latest:

```yaml
--jq '
[
.[]
| select(.tag_name | startswith("model-files-v"))
| select([.assets[] | .name | test("^kokoro-v[0-9.]+\.onnx$")] | any)
| select([.assets[] | .name | test("^voices-v[0-9.]+\.bin$")] | any)
][0].tag_name
'
```

Verified locally — with this filter, the latest resolved tag is `model-files-v1.0` (the same as what's pinned), so the workflow reports up-to-date instead of opening a spurious issue.

Test plan

  • CI passes.
  • After merge: `gh workflow run check-kokoro-model.yml` from the Actions tab. Expect the "report up-to-date" step to log `stackvox is pinned to the latest upstream model release (model-files-v1.0).`
  • When upstream eventually publishes a real general v1.2+ release, the filter will pick it up automatically.

The original tag-name-only filter shipped in #24 would have flagged
`model-files-v1.1` as an upgrade candidate even though that release
ships only a Mandarin variant (`kokoro-v1.1-zh.onnx` /
`voices-v1.1-zh.bin`). Bumping engine.py URLs to it would silently
swap the multilingual model for a Chinese-focused one.

Tightens the jq filter to require both `kokoro-vX.Y.onnx` and
`voices-vX.Y.bin` assets to be present in the release before treating
it as a successor. With this in place the workflow currently resolves
`model-files-v1.0` (== pinned) and reports up-to-date, as it should.
A future general release (with non-suffixed asset names) will surface
correctly.

This was meant to land as a follow-up commit on #24 but the squash
merge captured only the first commit on that branch. Filing as its
own PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@StuBehan StuBehan merged commit 9aa60da into main Apr 30, 2026
9 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