             process-start  (pt/trace-enter env {::pt/event ::reader3-execute})
             plan           (reader3-compute-run-graph
                              (merge env indexes {:edn-query-language.ast/node ast
-                                                 ::pcp/available-data         available-data}))]
+                                                 ::pcp/available-data         available-data}))
+            plan*          (atom plan)
+            env            (assoc env ::run-plan* plan*)]
         (if-let [root (pcp/get-root-node plan)]
           (let []
             (if async-parser?
               (go-promise
                 (<?maybe (reader3-run-node env plan root))
                 (pt/trace-leave env process-start {::pt/event ::reader3-execute
-                                                   ::plan     plan
+                                                   ::plan     @plan*
                                                    ::pt/style {:fill "#6ac5ec"}})
                 (<?maybe (p/reader (update env ::reader3-computed-plans p.misc/sconj path))))
               (do
                 (reader3-run-node env plan root)
-                (pt/trace-leave env process-start {::pt/event ::reader3-execute})
+                (pt/trace-leave env process-start {::pt/event ::reader3-execute
+                                                   ::plan     @plan*
+                                                   ::pt/style {:fill "#6ac5ec"}})
                 (p/reader (update env ::reader3-computed-plans p.misc/sconj path)))))
           ::p/continue)))))
 

    ::pcp/keys [input params]
    :as        node}]
  (if (reader3-all-requires-ready? env node)
    (reader3-run-next-node env plan node)
    (let [input'     (into #{} (keys input))
          {::keys [cache?] :or {cache? true} :as resolver}
          (cond-> (get-in indexes [::index-resolvers sym])


; region reader3

(defn reader3-node-log! [{::keys [run-plan*] :as env} {::pcp/keys [node-id]} event]
  (if run-plan*
    (swap! run-plan* pcp/update-node node-id ::run-trace #(p.misc/vconj % (assoc event ::pt/timestamp (pt/now)))))
  env)

(defn reader3-run-next-node [env plan {::pcp/keys [run-next]}]
  (if run-next
    (reader3-run-node env plan (pcp/get-node plan run-next))))
