The disabled button that was not enforcement
Greying out a button stops the person looking at it and nobody else. An old tab, a background job or a direct call goes straight past. The decision has to happen where the write happens.
De server begrenst de AI-uitgaven, op het moment van de schrijfactie.
Gespreksextractie, Ask Growth Kit, contentconcepten en profielonderzoek kosten per run geld. Eén register legt vast hoeveel AI-generaties onze werkruimte per factureringsperiode mag aannemen, hoeveel actieve projecten we mogen hebben, en hoeveel API-verzoeken per minuut een sleutel of een sessie krijgt. De server reserveert het verbruik in dezelfde transactie als het werk, dus een herhaalde poging verbruikt de ruimte nooit twee keer.
Productvoorbeeld
Dit is hetzelfde visuele component als in de ingelogde applicatie, met voorspelbare voorbeelddata.
The included allowance, the enforced limit and what is left.
Inerte voorbeelddata · geen netwerktoegang
Voorbeeld gereed
Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw, en anders.
Greying out a button stops the person looking at it and nobody else. An old tab, a background job or a direct call goes straight past. The decision has to happen where the write happens.
A flaky connection retries a request and a naive counter charges the quota again. The month runs out on generations nobody received. A stable event ID makes the second attempt free.
Limits scattered through ad hoc conditions drift apart until someone asks what we are actually allowed to run this month and there is no confident answer. One registry ends that.
Kernpunten
Active projects, AI generations per billing period, API requests per minute for a key, and per minute for a signed-in session. Each is one typed entry.
Every reservation carries a stable event ID. A repeat returns the original ledger row, and a repeat with a different quantity is refused rather than accepted quietly.
If the server cannot resolve which plan applies, the decision is denied. Nothing passes on a missing entitlement.
Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.
Declare the limit once
Each limit is one typed entry: what it counts, who it applies to, the window it uses, the entitlement it binds to, and what happens when it is reached.
The server resolves the plan
Subscription state maps to a plan and its entitlements, with a short grace window after a late payment. An explicit organization grant can raise an entitlement.
Usage is reserved inside the write
The server takes a lock, reads the usage ledger and reserves the amount in the same transaction as the work, so parallel requests settle in order instead of racing.
Refusals say what they are
A rate limit returns the number of seconds to wait. A period limit says the plan limit was reached. Meeting extraction reads that answer before it starts and skips work the allowance would refuse.
Technische garanties
De meters op het scherm leggen een beslissing uit, ze nemen er nooit een. Een limiet begrenst hoeveel AI-runs we aannemen, niet wat één run bij de provider kost, en vandaag staan de free- en pro-rechtensets er helemaal geen toe.
De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:
src/registries/quotas.tssrc/server/commercial-access.tsconfig/entitlements.tsDeze functies delen contracten en grenzen met deze pagina.
De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.