From 895c7e2dc0f50fc11ecd420dc8d88db423aa5777 Mon Sep 17 00:00:00 2001 From: Tristan Simas Date: Fri, 30 Oct 2026 21:07:44 -0400 Subject: [PATCH] Consume existing thread status when subscribing a conversation --- src/toad/transcript_publication.py | 2 ++ src/toad/widgets/conversation.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/toad/transcript_publication.py b/src/toad/transcript_publication.py index e5f125bd0..18bbe3567 100644 --- a/src/toad/transcript_publication.py +++ b/src/toad/transcript_publication.py @@ -616,6 +616,8 @@ def observe_thread(self, owner: TranscriptPresentation) -> None: view, view.app.coordination_access, view.thread_observed ) ) + # The shared status may already be published before this view subscribes. + view.thread_observed() @property def reports_coverage(self): diff --git a/src/toad/widgets/conversation.py b/src/toad/widgets/conversation.py index 0813a3e13..59a8c317f 100644 --- a/src/toad/widgets/conversation.py +++ b/src/toad/widgets/conversation.py @@ -462,7 +462,7 @@ def arm_thread_read(self) -> None: """Capture turn token and client authority for the next observed presentation.""" self._thread_read = self.agent_binding.thread_read() - def thread_observed(self, event: core_events.ThreadRowsChanged) -> None: + def thread_observed(self, event: core_events.ThreadRowsChanged | None = None) -> None: """Consume this thread's one observed presentation.""" presentation = self.app.coordination_access.thread_status.open( self.status_thread().name