hyf

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

commit 846e99abae25336a56e8a2e7533ff4393d7de5e9
parent 33c6a2e58e67c3ce36b1e68fe1bca3b5d84f399e
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 14:05:26 +0000

runtime: verify secret and telemetry redaction

Diffstat:
Asrc/hyf_runtime/redaction.mojo | 20++++++++++++++++++++
Mtests/test_journeys.mojo | 15+++++++++++++++
2 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/hyf_runtime/redaction.mojo b/src/hyf_runtime/redaction.mojo @@ -0,0 +1,20 @@ + + +comptime MAX_REDACTED_CHARS = 512 + + +def redact_diagnostic(value: String) -> String: + var replaced = String(value).replace("\n", "\\n") + replaced = replaced.replace("\r", "\\r") + if replaced.byte_length() > MAX_REDACTED_CHARS: + return String(replaced[byte=0:MAX_REDACTED_CHARS]) + "..." + return replaced^ + + +def contains_credential_marker(value: String) -> Bool: + var lowered = value.lower() + return ( + lowered.find("apikey_") >= 0 + or lowered.find("bearer ") >= 0 + or lowered.find("authorization:") >= 0 + ) diff --git a/tests/test_journeys.mojo b/tests/test_journeys.mojo @@ -113,3 +113,18 @@ def test_source_instruction_injection_is_data() raises: ) assert_equal(source.text, injected) assert_true(source_text_is_data_not_instruction()) + + +from hyf_runtime.redaction import ( + contains_credential_marker, + redact_diagnostic, +) +from hyf_stdio.errors import internal_error_message + + +def test_secret_and_telemetry_redaction() raises: + var redacted = redact_diagnostic("line1\nline2\rline3") + assert_true(redacted.find("\n") < 0) + assert_true(redacted.find("\\n") >= 0) + assert_true(not contains_credential_marker(internal_error_message())) + assert_true(contains_credential_marker("apikey_abc"))