Skip to content

feat(providers): add GMI Cloud provider preset and partner listing - #1127

Merged
kevincodex1 merged 1 commit into
mainfrom
feat/gmi-cloud-provider
Oct 14, 2026
Merged

kevincodex1 merged 1 commit into
mainfrom
feat/gmi-cloud-provider

Conversation

@kevincodex1

@kevincodex1 kevincodex1 commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds GMI Cloud (https://www.gmicloud.ai/) as an OpenAI-compatible provider preset and as an official partner in the README. The matching OpenClaude change is Twigpine/openclaude#2279 (merged).

  • Provider gmicloud at https://api.gmi-serving.com/v1:
    • zero providers setup gmicloud --set-active; gmi-cloud, GMI Cloud and gmi resolve to the same preset.
    • The id matches the models.dev provider id (gmicloud), so the remote model catalog resolves without a mapping.
    • Reads GMI_API_KEY (the name in GMI's docs) and GMICLOUD_API_KEY (the name models.dev uses).
    • Defaults to Qwen/Qwen3.8-Max. The curated list is Qwen 3.8 Max and Qwen 3.8 Flash (GMI's partner models), then DeepSeek V4 Pro and DeepSeek V4 Flash (GMI's coding picks). All four are on GMI's live /v1/models.
  • Partner: GMI Cloud is added to the Partners table in README.md and README_ZH.md, with light and dark logos vendored under docs/assets/.
  • Docs: both READMEs get the GMI_API_KEY line and the setup command.

Small, catalog-only change: one preset line, one curated model list and tests. No transport or request code changes.

Verification

  • make fmt-check, go vet ./..., go test ./..., go run ./cmd/zero-release build, go run ./cmd/zero-release smoke, make vulncheck and git diff --check pass.
  • make lint-static reports only the 4 pre-existing staticcheck findings in files this PR does not touch.
  • New and updated tests:
    • descriptor contract (TestGMICloudDescriptor);
    • alias resolution (GMI Cloud, gmi-cloud, gmi);
    • catalog and transport ordering;
    • curated models;
    • the onboarding block.
  • Live, with a real GMI key (isolated HOME/XDG dirs, branch build):
    • zero providers add gmicloud --api-key-env GMI_API_KEY --set-active, then zero providers check gmicloud --connectivity: status: ok, connectivity: pass (200) on Qwen/Qwen3.8-Max.
    • zero exec --auto medium on a real read-then-write task (read notes.txt, write the secret word to answer.txt, reply DONE):
      • Qwen/Qwen3.8-Max: pass, 19 s;
      • Qwen/Qwen3.8-Flash: pass, 12 s.
    • With a dummy key, the connectivity check surfaces GMI's own 401 {"error":"Invalid API key"} with a clear next step.

Screenshots

Linked issue

None. Team-member provider and partner change through the internal development process.

Checklist

  • The linked issue already has the issue-approved label.
  • go build ./..., go vet ./..., and go test ./... pass locally.
  • gofmt clean.
  • Tests added/updated for the change (and run under -race where relevant).
  • UI changes include screenshots or a short recording where possible.

Summary by CodeRabbit

  • New Features
    • Added GMI Cloud as a provider option, with API-key setup instructions and a default model.
    • Added curated Qwen and DeepSeek models for GMI Cloud.
    • Added GMI Cloud to the partner listings in the English and Chinese documentation.

Register GMI Cloud (https://api.gmi-serving.com/v1) as an
OpenAI-compatible catalog provider and add it to the README Partners
section.

- The catalog id `gmicloud` matches the models.dev provider id, so the
  remote model catalog resolves without a mapping. `gmi-cloud`,
  `GMI Cloud` and `gmi` resolve to it.
- Reads GMI_API_KEY (the name in GMI's docs) and GMICLOUD_API_KEY (the
  name models.dev uses).
- Defaults to Qwen/Qwen3.8-Max. The curated list is Qwen 3.8 Max and
  Flash (GMI's partner models), then DeepSeek V4 Pro and Flash. All four
  are served by GMI's /v1/models.
- README and README_ZH: key line, setup command, and the partner logo in
  light and dark variants under docs/assets/.

Verified live with a GMI key: `zero providers check gmicloud
--connectivity` passes, and `zero exec` completes a read-then-write task
on both Qwen 3.8 models.
@github-actions

Copy link
Copy Markdown
Contributor

Zero automated PR review

Verdict: No blockers found

Blockers

  • None found.

Validation

  • [pass] Diff hygiene: git diff --check
  • [pass] Tests: go test ./...
  • [pass] Build: go run ./cmd/zero-release build
  • [pass] Smoke build: go run ./cmd/zero-release smoke

Scope

Head: 89385852df63
Changed files (9): README.md, README_ZH.md, docs/assets/gmi-cloud-logo-dark.svg, docs/assets/gmi-cloud-logo.svg, internal/cli/provider_catalog_onboarding_test.go, internal/providercatalog/catalog.go, internal/providercatalog/catalog_test.go, internal/providermodelcatalog/catalog.go, internal/providermodelcatalog/catalog_test.go

This deterministic review checks validation status and basic diff hygiene. A human reviewer still owns product judgment and design quality.

@coderabbitai

coderabbitai Bot commented Oct 14, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: Twigpine/zero/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 49dc9d1b-0516-4571-8702-c11a7f808012
📥 Commits

Reviewing files that changed from the base of the PR and between ddc45f2 and 8938585.

⛔ Files ignored due to path filters: 2
  • docs/assets/gmi-cloud-logo-dark.svg is excluded by !**/*.svg
  • docs/assets/gmi-cloud-logo.svg is excluded by !**/*.svg
📒 Files selected for processing: 7
  • README.md
  • README_ZH.md
  • internal/cli/provider_catalog_onboarding_test.go
  • internal/providercatalog/catalog.go
  • internal/providercatalog/catalog_test.go
  • internal/providermodelcatalog/catalog.go
  • internal/providermodelcatalog/catalog_test.go

Included review availability: This review used your included allowance. Your plan provides up to 5 included reviews per hour; 3 remain after this review.

Walkthrough

The provider catalog now includes GMI Cloud, its supported credentials, and curated models. The onboarding test and English and Chinese README files also include GMI Cloud setup information.

Changes

GMI Cloud onboarding

Layer / File(s) Summary
Provider and model catalog
internal/providercatalog/catalog.go, internal/providercatalog/catalog_test.go, internal/providermodelcatalog/catalog.go, internal/providermodelcatalog/catalog_test.go
Adds GMI Cloud as an OpenAI-compatible provider with its endpoint, default model, credential environment variables, and lookup aliases. Adds curated Qwen and DeepSeek models and corresponding catalog tests.
Onboarding instructions
internal/cli/provider_catalog_onboarding_test.go, README.md, README_ZH.md
Adds GMI Cloud to onboarding expectations. Both README files list GMI_API_KEY and document the setup command. They also add GMI Cloud to the partner table.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: vasanthdev2004, euxaristia, anandh8x

Merge Risk: ⚪ Minimal · up to 89385

This adds a catalog-only GMI Cloud provider preset with documentation. No concrete defect was found, and the change is low risk to merge.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 5 files. (2 skipped: 2 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main changes: adding the GMI Cloud provider preset and partner listing.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 5 files. (2 skipped: 2 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@kevincodex1
kevincodex1 merged commit 1335ca6 into main Oct 14, 2026
13 checks passed
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