Skip to content

feat(hub): let people add custom model providers and models - #54

Merged
TheGreatAxios merged 6 commits into
mainfrom
cl-11917-a-custom-providers-data
Nov 2, 2026
Merged

TheGreatAxios merged 6 commits into
mainfrom
cl-11917-a-custom-providers-data

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

What changed

Slice (a) of CL-11917: data and hub logic. The UI comes in slice (b), and efforts and sampling in slice (c).

  • A workspace can add, edit and remove custom providers. Each one has an API type (OpenAI-compatible chat completions, OpenAI responses or Anthropic messages), a base URL, and a key or Keyless, plus its models. Keyless stores a placeholder credential that is never shown or logged.
  • Catalog providers, credentials and model providers are written through Interchange's native routes, called as the person. Interchange pushes the source updates. Each key sits on a native provider for its own origin, and changing the base URL always creates a fresh connection.
  • The model directory resolves shipped and custom providers together, so profiles can bind roles to custom models. Saving settings checks only the profile in use, and settings never probe custom connections on read.
  • Migration 0036_custom_model_provider. The client has methods for the new routes. A remove or edit from another workspace returns 404. Native 4xx refusals pass through with their code.

How it was verified

  • test/e2e/custom-provider.test.ts runs on a throwaway Postgres. It adds a provider and its models, binds them in a profile, checks that the install resolves them, edits the base URL, adds a keyless provider and removes everything. It passed twice.
  • bun run test (79 pass), lint, format and typecheck pass.
  • An independent review found no blockers, and its findings are fixed: a remove no longer reports failure after it has already worked, native refusals keep their code, and custom entries are listed only when the person can see the connection.

Refs CL-11917

@linear-code

linear-code Bot commented Nov 1, 2026

Copy link
Copy Markdown

CL-11917

@TheGreatAxios
TheGreatAxios force-pushed the cl-11917-a-custom-providers-data branch from a42b451 to 3b8fa8d Compare November 1, 2026 21:54
@TheGreatAxios
TheGreatAxios marked this pull request as ready for review November 1, 2026 23:23
@corbits-triage

corbits-triage Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Triage: Unsure

Asking a maintainer about:

  • changes sensitive paths: schema: apps/hub/src/db/migrations/0036_custom_model_provider.sql, schema: apps/hub/src/db/migrations/meta/0036_snapshot.json, schema: apps/hub/src/db/migrations/meta/_journal.json

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • Conventions: added code matches a code pattern
  • Invented fallbacks: added code matches a code pattern

@corbits-triage
corbits-triage Bot dismissed their stale review November 2, 2026 00:39

Nothing triage asked to change still fails, so this request no longer stands.

* feat(web): add custom providers and models in Settings

Refs CL-11917

* fix(web): remove nested ternaries and invented fallbacks flagged by triage

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • Conventions: added code matches a code pattern

@corbits-triage
corbits-triage Bot dismissed their stale review November 2, 2026 01:09

Nothing triage asked to change still fails, so this request no longer stands.

@TheGreatAxios
TheGreatAxios added this pull request to the merge queue Nov 2, 2026
Merged via the queue into main with commit 88edc32 Nov 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant