hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

commit 23555ddef0959a68a6588c96753c2b68fb0aba5f
parent 5ca022a2b048407ff83d95744bfb3e385399aca4
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 13:57:52 +0000

core: handle semantic-ranking failure without changing feasibility

Diffstat:
Asrc/hyf_application/match_outage.mojo | 19+++++++++++++++++++
Mtests/test_application.mojo | 18++++++++++++++++++
2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/src/hyf_application/match_outage.mojo b/src/hyf_application/match_outage.mojo @@ -0,0 +1,19 @@ + + +@fieldwise_init +struct RankingOutcome(Copyable, Movable): + var feasibility: String + var advisory: String + var reason: String + + +def ranking_outage(feasibility: String, reason: String) raises -> RankingOutcome: + if String(reason).strip().byte_length() == 0: + raise Error("ranking outage requires a reason") + return RankingOutcome( + feasibility=String(feasibility), advisory="degraded", reason=String(reason) + ) + + +def outage_changes_feasibility() -> Bool: + return False diff --git a/tests/test_application.mojo b/tests/test_application.mojo @@ -712,3 +712,21 @@ def test_evidence_backed_match_explanations() raises: assert_true(not explanation_reveals_private_source()) assert_true(not explanation_claims_reservation()) assert_true(not explanation_claims_global_availability()) + + +from hyf_application.match_outage import ( + RankingOutcome, + outage_changes_feasibility, + ranking_outage, +) + + +def test_semantic_ranking_failure_preserves_feasibility() raises: + var outcome = ranking_outage("eligible", "provider_degraded") + assert_equal(outcome.feasibility, "eligible") + assert_equal(outcome.advisory, "degraded") + var conditional = ranking_outage("conditional", "provider_unavailable") + assert_equal(conditional.feasibility, "conditional") + assert_true(not outage_changes_feasibility()) + with assert_raises(): + _ = ranking_outage("eligible", "")