                 dbg("error -- #{err}")
                 cb(err)
             else
+                project = new_project(mesg.project_id)
+                database.touch_project(project_id:mesg.project_id)
                 if not @_project_cache?
                     @_project_cache = {}
                 @_project_cache[key] = project

    # Connection to the remote local_hub daemon that we use for control.
    local_hub_socket: (cb) =>
        if @_socket?
            cb(false, @_socket)
            return

        if @_local_hub_socket_connecting
            @_local_hub_socket_queue.push(cb)
            return
        @_local_hub_socket_connecting = true
        @_local_hub_socket_queue = [cb]
        @dbg("local_hub_socket: getting new socket")
        @new_socket (err, socket) =>
            @dbg("local_hub_socket: new_socket returned #{err}")
            @_local_hub_socket_connecting = false
            if err
                for c in @_local_hub_socket_queue
                    c(err)

                    c(undefined, socket)

                @_socket = socket
            cancel_connecting()

    # Get a new connection to the local_hub,
    # authenticated via the secret_token, and enhanced
