From 44ed8a902601cd37f8696163baa86335cb60cd44 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 17 Sep 2026 00:24:13 +0200 Subject: [PATCH] Give the oversize refusal its own loosening `D21` reverted the refusal to a failure envelope and had no weaker sibling. `D21L` keeps the response schema and drops the client's correlation key, which leaves a refusal the client cannot match to the request that earned it. It dies, and the suite's 52 entries and M0 are green. Co-Authored-By: Claude Opus 5 --- tools/eureka-cut10-mutations.psd1 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/eureka-cut10-mutations.psd1 b/tools/eureka-cut10-mutations.psd1 index ebe8dff..f7c1870 100644 --- a/tools/eureka-cut10-mutations.psd1 +++ b/tools/eureka-cut10-mutations.psd1 @@ -289,6 +289,14 @@ ) '@ } + @{ + Id = 'D21L' + Rule = 'It echoes the client''s own correlation key, so a refusal can be matched to the request that earned it.' + Test = 'serve::tests::an_answer_too_large_for_one_send_is_a_typed_refusal_that_reaches_the_client' + File = 'crates/huginn-daemon/src/serve.rs' + Old = ' encode_or_fail(message_id, operation, &refusal, runtime_id)' + New = ' encode_or_fail("response-too-large", operation, &refusal, runtime_id)' + } @{ Id = 'D22' Rule = 'The window the gate measures against is the window the hub carries: a smaller one sends nothing and says nothing.'