Skip to content

feat(wizard): add "Gonka (gateway)" branch to zeph init #3604

@bug-ops

Description

@bug-ops

Part of epic #3602.

Scope

Add a new menu option to zeph init's LLM provider selector that pre-fills a [[llm.providers]] type = \"compatible\" name = \"gonkagate\" entry.

Files to modify

  • src/init/llm.rs:45 — extend the providers array with \"Gonka (decentralized — via GonkaGate)\" at index 5; add a new match arm that:
    • Sets state.provider = Some(ProviderKind::Compatible)
    • Sets state.compatible_name = Some(\"gonkagate\".into())
    • Sets state.base_url = Some(\"https://api.gonkagate.com/v1\".into())
    • Offers a model picker (default Qwen/Qwen3-235B-A22B-Instruct-2507-FP8, plus custom... escape hatch)
    • When vault_backend != \"age\", prompts for the gp-... API key via Password
    • When vault_backend == \"age\", prints instructions to run zeph vault set ZEPH_COMPATIBLE_GONKAGATE_API_KEY gp-... after wizard completion
  • Update the secrets-instructions printer to mention the gonkagate key.

Acceptance

  • Running cargo run --features full -- --init and selecting the new option produces a valid [[llm.providers]] block.
  • cargo +nightly fmt --check, cargo clippy --workspace --features full -- -D warnings, cargo nextest run --workspace --features full --lib --bins all green.
  • Existing wizard tests in src/init/ updated; one new unit test asserts the rendered TOML matches expectations.
  • CHANGELOG.md [Unreleased] updated.

Depends on

None.

Size

S (~1.5h)

Metadata

Metadata

Assignees

Labels

P2High value, medium complexityenhancementNew feature or requestfeatureNew functionalitysize/SSmall PR (11-50 lines)uxUser experience

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions