fix: disambiguate colliding builtin model ids in configOptions - #175
Merged
william0wang merged 2 commits intoSep 11, 2026
Merged
Conversation
Two enabled builtin coding plans (Z.ai Coding Plan + Start Plan) both ship GLM-5.3. Bare modelId encoding advertised the same value twice, which crashes ACP clients that key on uniqueness (Paseo Command Center). Prefix colliding builtins the same way third-party models already are.
Collision-only prefixes advertised different id shapes depending on how many builtin coding plans were enabled. Builtins now use the same encoding as third-party models. Legacy bare modelIds still parse as the first enabled builtin.
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
session/newadvertised duplicate modelconfigOptionvalues when two enabled builtin coding plans shipped the same GLM ids.formatModelValueencodes builtins as the bare modelId so the dropdown stays clean. That collides when bothbuiltin:zai-coding-planandbuiltin:zai-start-planare enabled — both listGLM-5.3andGLM-5.3-Flash. ACP clients that key on uniqueness (Paseo Command Center:Duplicate Command Center contribution id: …:models:zcode:GLM-5.3) then refuse to start.Colliding builtins now use the same
providerId\modelIdencoding already used for third-party models, so both plans stay selectable. A single builtin is still the bare modelId.Test plan
pnpm exec vitest run tests/model-select-options.test.ts— fails before the fix (duplicateGLM-5.3), passes afterpnpm typecheck && pnpm lint && pnpm test(1141 tests)session/newagainst a machine with both Z.ai coding plans enabled returns four unique model values: