Skip to content

Commit 35ff559

Browse files
authoredJun 3, 2025··
Merge pull request #49 from rmusser01/dev
Sync
2 parents 3766702 + 8db03e4 commit 35ff559

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed
 

‎tldw_chatbook/Event_Handlers/worker_events.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ async def handle_api_call_worker_state_changed(app: 'TldwCli', event: Worker.Sta
7777
error_msg_text = Text.from_markup(
7878
f"[bold red]Error:[/]\nAI response for worker '{worker_name}' received, but its display widget was missing.")
7979
# Use plain text for ChatMessage content if it doesn't support Text directly
80-
app.notify(f"Error: AI response for worker '{worker_name}' received, but its display widget was missing.", severity="error", timeout=10)
80+
#app.notify(f"Error: AI response for worker '{worker_name}' received, but its display widget was missing.", severity="error", timeout=3)
8181
except QueryError:
8282
logger.error(f"Fallback: Could not find chat container #{prefix}-log.")
8383
app.current_ai_message_widget = None
@@ -220,7 +220,16 @@ async def handle_api_call_worker_state_changed(app: 'TldwCli', event: Worker.Sta
220220

221221
static_text_widget_in_ai_msg.update(Text.from_markup(f"[bold red]{escaped_error_for_display}[/]"))
222222
ai_message_widget.mark_generation_complete()
223-
app.current_ai_message_widget = None
223+
224+
if app.current_chat_is_streaming:
225+
logger.info(f"Worker '{worker_name}' failed during an active stream. Posting StreamDone with error.")
226+
# Post StreamDone event with the error details
227+
app.post_message(StreamDone(full_text=ai_message_widget.message_text, error=str(error_from_worker)))
228+
# DO NOT set app.current_ai_message_widget = None here.
229+
# The handle_stream_done handler will be responsible for this.
230+
else:
231+
logger.info(f"Worker '{worker_name}' failed (non-streaming). Clearing current_ai_message_widget.")
232+
app.current_ai_message_widget = None
224233

225234
if chat_container.is_mounted:
226235
chat_container.scroll_end(animate=True)

‎tldw_chatbook/UI/Conv_Char_Window.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,16 @@ def compose(self) -> ComposeResult:
133133
yield Button("Export as Text", id="conv-char-export-text-button", classes="sidebar-button")
134134
yield Button("Export as JSON", id="conv-char-export-json-button", classes="sidebar-button")
135135

136-
# Characters Collapsible
137-
with Collapsible(title="Characters", id="ccp-characters-collapsible", collapsed=True):
138-
pass
139-
# Add other character related widgets here if needed in the future
140-
141136
# Prompt Details Collapsible (for the right-pane prompt editor)
142137
with Collapsible(title="Prompt Options", id="ccp-prompt-details-collapsible", collapsed=True):
143138
yield Static("Prompt metadata or non-editor actions will appear here.", classes="sidebar-label")
144139
with Collapsible(title="Prompt Deletion", id="ccp-prompt-details-collapsible-2", collapsed=True):
145140
yield Button("Delete Prompt", id="ccp-editor-prompt-delete-button", variant="error",
146141
classes="sidebar-button")
142+
# Characters Collapsible
143+
with Collapsible(title="Delete Character", id="ccp-characters-collapsible", collapsed=True):
144+
yield Button("Delete Character", id="ccp-character-delete-button", variant="error",)
145+
# Add other character related widgets here if needed in the future
147146

148147
#
149148
# End of Conv_Char_Window.py

0 commit comments

Comments
 (0)
Please sign in to comment.