@@ -909,11 +909,9 @@ async function waitForEvent<T extends AgentChatEventEnvelope>(
909909}
910910
911911async function waitForSessionTitle ( sessionService : ReturnType < typeof createMockSessionService > , sessionId : string , title : string ) : Promise < void > {
912- for ( let attempt = 0 ; attempt < 100 ; attempt += 1 ) {
913- if ( sessionService . get ( sessionId ) ?. title === title ) return ;
914- await new Promise ( ( resolve ) => setTimeout ( resolve , 0 ) ) ;
915- }
916- throw new Error ( `Timed out waiting for session title '${ title } '.` ) ;
912+ await vi . waitFor ( ( ) => {
913+ expect ( sessionService . get ( sessionId ) ?. title ) . toBe ( title ) ;
914+ } , { timeout : 1_000 } ) ;
917915}
918916
919917// ---------------------------------------------------------------------------
@@ -3363,8 +3361,7 @@ describe("createAgentChatService", () => {
33633361 method : "thread/name/updated" ,
33643362 params : { threadId : "thread-1" , name : "Should Not Win" } ,
33653363 } ) ;
3366- await new Promise ( ( resolve ) => setTimeout ( resolve , 20 ) ) ;
3367- expect ( sessionService . get ( session . id ) ?. title ) . toBe ( "Manual Title" ) ;
3364+ await waitForSessionTitle ( sessionService , session . id , "Manual Title" ) ;
33683365 } ) ;
33693366
33703367 it ( "lets OpenCode session.updated titles beat ADE AI fallback" , async ( ) => {
@@ -3401,6 +3398,9 @@ describe("createAgentChatService", () => {
34013398 } ) ;
34023399
34033400 await service . sendMessage ( { sessionId : session . id , text : "Use ACP title." } , { awaitDispatch : true } ) ;
3401+ await vi . waitFor ( ( ) => {
3402+ expect ( typeof mockState . droidPooled . bridge . onSessionUpdate ) . toBe ( "function" ) ;
3403+ } , { timeout : 1_000 } ) ;
34043404 mockState . droidPooled . bridge . onSessionUpdate ?.( {
34053405 sessionId : "droid-acp-session-1" ,
34063406 update : {
@@ -5801,7 +5801,7 @@ describe("createAgentChatService", () => {
58015801 }
58025802 } ) ;
58035803
5804- it ( "keeps the requested Codex reasoning effort while applying effective thread policy" , async ( ) => {
5804+ it ( "persists the runtime-effective Codex reasoning effort while applying effective thread policy" , async ( ) => {
58055805 mockState . codexResponseOverrides . set ( "thread/start" , ( ) => ( {
58065806 thread : { id : "thread-effective-start" } ,
58075807 approvalPolicy : "onFailure" ,
@@ -5843,18 +5843,18 @@ describe("createAgentChatService", () => {
58435843 } | undefined ;
58445844 expect ( turnStartParams ?. approvalPolicy ) . toBe ( "on-failure" ) ;
58455845 expect ( turnStartParams ?. sandboxPolicy ?. type ) . toBe ( "workspaceWrite" ) ;
5846- expect ( turnStartParams ?. effort ) . toBe ( "xhigh " ) ;
5846+ expect ( turnStartParams ?. effort ) . toBe ( "high " ) ;
58475847
58485848 const summary = await service . getSessionSummary ( session . id ) ;
58495849 expect ( summary ?. codexApprovalPolicy ) . toBe ( "on-failure" ) ;
58505850 expect ( summary ?. codexSandbox ) . toBe ( "workspace-write" ) ;
58515851 expect ( summary ?. permissionMode ) . toBe ( "default" ) ;
5852- expect ( summary ?. reasoningEffort ) . toBe ( "xhigh " ) ;
5852+ expect ( summary ?. reasoningEffort ) . toBe ( "high " ) ;
58535853
58545854 const persisted = readPersistedChatState ( session . id ) ;
58555855 expect ( persisted . codexApprovalPolicy ) . toBe ( "on-failure" ) ;
58565856 expect ( persisted . codexSandbox ) . toBe ( "workspace-write" ) ;
5857- expect ( persisted . reasoningEffort ) . toBe ( "xhigh " ) ;
5857+ expect ( persisted . reasoningEffort ) . toBe ( "high " ) ;
58585858 } ) ;
58595859
58605860 it ( "re-resumes Codex threads when permission mode changes mid-session" , async ( ) => {
@@ -6185,7 +6185,7 @@ describe("createAgentChatService", () => {
61856185 expect ( sessionService . reopen ) . toHaveBeenCalledWith ( session . id ) ;
61866186 } ) ;
61876187
6188- it ( "keeps requested Codex reasoning effort while applying effective policy on resume" , async ( ) => {
6188+ it ( "keeps runtime-effective Codex reasoning effort while applying effective policy on resume" , async ( ) => {
61896189 mockState . codexResponseOverrides . set ( "thread/resume" , ( ) => ( {
61906190 thread : { id : "thread-effective-resume" } ,
61916191 approvalPolicy : "onFailure" ,
@@ -6219,13 +6219,13 @@ describe("createAgentChatService", () => {
62196219 expect ( resumed . codexApprovalPolicy ) . toBe ( "on-failure" ) ;
62206220 expect ( resumed . codexSandbox ) . toBe ( "workspace-write" ) ;
62216221 expect ( resumed . permissionMode ) . toBe ( "default" ) ;
6222- expect ( resumed . reasoningEffort ) . toBe ( "xhigh " ) ;
6222+ expect ( resumed . reasoningEffort ) . toBe ( "high " ) ;
62236223
62246224 const persistedAfter = readPersistedChatState ( session . id ) ;
62256225 expect ( persistedAfter . threadId ) . toBe ( "thread-effective-resume" ) ;
62266226 expect ( persistedAfter . codexApprovalPolicy ) . toBe ( "on-failure" ) ;
62276227 expect ( persistedAfter . codexSandbox ) . toBe ( "workspace-write" ) ;
6228- expect ( persistedAfter . reasoningEffort ) . toBe ( "xhigh " ) ;
6228+ expect ( persistedAfter . reasoningEffort ) . toBe ( "high " ) ;
62296229 } ) ;
62306230
62316231 it ( "throws when resuming an unknown session" , async ( ) => {
0 commit comments