       (let [user-tags (db/with-conn (db/get-user-visible-tag-ids uid))
             filtered-thread (update-in thread [:tag-ids] (partial filter user-tags))
             thread-with-last-opens (db/with-conn (db/thread-add-last-open-at filtered-thread uid))]
-        (chsk-send! uid [:chat/thread thread-with-last-opens])))))
+        (chsk-send! uid [:chat/thread thread-with-last-opens])))
+    (notify-extensions thread-id)))
 
 (defn broadcast-user-change
   "Broadcast user info change to clients that can see this user"

  [ev-msg]
  ; Do nothing, just avoid unhandled event message
  )

(defn broadcast-thread
  "broadcasts thread to all subscribed users, except those in ids-to-skip"

            [chat.server.invite :as invites]
            [chat.server.digest :as digest]
            [clojure.set :refer [difference intersection]]
            [chat.shared.util :refer [valid-nickname? valid-tag-name?]]
            [chat.server.extensions :refer [handle-thread-change]]
            ; just requiring to register multimethods
            chat.server.extensions.asana))

(let [{:keys [ch-recv send-fn ajax-post-fn ajax-get-or-ws-handshake-fn
              connected-uids]}
