Count the inbox rows that need the calling viewer and are not handled.
The number of execution shells the caller’s user-scoped inbox (`GET /api/execution-shells?scope=user`) would label "Needs you" (`state=blocked`: not closed, a person is blocking) that the caller has not marked handled, computed as one aggregate over the caller’s org memberships and project entitlements - the same rows the inbox can show. Independent of the active workspace.
AuthorizationBearer <WorkOS user access token>WorkOS user access token created by the Rensei CLI. The authenticated organization is resolved from membership and may be narrowed with X-Rensei-Org.
org?stringNarrow to these organizations, by id or slug (comma-separated). Omitted ⇒ every membership. Narrows only: an org the caller is not a member of contributes nothing.
projectId?stringNarrow to these projects (comma-separated). Omitted ⇒ every entitled project. Narrows only, never past the caller’s project entitlements.
The count, overall and per organization.
application/json- response
total*integerRows needing the caller across the scope.
-9007199254740991 <= value <= 9007199254740991byOrgId*The same count keyed by organization id. Organizations with nothing waiting are absent.
partial*array<>Organizations whose entitlements could not be read; they contribute nothing to the counts. Empty when the count is complete.
snapshotAt*stringcurl -X GET 'https://app.rensei.ai/api/execution-shells/needs-you-count'{ "total": -9007199254740991, "byOrgId": { "property1": -9007199254740991, "property2": -9007199254740991 }, "partial": [ { "orgId": "string", "reason": "string" } ], "snapshotAt": "string"}Mark an execution shell handled (or un-handled) for the calling viewer.
Per-viewer inbox state for one execution shell. VIEWER STATE ONLY: it records that a person dealt with the row and never acknowledges, closes, stops or otherwise touches the execution itself, and it advances no event or a2a cursor. Idempotent - repeating the same value is a no-op that returns the same body. The shell’s organization is resolved from the shell, not from the caller’s active workspace, because a user-scoped inbox routinely shows rows from other organizations. A caller who cannot see the shell receives 404.
Subscribe to live Inbox updates across every member organization.
One human-only SSE connection fans in authorized Inbox rows across organizations. Emits row.upsert, ask.opened, ask.resolved, focused entry.appended, count.needsYou and a heartbeat every 15 seconds. Last-Event-ID resumes exclusively from a bounded process-local buffer retained for 60 seconds after disconnect; cursor_expired reconnect events require a refetch. Redis is best effort; reconnect/refetch on replica change, capacity loss or projection errors. This is not the durable bus_seq cursor.