Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 137
fix(screentracker): prevent Send() from blocking when ReadyForInitialPrompt stays false#215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
99b9c11761b7d5e80b116934e832cb5b5cea5bbf3fFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| 1 function greet() { | ||
| 2 - console.log("Hello, World!"); | ||
| 2 + console.log("Hello, Claude!"); | ||
| 3 } | ||
| ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ | ||
| > Try "what does this code do?" | ||
| ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ | ||
| Syntax theme: Monokai Extended (ctrl+t to disable) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| ╭────────────────────────────────────────────╮ | ||
| │ ✻ Welcome to Claude Code! │ | ||
| │ │ | ||
| │ /help for help │ | ||
| ╰────────────────────────────────────────────╯ | ||
| ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ | ||
| │ Type your message... | ||
| ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -571,6 +571,14 @@ func (c *PTYConversation) statusLocked() ConversationStatus { | ||
| return ConversationStatusChanging | ||
| } | ||
| // The send loop gates stableSignal on initialPromptReady. | ||
| // Report "changing" until readiness is detected so that Send() | ||
| // rejects with ErrMessageValidationChanging instead of blocking | ||
| // indefinitely on a stableSignal that will never fire. | ||
| if !c.initialPromptReady { | ||
| return ConversationStatusChanging | ||
MemberAuthor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Obs
This is strictly better than the old behavior (status said "stable" but Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note Adding to this thread: when readiness never fires, the system now reports "running" indefinitely with no log line or error explaining why. The user's only recourse is inspecting the terminal directly. This is strictly better than the old hang, and the dual-meaning limitation is acknowledged as out of scope here. Noting for awareness since there's no planned follow-up or tracking issue. (Mafuuu)
| ||
| } | ||
| // Handle initial prompt readiness: report "changing" until the queue is drained | ||
| // to avoid the status flipping "changing" -> "stable" -> "changing" | ||
| if len(c.outboundQueue) > 0 || c.sendingMessage { | ||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Obs
findGenericSlimMessageBoxaccepts mixed border styles — e.g.───on top and╌╌╌on bottom would match. (Edge Case Analyst, Contract Auditor)Agreed this is fine — more permissive detection reduces false negatives, and the narrow scan window (last 9 lines) plus the prompt-character requirement on the middle line make false positives unlikely. Worth knowing if a false-positive concern arises later.