From 36834e2c7670527161b6a82a23b1a9b3ddcc6635 Mon Sep 17 00:00:00 2001 From: Tristan Simas Date: Thu, 12 Nov 2026 22:24:37 -0500 Subject: [PATCH] Handle Unplaced cursor in _effect_region cursor.visible_region returns Unplaced before layout. Fall back to full invalidation when the cursor hasn't been positioned yet. Co-Authored-By: Claude Opus 4.6 (1M context) Claude-Session: https://claude.ai/code/session_01XbFMSnLEc51gw21bLFFRK1 --- src/toad/widgets/conversation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/toad/widgets/conversation.py b/src/toad/widgets/conversation.py index 857bb699e..c6051eb5f 100644 --- a/src/toad/widgets/conversation.py +++ b/src/toad/widgets/conversation.py @@ -378,6 +378,8 @@ def animation_visible(self) -> bool: def _effect_region(self) -> Region | None: cursor = self.query_ancestor(Conversation).navigation.cursor visible = cursor.visible_region + if not isinstance(visible, Region): + return None if visible.height == 0: return Region(0, 0, 1, 0) return Region(0, visible.y - self.region.y, 1, visible.height)