             # In the vast majority of cases, you just want to look at the data.
             # Very rarely should you need something to execute exactly after this
         path = opts.path
-        if DEBUG then console.log('ProjectStore::fetch_directory_listing, opts:', opts, opts.finish_cb)
+        #if DEBUG then console.log('ProjectStore::fetch_directory_listing, opts:', opts, opts.finish_cb)
         if not path?
             # nothing to do if path isn't defined -- there is no current path -- see https://github.com/sagemathinc/cocalc/issues/818
             return

        last = segments.slice(-1).join()
        switch segments[0]
            when 'files'
                if DEBUG then console.log("ProjectStore::load_target", segments, full_path, parent_path ,last)
                if target[target.length-1] == '/' or full_path == ''
                    if DEBUG then console.log("ProjectStore::load_target → open_directory", parent_path)
                    @open_directory(parent_path)
                else
                    # TODOJ: Change when directory listing is synchronized. Just have to query client state then.

        # this makes sure finish_cb is being called, even when there are concurrent requests
        if @_set_directory_files_lock[_key]?  # currently doing it already
            @_set_directory_files_lock[_key].push(opts.finish_cb) if opts.finish_cb?
            #if DEBUG then console.log('ProjectStore::fetch_directory_listing aborting:', _key, opts)
            return
        @_set_directory_files_lock[_key] = []
        # Wait until user is logged in, project store is loaded enough
