                     deleted     : @_deleted
                     last_active : misc.server_time()
                     doctype     : misc.to_json(@_doctype)  # important to set here, since this is when syncstring is often first created
+            cb: cb
+
 
     # The project calls this once it has checked for the file on disk; this
     # way the frontend knows that the syncstring has been initialized in

        if not @_closed
            cb("already connected")
            return
        @touch(0)   # critical to do a quick initial touch so file gets opened on the backend
        query =
            syncstrings :
                string_id         : @_string_id

    # "@_syncstring_table.set(...)" below because it is critical to
    # to be able to do the touch before @_syncstring_table gets initialized,
    # since otherwise the initial open a file will be very slow.
    touch: (min_age_m=5, cb) =>
        if @_client.is_project()
            cb?()
            return
        if min_age_m > 0
            # if min_age_m is 0 always try to do it immediately; if > 0 check what it was:
            last_active = @_syncstring_table?.get_one()?.get('last_active')
            # if not defined or not set recently, do it.
            if not (not last_active? or +last_active <= +misc.server_minutes_ago(min_age_m))
                cb?()
                return
        # Now actually do the set.
        @_client.query
