Loading issues
Greenfield — no billing/metering/usage code anywhere; the tenant substrate exists but nothing meters it.
Scope:
usage block (tesks/.../llm/OpenAiLlmClient.java). Capture token usage and attribute to TenantContext now, even before billing exists, so historical usage isn't lost.tenant; enforce in WorkspaceAdminService.addMember.usage_event/usage_counter table keyed by tenant; meter at TenantBearerFilter/WorkspaceContext (every request already resolves a tenant); enforce limits before the request proceeds.Billing is workspace-level; reporting breaks down per team/workspace.
Monetisation now has both halves built and shipped to develop, intentionally not activated:
a4eba8b.8880281, per the "settle + implement so it's drop-in in ~2 months" brief (PAR-202, Pending Release).Remaining: PAR-203 usage/billing reporting UI (and the live activation, which is config-only when wanted). The epic can ride to release as the foundation; PAR-203 is the open follow-up.
Metering foundation shipped to develop (tesks
a4eba8b) — the internal, non-payment half:usage_event(per-workspace granular usage) +tenant.seat_limit.UsageServicerecords events for the bound workspace and implementsLlmUsageSink;OpenAiLlmClientnow captures each completion's token usage (previously discarded) and reports it per tenant. Seat limits enforced on member add. 3 tests; suite 124 green.Remaining (split out, design-first / external):
Keeping this epic In Progress until the billing children land.