From cf4238911e44c867dfbd40975ac08f577d81d581 Mon Sep 17 00:00:00 2001 From: serversdown Date: Mon, 22 Jun 2026 20:18:12 +0000 Subject: [PATCH] fix: replying to a thought no longer mislabels it 'surfaced' 'surfaced' means SHE raised it with Brian (chat lead / ping). record_response was also setting it on Brian's reply, so every thread he touched looked surfaced even though she never brought it to him. Replying now just stores the pending response; status stays honest (only her surfacing sets 'surfaced'). Co-Authored-By: Claude Opus 4.8 (1M context) --- lyra/thoughts.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lyra/thoughts.py b/lyra/thoughts.py index 688a3b8..d860ad7 100644 --- a/lyra/thoughts.py +++ b/lyra/thoughts.py @@ -289,12 +289,13 @@ def decay() -> int: def record_response(thread_id: int, text: str) -> bool: - """Brian's reply to a surfaced thread. Stored as pending feedback; next `think` - pass she'll react to it (the loop's feedback step).""" + """Brian's reply to a thread. Stored as pending feedback; next `think` pass she'll + react to it (the loop's feedback step). Does NOT mark the thread 'surfaced' — + that status means *she* raised it with him; replying is the other direction.""" text = (text or "").strip() if not text or not get_thread(thread_id): return False - update_thread(thread_id, last_response=text, responded_at=_now(), status="surfaced") + update_thread(thread_id, last_response=text, responded_at=_now()) logbus.log("info", "thought response", thread=thread_id, chars=len(text)) return True