Skip to content

orb(chat): session→installation→repo authz and hosted-tenant readiness for the chat surface #9192

Description

@JSONbored

Context

Part of the ORB maintainer chat platform epic; do not start before the epic's spec sub-issue closes (it fixes the authz matrix and tenant model). The chat surface lives in apps/loopover-ui's authenticated app area and must resolve, per session, which repos this maintainer may see and act on — correctly for self-host today and for hosted multi-tenancy tomorrow (#4877 Phase B).

Requirements

  1. Session → identity → repo-set resolution using the existing authz helpers and tiers (verified-admin vs affiliation), per the spec's matrix; the chat UI only offers repos the session may ground on, and dispatch affordances only where the dispatch tier is met.
  2. Alignment with Decouple "admin of a GitHub install" from "has a running container" #4927 (admin-of-install ≠ has-a-running-deployment): a maintainer whose repo has no live deployment gets a defined, useful state (the spec decides what), not an error.
  3. Hosted-tenancy readiness: no global-singleton state introduced by the chat session layer (the Phase B multi-tenancy sweep must not have to undo this feature); session context flows explicitly.
  4. Session expiry/revocation mid-conversation degrades cleanly: in-flight stream terminates with the explicit auth-terminal event; the transcript stays readable; re-auth resumes without data loss.
  5. Operator tier (ADMIN_GITHUB_LOGINS) behavior per the spec — likely cross-repo grounding; whatever is decided is tested.

Deliverables

  • Session/repo-resolution wiring for the chat surfaces + the degraded-state UI.
  • Tests: per-tier repo-set resolution, cross-tenant denial, mid-stream expiry behavior, no-new-global-singletons check (structural/lint-level where feasible).

Expected outcome

The chat surface's answer to "who are you and what may you touch" is inherited entirely from the existing authz model, provably tenant-safe.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.orbGittensory Orb related - maintainer self-hosting analytics.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions