Skip to content

feat(byok): show qodercli custom providers in the model selector - #67

Merged
luoxuanzao merged 1 commit into
mainfrom
feat/personal-byok
Sep 16, 2026
Merged

luoxuanzao merged 1 commit into
mainfrom
feat/personal-byok

Conversation

@luoxuanzao

Copy link
Copy Markdown
Member

Summary

  • SDK-spawned qodercli sessions run the CLI in its "sdk" runtime mode, where custom providers configured in the CLI (self-defined base URLs) stay disabled unless QODER_SDK_CUSTOM_BASE_URL_BYOK=1 is present — so their models never reached Qoderian's model selector. The plugin now sets that opt-in for every spawned CLI at the shared spawn boundary (createCustomSpawnFunction), which covers the runtime probe, cold-start queries and every chat turn.
  • Models the CLI reports with source: "custom" now group under Custom in the selector, next to the existing BYOK (user) ones.
  • The catalog stays a plain live fetch: requesting custom providers by id (outerProviders) makes the server reject the live request with a 400, so that path is deliberately not used (comment added to prevent a regression).

Verification

  • npm run typecheck
  • npm run lint
  • npm run test — 165 suites / 3540 tests pass
  • npm run build
  • npm run release:check — Release 1.0.10 is ready
  • npm run audit:prod — 0 vulnerabilities
  • Tested affected qodercli behavior against a real CLI: with a CLI-configured custom provider (openai-compatible, local base URL) qodercli --list-models lists its models, a plain prompt routes through the provider, and the SDK session reports them as source: custom
  • Real-app check: the runtime probe in a live vault lists the custom models and the composer's selector shows them under Custom

Safety

  • No credentials, private vault content, internal URLs, or personal paths are included
  • User-visible changes are documented in CHANGELOG.md

Co-authored-by: QoderAI (Qwen 3.8 Max) qoder_ai@qoder.com

SDK-spawned sessions run qodercli in its "sdk" runtime mode, which keeps
CLI-configured custom providers (self-defined base URLs) disabled unless
QODER_SDK_CUSTOM_BASE_URL_BYOK=1 is present — so their models never reached
Qoderian. Opt every spawned CLI into that setting at the shared spawn
boundary and group models with source "custom" under Custom, next to the
existing BYOK ("user") ones. The catalog stays a plain live fetch: asking the
server for providers by id rejects it with a 400.

Co-authored-by: QoderAI (Qwen 3.8 Max) <qoder_ai@qoder.com>
@luoxuanzao
luoxuanzao merged commit 19b201b into main Sep 16, 2026
10 checks passed
@luoxuanzao
luoxuanzao deleted the feat/personal-byok branch September 16, 2026 08:50
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