hyf

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

commit e57e0c9c5e586e4863cadf39c508c5c999b3950a
parent 3d7d5bab6c51ba409c386a8ecde9c5ae23148707
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 12:59:14 +0000

core: separate harvest age from record recency

Diffstat:
Asrc/hyf_core/domain/freshness.mojo | 29+++++++++++++++++++++++++++++
Mtests/test_domain.mojo | 16++++++++++++++++
2 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/hyf_core/domain/freshness.mojo b/src/hyf_core/domain/freshness.mojo @@ -0,0 +1,29 @@ + + +@fieldwise_init +struct Freshness(Copyable, Movable): + var record_age_minutes: Int + var harvest_age_minutes: Int + var verification_age_minutes: Int + + +def freshness( + record_age_minutes: Int, + harvest_age_minutes: Int, + verification_age_minutes: Int, +) raises -> Freshness: + if record_age_minutes < 0: + raise Error("record age must be non-negative") + if harvest_age_minutes < 0: + raise Error("harvest age must be non-negative") + if verification_age_minutes < 0: + raise Error("verification age must be non-negative") + return Freshness( + record_age_minutes=record_age_minutes, + harvest_age_minutes=harvest_age_minutes, + verification_age_minutes=verification_age_minutes, + ) + + +def record_recency_implies_harvest_age() -> Bool: + return False diff --git a/tests/test_domain.mojo b/tests/test_domain.mojo @@ -307,3 +307,19 @@ def test_local_time_ambiguity_and_window_boundaries() raises: assert_true(window_contains(20717, 20721, "exclusive", 20720)) with assert_raises(): _ = window_contains(1, 2, "half-open", 1) + + +from hyf_core.domain.freshness import ( + freshness, + record_recency_implies_harvest_age, +) + + +def test_freshness_separates_record_harvest_and_verification() raises: + var value = freshness(5, 240, 60) + assert_equal(value.record_age_minutes, 5) + assert_equal(value.harvest_age_minutes, 240) + assert_equal(value.verification_age_minutes, 60) + assert_true(not record_recency_implies_harvest_age()) + with assert_raises(): + _ = freshness(-1, 0, 0)