Internal Documentation internal
TalkIDE internal documentation

What this context does

Studio is the tenant-level command center: across all of the user’s projects, “what’s been happening?” It is the cross-project view UC-05 isn’t — instead of one project’s activity, the whole tenant’s recent activity in one feed.

Scope boundary

  • Owns: cross-project recent-activity aggregation, the per-tenant SSE stream.
  • Does not own: per-project activity stream (UC-05), project list (UC-03001), conversation list (UC-04003).

Main entities

No new entities — reads from ACTIVITY joined to PROJECT via projectId, filtered to the user’s tenant.

Use cases

UCWhat it does
UC-06001Recent Activity — REST snapshot + SSE stream, cross-project tenant feed

Component diagram

{/* Image missing: UC-06 Studio — Component View (../../assets/diagrams/uc06Components.svg) */}

Dependencies on other contexts

  • UC-05 Workspace Activity — same activities table, same dedup contract (ADR-009), same SSE event convention (ADR-008).
  • UC-02 Tenant Management — scoping is by tenantId from the JWT.
  • UC-03 Project Management — each row is enriched with the project name and accent for display.

Cross-cutting

  • Default page size 10 on Studio snapshot — chosen so the deduped feed reliably yields ~10 visible rows on first paint. See ADR-009.
  • Caffeine in-process cache for projectId → (tenantId, projectName) lookups inside ActivityEventBus to avoid hot-path DB hits during fanout.

Was this page helpful?

Thanks for the feedback.