@@ -599,24 +599,28 @@ async def get_session(
599599 if storage_session is None :
600600 return None
601601
602- stmt = (
603- select (schema .StorageEvent )
604- .filter (schema .StorageEvent .app_name == app_name )
605- .filter (schema .StorageEvent .session_id == storage_session .id )
606- .filter (schema .StorageEvent .user_id == user_id )
607- )
602+ if config and config .num_recent_events == 0 :
603+ # Existence/metadata-only read; skip the events query entirely.
604+ storage_events = []
605+ else :
606+ stmt = (
607+ select (schema .StorageEvent )
608+ .filter (schema .StorageEvent .app_name == app_name )
609+ .filter (schema .StorageEvent .session_id == storage_session .id )
610+ .filter (schema .StorageEvent .user_id == user_id )
611+ )
608612
609- if config and config .after_timestamp :
610- after_dt = datetime .fromtimestamp (config .after_timestamp )
611- stmt = stmt .filter (schema .StorageEvent .timestamp >= after_dt )
613+ if config and config .after_timestamp :
614+ after_dt = datetime .fromtimestamp (config .after_timestamp )
615+ stmt = stmt .filter (schema .StorageEvent .timestamp >= after_dt )
612616
613- stmt = stmt .order_by (schema .StorageEvent .timestamp .desc ())
617+ stmt = stmt .order_by (schema .StorageEvent .timestamp .desc ())
614618
615- if config and config .num_recent_events is not None :
616- stmt = stmt .limit (config .num_recent_events )
619+ if config and config .num_recent_events is not None :
620+ stmt = stmt .limit (config .num_recent_events )
617621
618- result = await sql_session .execute (stmt )
619- storage_events = result .scalars ().all ()
622+ result = await sql_session .execute (stmt )
623+ storage_events = result .scalars ().all ()
620624
621625 # Fetch states from storage
622626 storage_app_state = await sql_session .get (
0 commit comments