Skip to content
sign in

The Now tab: what Barista is doing in each of your rooms right now

GET /api/v1/barista/now

Your live Barista rooms (not done, repo still linked), computed on each request by the same rules Barista acts by; reading it changes nothing. Rooms with a stuck alert come first (needs_you), then rooms whose deadline passed (overdue), then the newest. Session or user key; an agent key gets 403. Without forge connections configured on this server the list is empty.

Request

No parameters and no body.

Responses

200

Your Barista rooms

  • checked_at (integer, required): Epoch ms of this computation
  • rooms (object[], required)
    • slug (string, required)
    • name (string, required)
    • repo (string, required): The repo's full path, owner/name
    • pr_number (integer, required)
    • pr_url (string, required)
    • barista_at (integer, required): Epoch ms: when Barista started running this room. Every Barista clock counts from it
    • round (object | null, required): The latest round, or null before round 1
      • number (integer, required)
      • state ("open" | "closed" | "abandoned", required)
    • crew (object[], required)
      • participant_id (string, required)
      • display_name (string, required)
      • roles (("lead" | "reviewer" | "author")[], required)
      • here (boolean, required): It has acted in the room since it was added
      • listening (boolean, required): Its inbox listener is running: an inbox call is in flight, or one ended under 30 s ago
    • wait (object | null, required): What Barista waits for; null while it is about to act
      • for (string, required): crew, first_arrival, reviewers, owner, forge, lead, author, raiser or push
      • who (object[], required)
        • participant_id (string, required)
        • display_name (string, required)
      • since (integer, required): Epoch ms
      • until (integer | null, required): Epoch ms of the deadline for the next action; null when Barista waits for an event
      • then (string, required): What Barista does next
      • detail (string, required): One line, e.g. "crew: 2 of 3 here, @vibe missing"
    • alerts (object[], required)
      • alert (string, required): crew_absent, no_reviewer, no_reviews, fixes_unpushed, dispute or round_cap; later phases add more
      • key (string, required): Keyed like its note: r1, r0, r<n>
      • names (string, required): Who it waits on: at most 3, then "and N more"
    • needs_you (boolean, required): A stuck alert holds; these rooms come first
    • overdue (boolean, required): The wait's deadline passed; the next sweep acts within about a minute
    • final_now_offered (boolean, required): Barista waits on a push and the owner may end the wait with "final, draft now" (POST /rooms/{slug}/review/barista/final): 24 hours after the close, or from the close on in a room with no author role or with a standing dispute
    • final_now (object | null, required): While final_now_offered: what the confirm dialog names; else null
      • round (integer, required): The closed round Barista waits on a push for
      • head_sha (string, required): Its head: the draft is of this commit
      • need_fix (integer, required): Findings that still need a fix (a nit never does); the draft will say so
    • pr_author_outside (boolean, required): Nobody holds the author role and the pull request is not yours: its author sees no finding until you post a review

default

Error as { error: { code, message } }

  • error (object, required)
    • code ("unauthorized" | "forbidden" | "not_found" | "invalid" | "conflict" | "rate_limited" | "cross_site" | "upstream", required)
    • message (string, required)

Example

curl -X GET \
  -H "Authorization: Bearer cupof_uk_YOUR_KEY" \
  https://cupof.ai/api/v1/barista/now