@@ -246,18 +246,17 @@ export class UniversalBot extends events.EventEmitter {
246246 text : '' ,
247247 user : user
248248 } ;
249- if ( msg . address . conversation ) {
250- delete msg . address . conversation ;
251- }
252249 this . ensureConversation ( msg . address , ( adr ) => {
253250 msg . address = adr ;
251+ var conversationId = msg . address . conversation ? msg . address . conversation . id : null ;
254252 var storageCtx : bs . IBotStorageContext = {
255253 userId : msg . user . id ,
254+ conversationId : conversationId ,
256255 address : msg . address ,
257256 persistUserData : this . settings . persistUserData ,
258257 persistConversationData : this . settings . persistConversationData
259258 } ;
260- this . route ( storageCtx , msg , dialogId , dialogArgs , this . errorLogger ( done ) ) ;
259+ this . route ( storageCtx , msg , dialogId , dialogArgs , this . errorLogger ( done ) , true ) ;
261260 } , this . errorLogger ( done ) ) ;
262261 } , this . errorLogger ( done ) ) ;
263262 }
@@ -324,7 +323,7 @@ export class UniversalBot extends events.EventEmitter {
324323 // Helpers
325324 //-------------------------------------------------------------------------
326325
327- private route ( storageCtx : bs . IBotStorageContext , message : IMessage , dialogId : string , dialogArgs : any , done : ( err : Error ) => void ) : void {
326+ private route ( storageCtx : bs . IBotStorageContext , message : IMessage , dialogId : string , dialogArgs : any , done : ( err : Error ) => void , newStack = false ) : void {
328327 // --------------------------------------------------------------------
329328 // Theory of Operation
330329 // --------------------------------------------------------------------
@@ -388,7 +387,7 @@ export class UniversalBot extends events.EventEmitter {
388387 session . conversationData = data . conversationData || { } ;
389388 session . privateConversationData = data . privateConversationData || { } ;
390389 if ( session . privateConversationData . hasOwnProperty ( consts . Data . SessionState ) ) {
391- sessionState = session . privateConversationData [ consts . Data . SessionState ] ;
390+ sessionState = newStack ? null : session . privateConversationData [ consts . Data . SessionState ] ;
392391 delete session . privateConversationData [ consts . Data . SessionState ] ;
393392 }
394393 loadedData = data ; // We'll clone it when saving data later
0 commit comments