fix(kimi): surface K2.7 Code in native picker (#46309)

This commit is contained in:
Teknium
2026-06-14 14:01:03 -07:00
committed by GitHub
parent bff78a34dc
commit 2a14e8957d
3 changed files with 52 additions and 12 deletions
@@ -22,6 +22,7 @@ from unittest.mock import patch
from hermes_cli.models import (
_MODELS_DEV_PREFERRED,
_PROVIDER_MODELS,
_merge_with_models_dev,
provider_model_ids,
)
@@ -96,6 +97,46 @@ class TestProviderModelIdsPreferred:
assert "claude-opus-4-7" in out
assert "kimi-k2.6" in out
def test_kimi_coding_offline_catalog_includes_k2_7_code(self):
"""Native Kimi users must see the newest Code model without live catalog help."""
assert "kimi-coding" not in _MODELS_DEV_PREFERRED
with patch("agent.models_dev.list_agentic_models", return_value=[]):
out = provider_model_ids("kimi-coding")
assert "kimi-k2.7-code" in out
def test_kimi_coding_live_catalog_does_not_hide_curated_k2_7_code(self):
"""Kimi /models can lag inference; live results must not replace curated."""
with (
patch(
"hermes_cli.auth.resolve_api_key_provider_credentials",
return_value={"api_key": "sk-test", "base_url": "https://api.moonshot.ai/v1"},
),
patch("providers.base.ProviderProfile.fetch_models", return_value=["kimi-k2.6"]),
):
out = provider_model_ids("kimi-coding")
assert out[:2] == ["kimi-k2.7-code", "kimi-k2.6"]
def test_kimi_setup_flow_uses_same_coding_plan_catalog(self):
"""The setup wizard must not carry a stale duplicate Kimi model list."""
from hermes_cli.model_setup_flows import _model_flow_kimi
captured = {}
def fake_select(model_list, **_kwargs):
captured["models"] = model_list
return None
with (
patch("hermes_cli.main._prompt_api_key", return_value=("sk-kimi-test", False)),
patch("hermes_cli.auth._prompt_model_selection", side_effect=fake_select),
patch("hermes_cli.config.get_env_value", return_value=""),
patch("hermes_cli.config.save_env_value"),
):
_model_flow_kimi({}, current_model="")
assert captured["models"] == _PROVIDER_MODELS["kimi-coding"]
assert captured["models"][0] == "kimi-k2.7-code"
class TestOpenRouterAndNousUnchanged:
"""Per Teknium: openrouter and nous are NEVER merged with models.dev."""