mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-16 14:32:34 +00:00
fix(telemetry): persist first accounted fallback route
This commit is contained in:
parent
cb7f6bbb2e
commit
d14006ead2
2 changed files with 64 additions and 0 deletions
|
|
@ -272,6 +272,43 @@ class TestSessionLifecycle:
|
|||
session = db.get_session("s1")
|
||||
assert session["model"] == "openai/gpt-5.4"
|
||||
|
||||
def test_first_accounted_fallback_replaces_requested_primary_route(self, db):
|
||||
"""First successful fallback usage must persist one coherent route pair."""
|
||||
db.create_session(session_id="s1", source="cli", model="gpt-5.6-sol")
|
||||
|
||||
db.update_token_counts(
|
||||
"s1",
|
||||
input_tokens=10,
|
||||
output_tokens=5,
|
||||
model="glm-5.2",
|
||||
billing_provider="custom:zai",
|
||||
billing_base_url="https://api.z.ai/api/coding/paas/v4/",
|
||||
api_call_count=1,
|
||||
)
|
||||
|
||||
session = db.get_session("s1")
|
||||
assert session["model"] == "glm-5.2"
|
||||
assert session["billing_provider"] == "custom:zai"
|
||||
assert session["billing_base_url"] == "https://api.z.ai/api/coding/paas/v4/"
|
||||
assert session["api_call_count"] == 1
|
||||
|
||||
def test_accounted_primary_route_is_not_rewritten_by_later_fallback(self, db):
|
||||
"""A mixed-provider session keeps its first accounted route in the legacy row."""
|
||||
db.create_session(session_id="s1", source="cli", model="gpt-5.6-sol")
|
||||
db.update_token_counts(
|
||||
"s1", input_tokens=10, output_tokens=5, model="gpt-5.6-sol",
|
||||
billing_provider="openai-codex", api_call_count=1,
|
||||
)
|
||||
db.update_token_counts(
|
||||
"s1", input_tokens=10, output_tokens=5, model="glm-5.2",
|
||||
billing_provider="custom:zai", api_call_count=1,
|
||||
)
|
||||
|
||||
session = db.get_session("s1")
|
||||
assert session["model"] == "gpt-5.6-sol"
|
||||
assert session["billing_provider"] == "openai-codex"
|
||||
assert session["api_call_count"] == 2
|
||||
|
||||
def test_update_token_counts_preserves_existing_model(self, db):
|
||||
db.create_session(session_id="s1", source="cli", model="anthropic/claude-opus-4.6")
|
||||
db.update_token_counts("s1", input_tokens=10, output_tokens=5, model="openai/gpt-5.4")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue