feat(providers): add secret-safe embedding routes - #420
Conversation
Persist only canonical provider, model, endpoint, dimension, and vector-semantic options in embedding artifact identity. Rebind credentials at runtime and reject incompatible provider substitutions across compiler, MCP, skills, and Wiki loaders. Verified with the full unit tier (2568 passed), focused provider/runtime tests (183 passed), and pre-commit.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4f9df76683
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| separators=(",", ":"), | ||
| default=repr, | ||
| ) | ||
| route = resolve_embedding_artifact_route(artifact_config) |
There was a problem hiding this comment.
Keep prebuilt vector manifests loadable
When the QA registry is generated with prebuilt_dir, scripts/build_qa_index.py still writes vector entries with only embedding_model and embedding_dimension in config, relying on the loader's previous fallback to QAConfig.embedding_provider. This new unconditional call to resolve_embedding_artifact_route({ ... }) raises ValueError: invalid inference provider: '' for those manifests, so hybrid prebuilt QA datasets lose/fail their vector view at startup; either preserve the legacy provider fallback here or update the prebuilt manifest writer before requiring a provider.
Useful? React with 👍 / 👎.
Infer the provider only for legacy prebuilt manifests that predate route identity, and persist provider and endpoint metadata in newly generated QA manifests.
Summary
Introduce the first half of #419: one secret-safe inference route and embedding artifact compatibility boundary for local Hugging Face and BYO OpenAI-compatible providers.
GitHub Models was retired by GitHub on 2026-07-30. This PR explicitly rejects its former aliases instead of publishing an unavailable route.
Changes
Type of Change
Testing
Tests pass locally
Added new tests for the changes
full unit tier: 2570 passed, 10 skipped, 183 deselected
focused provider/compiler/MCP/vector suite: 118 passed
pre-commit run --all-files
Checklist
Part of #419 and #415. The follow-up PR adds CLI, provider-aware dependency checks, Wiki generation routes, doctor probes, and user documentation.