@@ -44,6 +44,7 @@ import {
4444 type QueuedPrompt ,
4545 type RemoteQueuedPrompt ,
4646} from "../../chat/liveTurns" ;
47+ import { hasVisibleLiveUserMessage } from "../../chat/liveTurnVisibility" ;
4748import { isVisibleRetryStep } from "../../chat/retryStatus" ;
4849import {
4950 mediaSourceUrl ,
@@ -172,41 +173,44 @@ export function LiveTurnView({
172173 ) ;
173174 const streaming = isTurnRunning ( turn ) ;
174175 const cronFire = parseCronFireMessage ( turn . prompt ) ;
176+ const showUserMessage = hasVisibleLiveUserMessage ( turn ) ;
175177
176178 return (
177179 < section
178180 className = "conversation-turn live-conversation-turn"
179181 data-conversation-turn-id = { outlineId }
180182 >
181- < article className = { `message user-message live-user-message${ cronFire ? " cron-fire-message" : "" } ` } >
182- < div className = "message-meta" >
183- < time > { formatTime ( turn . createdAt ) } </ time >
184- </ div >
185- < div className = { `user-bubble${ cronFire ? " cron-fire-bubble" : "" } ` } >
186- { cronFire ? (
187- < CronFireMessageContent fire = { cronFire } />
188- ) : turn . pluginCommand ? (
189- < PluginCommandDisplayContent
190- command = { turn . pluginCommand }
191- onOpen = { ( ) =>
192- onPluginCommandOpen ( {
193- ...turn . pluginCommand ! ,
194- id : turn . userMessageId ?? turn . promptId ?? turn . createdAt ,
195- content : turn . pluginCommandContent ?? "" ,
196- createdAt : turn . createdAt ,
197- } )
198- }
199- />
200- ) : (
201- < SkillPromptDisplayContent
202- text = { turn . prompt }
203- skills = { turn . skills }
204- onSkillOpen = { onSkillOpen }
205- />
206- ) }
207- < PromptAttachmentContent attachments = { turn . attachments } />
208- </ div >
209- </ article >
183+ { showUserMessage && (
184+ < article className = { `message user-message live-user-message${ cronFire ? " cron-fire-message" : "" } ` } >
185+ < div className = "message-meta" >
186+ < time > { formatTime ( turn . createdAt ) } </ time >
187+ </ div >
188+ < div className = { `user-bubble${ cronFire ? " cron-fire-bubble" : "" } ` } >
189+ { cronFire ? (
190+ < CronFireMessageContent fire = { cronFire } />
191+ ) : turn . pluginCommand ? (
192+ < PluginCommandDisplayContent
193+ command = { turn . pluginCommand }
194+ onOpen = { ( ) =>
195+ onPluginCommandOpen ( {
196+ ...turn . pluginCommand ! ,
197+ id : turn . userMessageId ?? turn . promptId ?? turn . createdAt ,
198+ content : turn . pluginCommandContent ?? "" ,
199+ createdAt : turn . createdAt ,
200+ } )
201+ }
202+ />
203+ ) : (
204+ < SkillPromptDisplayContent
205+ text = { turn . prompt }
206+ skills = { turn . skills }
207+ onSkillOpen = { onSkillOpen }
208+ />
209+ ) }
210+ < PromptAttachmentContent attachments = { turn . attachments } />
211+ </ div >
212+ </ article >
213+ ) }
210214 < article className = { `message assistant-message live-turn ${ turn . status } ` } >
211215 < div className = "assistant-body" >
212216 { visibleSteps . map ( ( step ) => {
0 commit comments