Skip to content

Generated with Hive: Add xAI as first-class model provider with direct XAI_API_KEY authentication - #5227

Merged
tomsmith8 merged 3 commits into
masterfrom
feature/add-xai-model-provider
Sep 2, 2026
Merged

Generated with Hive: Add xAI as first-class model provider with direct XAI_API_KEY authentication#5227
tomsmith8 merged 3 commits into
masterfrom
feature/add-xai-model-provider

Conversation

@tomsmith8

Copy link
Copy Markdown
Collaborator

Generated with Hive: Add xAI as first-class model provider with direct XAI_API_KEY authentication

@tomsmith8 tomsmith8 added the user label Sep 2, 2026 — with Hive Chat PM
@tomsmith8
tomsmith8 enabled auto-merge (squash) September 2, 2026 14:25
@tomsmith8
tomsmith8 merged commit c497b89 into master Sep 2, 2026
8 checks passed
Evanfeenstra added a commit that referenced this pull request Sep 2, 2026
aieo 0.1.35 ships xai as a first-class provider, so hive no longer
needs the guards added in #5227 that assumed it didn't:

- Bump aieo to ^0.1.35.
- Remove the runCanvasAgent throw for xai/* models; Grok now flows
  through the same generic aieo provider branch as everything else.
- Remove the client-side XAI filter in CanvasAgentSettingsPopover; the
  server-side key filter on /api/llm-models already covers availability.
- Delete the test that pinned the throw.
- Add models-aieo-parity.test.ts: models.ts can't import aieo (it's
  bundled client-side), so this pins its provider->env-var table to
  aieo's PROVIDERS and key lookup to prevent drift.
- Rewrite stale comments claiming aieo lacks xai or pointing at
  nonexistent "feature notes".

The Bifrost bypasses in the agent route and task-workflow stay: the
remaining blocker is that the VK provider allow-list and the swarm
gateways have no xai provider configured, not aieo.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Evanfeenstra added a commit that referenced this pull request Sep 2, 2026
PR #5227 added `SAFE_NAME_RE` that rejects `/` in `LlmModel.name`. OpenRouter ids are `vendor/model` and are stored in `name` for `provider=OTHER`, so admin save/edit of those rows now 400s.

This keeps the slash block for first-class providers (the xAI key-confusion case) and allows `/`-delimited segments only when `provider` is `OTHER`. `providerLabel` still cannot contain slashes (it is the first path segment used for API-key resolution).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant