@@ -1528,6 +1528,60 @@ describe("deriveMessagesTimelineRows", () => {
15281528 expect ( rows . at ( - 1 ) ) . toMatchObject ( { kind : "thinking" } ) ;
15291529 } ) ;
15301530
1531+ it ( "keeps the latest finished reply's timestamp while a command is still running" , ( ) => {
1532+ const reply = ( streaming : boolean ) => ( {
1533+ id : "assistant-reply-entry" ,
1534+ kind : "message" as const ,
1535+ createdAt : "2026-01-01T00:00:10Z" ,
1536+ message : {
1537+ id : "assistant-reply" as never ,
1538+ role : "assistant" as const ,
1539+ text : "Training finished, checking memory next." ,
1540+ runId : "turn-1" as never ,
1541+ createdAt : "2026-01-01T00:00:10Z" ,
1542+ updatedAt : "2026-01-01T00:00:12Z" ,
1543+ streaming,
1544+ } ,
1545+ } ) ;
1546+ const rowsWith = ( streaming : boolean ) =>
1547+ deriveMessagesTimelineRows ( {
1548+ timelineEntries : [
1549+ reply ( streaming ) ,
1550+ {
1551+ id : "command-entry" ,
1552+ kind : "work" ,
1553+ createdAt : "2026-01-01T00:00:15Z" ,
1554+ entry : {
1555+ id : "command" ,
1556+ createdAt : "2026-01-01T00:00:15Z" ,
1557+ runId : "turn-1" as never ,
1558+ label : "Running command" ,
1559+ command : "nvidia-smi" ,
1560+ tone : "tool" as const ,
1561+ toolLifecycleStatus : "inProgress" as const ,
1562+ } ,
1563+ } ,
1564+ ] ,
1565+ latestRun : {
1566+ runId : "turn-1" as never ,
1567+ status : "running" ,
1568+ startedAt : "2026-01-01T00:00:00Z" ,
1569+ completedAt : null ,
1570+ } ,
1571+ isWorking : true ,
1572+ activeTurnStartedAt : "2026-01-01T00:00:00Z" ,
1573+ turnDiffSummaries : [ ] ,
1574+ supportsConversationRollback : false ,
1575+ } ) . find ( ( row ) => row . id === "assistant-reply-entry" ) ;
1576+
1577+ expect ( rowsWith ( false ) ) . toMatchObject ( {
1578+ showAssistantMeta : false ,
1579+ showAssistantTimestamp : true ,
1580+ showAssistantCopyButton : false ,
1581+ } ) ;
1582+ expect ( rowsWith ( true ) ) . toMatchObject ( { showAssistantTimestamp : false } ) ;
1583+ } ) ;
1584+
15311585 it ( "does not show Thinking once the open run's provider turn has ended" , ( ) => {
15321586 const input = {
15331587 timelineEntries : [
0 commit comments