From a103708a08f22916515b13358c42b7b964abb9e8 Mon Sep 17 00:00:00 2001 From: kami Date: Sun, 2 Aug 2026 02:16:45 +0400 Subject: [PATCH] memeval: five minutes again, now that the gate keeps a turn from waiting The budget was cut to 60s because a five-minute evaluation held the single llama-server slot, and a voice turn arriving mid-evaluation waited behind it. That collision is now solved where it belongs: the background client yields the slot while a turn is in flight. With the gate in place the short budget only truncates a Thinking model mid-synthesis, which costs an observation and saves no latency on any real turn. Kami's call, 2026-08-02. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01BFaeSbLMEVG5ey8tejU3y2 --- cmd/mavend/memoryeval.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/mavend/memoryeval.go b/cmd/mavend/memoryeval.go index 45016bc..a87666b 100644 --- a/cmd/mavend/memoryeval.go +++ b/cmd/mavend/memoryeval.go @@ -29,11 +29,11 @@ import ( // minutes of evaluation was five minutes of a mute assistant. // // The background client now yields the slot while a turn is in flight, so the -// collision is handled where it belongs and this is a prompt budget again. -// Sixty seconds is long enough for a Thinking model here, and an evaluation cut -// off costs nothing, because it is retried at the next interval. Raise it if -// observations start truncating. -const memoryEvalTimeout = 60 * time.Second +// collision is solved where it belongs and this is a prompt budget again. Five +// minutes is safe once more, and it is back: 60s truncated a Thinking model +// mid-synthesis, which costs an observation for no latency saved. The gate, not +// this number, is what keeps a voice turn from waiting. +const memoryEvalTimeout = 5 * time.Minute // memoryEvalWorker — ticker + evaluator. type memoryEvalWorker struct {