Skip to content

Conversation

@USerik
Copy link
Contributor

@USerik USerik commented Jan 20, 2026

Description

Fixes incorrect provider ID mapping for "z.ai coding plan" in opencode-provider.

The provider identifier was incorrectly set to 'z-ai' instead of the correct 'zai-coding-plan', which would cause model resolution failures when users selected the z.ai coding plan provider.

Changes

  • Changed 'z.ai coding plan': 'z-ai' to 'z.ai coding plan': 'zai-coding-plan' in apps/server/src/providers/opencode-provider.ts
  • Added comprehensive unit tests for parseProvidersOutput function

Context

This is a rebased version of #512, rechecked against v0.13.0rc as requested by @stefandevo.

Testing

  • Added 22 unit tests covering:
    • Provider parsing with correct ID mapping
    • ANSI escape sequence handling
    • Authentication status detection
    • Edge cases and error scenarios
  • All tests pass ✅

Summary by CodeRabbit

  • Improvements

    • Updated provider identifier mapping for z.ai coding plan to enhance authentication accuracy and improve provider recognition within the system.
  • Tests

    • Added comprehensive unit tests for provider parsing, validating provider name mappings, authentication method detection, ANSI escape sequence handling, and edge case scenarios.

✏️ Tip: You can customize this high-level summary in your review settings.

devkeruse and others added 2 commits January 20, 2026 15:16
The model mapping for 'z.ai coding plan' was incorrectly pointing to 'z-ai'
instead of 'zai-coding-plan', which would cause model resolution failures
when users selected the z.ai coding plan provider.

This fix ensures the correct model identifier is used for z.ai coding plan,
aligning with the expected model naming convention.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add comprehensive unit tests for the parseProvidersOutput private method
in OpencodeProvider. This addresses PR feedback requesting test coverage
for the z.ai coding plan mapping fix.

Test coverage (22 tests):
- Critical fix validation: z.ai coding plan vs z.ai distinction
- Provider name mapping: all 12 providers with case-insensitive handling
- Duplicate aliases: copilot, bedrock, lmstudio variants
- Authentication methods: oauth, api_key detection
- ANSI escape sequences: color code removal
- Edge cases: malformed input, whitespace, newlines
- Real-world CLI output: box characters, decorations

All tests passing. Ensures regression protection for provider parsing.
@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

Updates the OpenCode provider ID mapping from 'z-ai' to 'zai-coding-plan' for the 'z.ai coding plan' provider, and adds a comprehensive unit test suite for the OpencodeProvider.parseProvidersOutput method covering provider mappings, authentication methods, and edge cases.

Changes

Cohort / File(s) Summary
Provider ID Mapping Update
apps/server/src/providers/opencode-provider.ts
Changed provider ID mapping for 'z.ai coding plan' from 'z-ai' to 'zai-coding-plan' in auth list parsing configuration.
Test Suite Expansion
apps/server/tests/unit/providers/opencode-provider.test.ts
Added 313 lines of comprehensive unit tests for parseProvidersOutput method, covering provider name mappings across 12 providers, authentication method detection, ANSI escape sequence handling, duplicate alias handling, and extensive edge cases (empty output, malformed lines, whitespace variations, special characters, real-world CLI output).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A mapping hops from z-ai to zai,
With tests that validate every reply,
Twelve providers dance in patterns so neat,
Edge cases squashed, the coverage complete! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly describes the main change: fixing the provider ID mapping for 'z.ai coding plan' from 'z-ai' to 'zai-coding-plan' in the OpenCode provider.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @USerik, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves a critical issue within the opencode-provider where the "z.ai coding plan" was assigned an incorrect internal identifier, causing failures when users attempted to utilize this specific model. Beyond the direct fix, the PR significantly bolsters the reliability of provider parsing by introducing extensive unit tests that cover a wide array of scenarios, ensuring accurate identification and authentication status for all supported providers.

Highlights

  • Provider ID Mapping Correction: Corrected the provider ID mapping for "z.ai coding plan" from "z-ai" to "zai-coding-plan" in opencode-provider.ts to resolve model resolution failures.
  • Enhanced Unit Test Coverage: Introduced a comprehensive suite of 22 new unit tests for the parseProvidersOutput function, validating correct provider ID mapping, authentication method detection, ANSI escape sequence handling, and various edge cases.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively addresses the incorrect provider ID mapping for "z.ai coding plan" by changing it from 'z-ai' to 'zai-coding-plan'. This fix is crucial for preventing model resolution failures. The addition of comprehensive unit tests for the parseProvidersOutput function is highly commendable. The tests cover a wide array of scenarios, including critical fix validation, various provider name mappings, authentication methods, ANSI escape sequence handling, and edge cases, significantly improving the robustness and reliability of the provider parsing logic. The thoroughness of the new tests provides strong confidence in the correctness of the fix and the overall stability of the OpencodeProvider.

@stefandevo stefandevo merged commit 47a6033 into AutoMaker-Org:v0.13.0rc Jan 20, 2026
7 checks passed
@USerik USerik deleted the fix/zai-coding-plan-mapping branch January 22, 2026 12:58
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.

3 participants