commit b38e595d7d2641858b77db043929791162104a1d
parent 833296344231724ac46fe6f7b1c8fe6ed70d4fe5
Author: triesap <tyson@radroots.org>
Date: Fri, 19 Jun 2026 04:02:40 -0700
provider: guard max fallback taxonomy
- map unknown max transport failures to the public provider error reason
- keep transport boundary reason tokens out of business fallback taxonomy
- add stdio coverage for malformed max chat completion responses
- verify provider-adapter and stdio contract suites remain green
Diffstat:
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/src/hyf_provider/max_local.mojo b/src/hyf_provider/max_local.mojo
@@ -79,6 +79,10 @@ def max_local_query_rewrite_failure_from_reason(
return MaxLocalQueryRewriteFailure(
kind="transport", reason="connection_failed"
)
+ if reason == "unknown_transport":
+ return MaxLocalQueryRewriteFailure(
+ kind="provider", reason="provider_error"
+ )
if reason == "provider_non_2xx":
return MaxLocalQueryRewriteFailure(
kind="http_status", reason="provider_non_2xx"
diff --git a/tests/test_stdio_contract.mojo b/tests/test_stdio_contract.mojo
@@ -451,6 +451,12 @@ def test_business_fallback_reason_taxonomy_excludes_control_health_reason() rais
)
+def test_business_fallback_reason_taxonomy_excludes_transport_boundary_reason() raises:
+ assert_equal(
+ _business_fallback_reason_family("unknown_transport"), "undeclared"
+ )
+
+
def test_status_success() raises:
var response = run_hyf_stdio(
load_scenario_request_json("scenarios/status_ok.json")
@@ -1767,6 +1773,12 @@ def test_query_rewrite_falls_back_on_provider_timeout() raises:
)
+def test_query_rewrite_falls_back_on_unknown_transport_as_provider_error() raises:
+ _assert_query_rewrite_provider_fallback(
+ "query_rewrite_malformed_http", "provider_error", 15000
+ )
+
+
def test_query_rewrite_falls_back_when_provider_readiness_probe_times_out() raises:
_assert_query_rewrite_provider_fallback_with_requests(
"health_timeout", "timeout", 100, 1