                        db->group)]
     (when (:public? (group-settings (group :id)))
       group)))
-

                         (map first)
                         (drop skip)
                         (take limit))]
    {:threads (->> (d/pull-many (d/db conn) thread-pull-pattern thread-eids)
                   (map db->thread)
                   (filter (fn [thread] (user-can-see-thread? user-id (thread :id)))))
     :remaining (- (count all-thread-eids) (+ skip (count thread-eids)))}))

(defn tag-set-description!
  [conn tag-id description]
  (d/transact conn [[:db/add [:tag/id tag-id]
                       :tag/description description]]))

(defn create-extension!
  [conn {:keys [id type group-id user-id config]}]

              user-id
              thread-pull-pattern)
         (into ()
               (map (comp
                      #(update-in % [:tag-ids]
                                  (partial into #{} (filter visible-tags)))
                      #(thread-add-last-open-at % user-id)
                      db->thread
                      first))))))

(defn get-thread
  [conn thread-id]
