feat(config): add ProviderKind::Gonka, GonkaNode schema, and vault key resolution#3618
Merged
feat(config): add ProviderKind::Gonka, GonkaNode schema, and vault key resolution#3618
Conversation
…y resolution Closes #3607, Closes #3608. Add ProviderKind::Gonka enum variant with GonkaNode { url, name } struct and two new ProviderEntry fields (gonka_nodes: Vec<GonkaNode>, gonka_chain_prefix: Option<String>) for declaring native Gonka inference providers. A validator enforces non-empty gonka_nodes with valid http(s):// URLs when type = "gonka". Wire ZEPH_GONKA_PRIVATE_KEY and ZEPH_GONKA_ADDRESS through the vault secret resolver into ResolvedSecrets; log INFO when both keys are present, WARN when only one is set. Address derivation happens in the provider factory (future PR). Also handle the exhaustive ProviderKind match in instructions.rs, provider_factory.rs (returns unimplemented error), and doctor.rs; add ZEPH_GONKA_* env vars to docker-compose.yml following the existing pattern.
bb256b3 to
6ac295c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ProviderKind::Gonkaenum variant andGonkaNode { url: String, name: Option<String> }struct per spec052-gonka-nativeProviderEntrywithgonka_nodes: Vec<GonkaNode>andgonka_chain_prefix: Option<String>(default"gonka"); validator enforces non-empty nodes with validhttp(s)://URLs for Gonka entriesZEPH_GONKA_PRIVATE_KEYandZEPH_GONKA_ADDRESSvault keys throughResolvedSecretsinzeph-configand resolves them at startup inzeph-core; partial-key presence logged as WARNProviderKind::Gonkaarm in all exhaustive matches (instructions.rs,provider_factory.rs— returns not-yet-implemented error,doctor.rs)ZEPH_GONKA_*vars todocker/docker-compose.ymlfollowing the existing${ZEPH_*:-}patternTest plan
cargo +nightly fmt --check— cleancargo clippy --workspace --features full -- -D warnings— 0 warningscargo nextest run --workspace --lib --bins— 8870 passed, 21 skippedproviders.rs: round-trip, validator (empty nodes, bad URL scheme, missing name), default/explicit chain prefix,effective_modelreturns""zeph-core/src/config.rs: both keys present, only private key set → address Nonefy lint docker/docker-compose.yml— 0 errors.local/testing/playbooks/gonka-config.md(8 scenarios)coverage-status.md(Status: Untested, pending live session)Closes #3607, Closes #3608.