| 
					
				 | 
			
			
				@@ -159,8 +159,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            (let [event (m/?> mixed-flow)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              (case (:type event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                :remote-update 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               (r.remote-update/apply-remote-update repo conn date-formatter event add-log-fn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               ;; TODO: add case: fetch earlier remote data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (try (r.remote-update/apply-remote-update repo conn date-formatter event add-log-fn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    (catch :default e 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      (when (= ::r.remote-update/need-pull-remote-data (:type (ex-data e))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        (m/? (r.client/new-task--pull-remote-data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              repo conn graph-uuid date-formatter get-ws-create-task add-log-fn))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                :local-update-check 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                (m/? (r.client/new-task--push-local-ops 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                      repo conn graph-uuid date-formatter 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -178,6 +182,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    :rtc-log-flow nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    :rtc-state-flow nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    :*rtc-auto-push? nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   :*rtc-lock nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    :canceler nil}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defonce ^:private *rtc-loop-metadata (atom empty-rtc-loop-metadata)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -203,6 +208,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             :rtc-log-flow rtc-log-flow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             :rtc-state-flow rtc-state-flow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             :*rtc-auto-push? *rtc-auto-push? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            :*rtc-lock *rtc-lock 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             :canceler canceler}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nil))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         (r.ex/->map r.ex/ex-local-not-rtc-graph)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -267,19 +273,22 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let [rtc-loop-metadata-flow (m/watch *rtc-loop-metadata)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (m/ap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (let [{:keys [repo graph-uuid user-uuid rtc-state-flow *rtc-auto-push?]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (let [{:keys [repo graph-uuid user-uuid rtc-state-flow *rtc-auto-push? *rtc-lock rtc-log-flow]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             (m/?< rtc-loop-metadata-flow)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         (try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (when (and repo rtc-state-flow *rtc-auto-push?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          (when (and repo rtc-state-flow *rtc-auto-push? *rtc-lock rtc-log-flow) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             (m/?< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              (m/latest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (fn [rtc-state rtc-auto-push?] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (fn [rtc-state rtc-auto-push? rtc-lock rtc-logs] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {:graph-uuid graph-uuid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  :user-uuid user-uuid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  :unpushed-block-update-count (op-mem-layer/get-unpushed-block-update-count repo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  :rtc-state rtc-state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 :rtc-lock rtc-lock 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 :rtc-logs rtc-logs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  :auto-push? rtc-auto-push?}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              rtc-state-flow (m/watch *rtc-auto-push?)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              rtc-state-flow (m/watch *rtc-auto-push?) (m/watch *rtc-lock) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (m/reductions (fn [r log] (if log (take 10 (conj r log)) r)) nil rtc-log-flow)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           (catch Cancelled _)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defn new-task--get-debug-state 
			 |