@@ -542,7 +542,6 @@ test.describe('workspace transport baseline', () => {
542542 await page . reload ( ) ;
543543 await waitForWorkspaceTopbar ( page ) ;
544544 await waitForBackendSocket ( page ) ;
545- const sessionCard = page . locator ( `.agent-pane-card[data-session-id="${ session . id } "]` ) . first ( ) ;
546545 const controllerAfterReload = await currentWorkspaceController ( page , workspace . workspaceId , ids ) ;
547546 await invokeRpc ( page , 'agent_start' , {
548547 ...controllerAfterReload ,
@@ -562,18 +561,31 @@ test.describe('workspace transport baseline', () => {
562561 await waitForWorkspaceTopbar ( page ) ;
563562 await waitForBackendSocket ( page ) ;
564563 const runtimeAfterReload = await invokeRpc < {
564+ snapshot : {
565+ sessions : Array < { id : number } > ;
566+ view_state : {
567+ active_session_id : string ;
568+ active_pane_id : string ;
569+ } ;
570+ } ;
565571 lifecycle_events ?: Array < { session_id : string ; kind : string } > ;
566572 } > ( page , 'workspace_runtime_attach' , {
567573 workspaceId : workspace . workspaceId ,
568574 deviceId : ids . deviceId ,
569575 clientId : ids . clientId ,
570576 } ) ;
577+ expect ( runtimeAfterReload . snapshot . sessions . some ( ( candidate ) => candidate . id === session . id ) ) . toBe ( true ) ;
578+ expect ( runtimeAfterReload . snapshot . view_state . active_session_id ) . toBe ( String ( session . id ) ) ;
579+ expect ( runtimeAfterReload . snapshot . view_state . active_pane_id ) . toBe ( `pane-${ session . id } ` ) ;
571580 expect ( runtimeAfterReload . lifecycle_events ?. some ( ( event ) =>
572581 event . session_id === String ( session . id ) && event . kind === 'tool_started'
573582 ) ) . toBe ( true ) ;
574583 let lastReloadStatus : string | null = null ;
575584 await expect . poll ( async ( ) => {
576- lastReloadStatus = await sessionCard . getAttribute ( 'data-session-status' ) ;
585+ lastReloadStatus = await page
586+ . locator ( `.agent-pane-card[data-session-id="${ session . id } "]` )
587+ . first ( )
588+ . getAttribute ( 'data-session-status' ) ;
577589 return lastReloadStatus === 'running' || lastReloadStatus === 'background' ;
578590 } , {
579591 timeout : 20000 ,
@@ -923,25 +935,18 @@ test.describe('workspace transport baseline', () => {
923935 await expect ( page . getByTestId ( 'workspace-agent-recovery-banner' ) ) . toBeVisible ( {
924936 timeout : 10000 ,
925937 } ) ;
938+ await expect ( page . getByTestId ( 'workspace-agent-recovery-action' ) ) . toHaveText ( 'Resume agent' ) ;
926939 await page . getByTestId ( 'workspace-agent-recovery-action' ) . click ( ) ;
927940
928- await waitForWsEvent (
929- page ,
930- 'agent://event' ,
931- ( payload ) =>
932- payload . workspace_id === workspace . workspaceId
933- && payload . session_id === String ( session . id )
934- && typeof payload . data === 'string'
935- && payload . data . includes ( `--resume ${ resumeClaudeSessionId } ` ) ,
936- TRANSPORT_EVENT_TIMEOUT_MS ,
937- ) ;
938941 await waitForWsEvent (
939942 page ,
940943 'agent://lifecycle' ,
941944 ( payload ) =>
942945 payload . workspace_id === workspace . workspaceId
943946 && payload . session_id === String ( session . id )
944- && payload . kind === 'tool_started' ,
947+ && payload . kind === 'tool_started'
948+ && typeof payload . data === 'string'
949+ && payload . data . includes ( resumeClaudeSessionId ) ,
945950 TRANSPORT_EVENT_TIMEOUT_MS ,
946951 ) ;
947952
0 commit comments