{"repo":"NousResearch/hermes-agent","public_id":"16825","display_label":"MiniMax-M2.7 pricing and billing route fixes","summary":"These issues and PRs address missing pricing entries and billing routes for MiniMax-M2.7 across the minimax and minimax-cn providers, which caused costs to appear as zero or unknown. Multiple fixes and regression tests were added to resolve this gap.","subsystem":"agent","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":17423},"resolution":{"state":"resolved","by":"pr-17423"},"freshness":{"state":"verified","last_verified_at":"2026-04-29T11:56:51+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":16825,"pr_number":17423,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":16825,"title":"bug: MiniMax M2.7 / minimax-cn provider cost always 0 — missing billing route and pricing entry in usage_pricing.py","url":null,"state":"closed"},{"kind":"pr","number":16828,"title":"fix: add minimax-cn billing route to resolve cost_status='unknown' (#16825)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"860ff445f","number":0},{"kind":"commit","value":"860ff445f6704cfea0fde0e617506e778c76e5b0","number":0},{"kind":"pr","value":"#16825","number":16825}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":16854,"title":"fix(usage_pricing): add minimax-cn billing route and regression tests","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#16828","number":16828},{"kind":"pr","value":"#16825","number":16825}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":17408,"title":"fix(usage_pricing): add MiniMax-M2.7 pricing for minimax and minimax-cn providers","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"33d6995cd","number":0},{"kind":"pr","value":"#17423","number":17423},{"kind":"pr","value":"#15216","number":15216},{"kind":"pr","value":"#10318","number":10318},{"kind":"pr","value":"#16911","number":16911}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":17423,"title":"fix(usage_pricing): add MiniMax-M2.7 pricing for minimax and minimax-cn","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/usage_pricing.py"],"fix_hunks":[{"file":"agent/usage_pricing.py","hunks":["@@ -359,6 +359,25 @@ class CostResult:\n         source_url=\"https://aws.amazon.com/bedrock/pricing/\",\n         pricing_version=\"bedrock-pricing-2026-04\",\n     ),\n+    # MiniMax\n+    (\n+        \"minimax\",\n+        \"minimax-m2.7\",\n+    ): PricingEntry(\n+        input_cost_per_million=Decimal(\"0.30\"),\n+        output_cost_per_million=Decimal(\"1.20\"),\n+        source=\"official_docs_snapshot\",\n+        pricing_version=\"minimax-pricing-2026-04\",\n+    ),\n+    (\n+        \"minimax-cn\",\n+        \"minimax-m2.7\",\n+    ): PricingEntry(\n+        input_cost_per_million=Decimal(\"0.30\"),\n+        output_cost_per_million=Decimal(\"1.20\"),\n+        source=\"official_docs_snapshot\",\n+        pricing_version=\"minimax-pricing-2026-04\",\n+    ),\n }\n \n ","@@ -400,6 +419,8 @@ def resolve_billing_route(\n         return BillingRoute(provider=\"anthropic\", model=model.split(\"/\")[-1], base_url=base_url or \"\", billing_mode=\"official_docs_snapshot\")\n     if provider_name == \"openai\":\n         return BillingRoute(provider=\"openai\", model=model.split(\"/\")[-1], base_url=base_url or \"\", billing_mode=\"official_docs_snapshot\")\n+    if provider_name in {\"minimax\", \"minimax-cn\"}:\n+        return BillingRoute(provider=provider_name, model=model.split(\"/\")[-1], base_url=base_url or \"\", billing_mode=\"official_docs_snapshot\")\n     if provider_name in {\"custom\", \"local\"} or (base and \"localhost\" in base):\n         return BillingRoute(provider=provider_name or \"custom\", model=model, base_url=base_url or \"\", billing_mode=\"unknown\")\n     return BillingRoute(provider=provider_name or \"unknown\", model=model.split(\"/\")[-1] if model else \"\", base_url=base_url or \"\", billing_mode=\"unknown\")\n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}