Skip to content

feat(sync): add update-only Novita AI catalog sync - #9250

Merged
rekram1-node merged 2 commits into
devfrom
novita-catalog-sync
Oct 9, 2026
Merged

rekram1-node merged 2 commits into
devfrom
novita-catalog-sync

Conversation

@rekram1-node

@rekram1-node rekram1-node commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Minimal automation follow-up to the merged catalog audit in #9243. Adds an hourly novita-ai target to the existing sync runner rather than a separate workflow or a broad catalog rewrite.

  • Update existing chat models' prices, context/output limits, and context pricing tiers from GET https://api.novita.ai/openai/v1/models.
  • Preserve canonical base-model references, curated capabilities/reasoning controls, dates/descriptions, request overrides, optional pricing absent from the API, and leading source/wire comments.
  • Never delete entries: the account-scoped inventory omits working embedding/reranking routes. Existing non-chat entries also remain untouched if the API mislabels them.
  • New eligible models use separate manual-review PRs through the existing missing-model issue-fixer pipeline, which does not enable auto-merge. skipCreates: true keeps new models out of the update-only sync PRs. The sync does not fabricate canonical metadata or reasoning controls; ordinary existing price/limit updates use the normal auto-merge policy without any Novita-specific exception.
  • Skip the deferred Sao10K routes, known unadvertised/development aliases, non-chat rows, zero-limit placeholders, and unpriced rows.

No catalog data, model-ID loader changes, or shared auto-merge policy changes are included.

Authentication

  • CI uses the existing repository secret NOVITA_AI_API_KEY, forwarded by the hourly workflow.
  • Locally NOVITA_AI_MODELS_DEV_KEY takes precedence when set, otherwise the canonical CI variable is used.
  • Only the model-list endpoint is called; no paid inference/retirement probes are added.

Pricing and safety

  • Prefer explicit decimal USD/MTok fields; legacy integer fields are scaled by 10,000.
  • Preserve unreturned cache/audio/reasoning rates; zero optional fields do not invent new free-cache capabilities.
  • Translate the complete context price bands to cost.tiers; reject incomplete/duplicate tier boundaries, empty inventories, duplicate IDs, and malformed prices. Model IDs remain opaque nonempty strings; file-write safety is handled by the existing runner.
  • Keep factored provider files override-only. Missing curated reasoning controls go through the existing manual-review diagnostic, not an invented [] placeholder.

Sources

Validation

  • Focused provider/auto-merge/missing-model/schema/Ollama regression tests: 41 passed, 0 failed.
  • bun validate — passed.
  • Live bun models:sync novita-ai --dry-run --no-issues — 0 created, 0 updated, 0 removed, 84 unchanged; the four unlisted embedding/reranking entries were retained.
  • Runner integration verifies leading-header preservation, no new-model writes, no absent-model deletions, and an unchanged second run.
  • git diff --check — passed.
  • Package-wide tsc --noEmit remains blocked by existing errors in unrelated providers/tests and the unchanged shared metadata code; the new Novita files had no diagnostics in the last check.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Oct 9, 2026
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Oct 9, 2026
@rekram1-node
rekram1-node merged commit dcf06c8 into dev Oct 9, 2026
2 checks passed
@rekram1-node
rekram1-node deleted the novita-catalog-sync branch October 9, 2026 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewer: ready Automated review found no actionable items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant