TangentLens

Home / Changelog

What shipped, and when.

Dated, specific, and including the things that were fixed rather than only the things that were added.

Workspace-level AI rate limits

Workspace admins can now set their own questions-per-minute limit. On the hosted tier it can only be lowered; on bring-your-own-key and bring-your-own-endpoint it can be raised up to a ceiling the operator sets, because the inference is the customer's to pay for.

Explicit workspace membership

Which workspace a user belongs to is now recorded on the account rather than inferred from their email domain. Teams signing in with personal or free-provider addresses are isolated correctly, including two different customers both using the same provider.

Bring your own model

Ask in English can now run against your own provider account or a model inside your own network, in addition to the hosted tier. Saving runs a real test question first and stores nothing if the provider refuses.

Root-cause analysis

"Why did this move?" on any metric: scans every breakdown dimension, corrects p-values across all segments tested, marks thin segments as too small to assess, and labels every finding exploratory. Uses no model and is included on every plan.

Developer documentation site

Every SDK, the event protocol and both APIs, single-sourced so the docs cannot drift from the code — a continuous check fails the build if they do.

Experiments across all nine SDKs

Deterministic assignment with an identical algorithm in every language, verified by a shared conformance suite, plus exposure tracking and readouts that state their confidence.

Security hardening

A full audit of authentication and tenant isolation. Internal identity headers are now rejected unless they come from the gateway, sessions can be revoked centrally and stop working at the edge, and the tenant record no longer exposes internal fields to members.

Backups with a proving drill

Scheduled backups of both data stores, plus a restore drill that reads them back into a throwaway database and compares every table. It has already caught one real defect, which is the point of running it.

Looking for what is not built yet? The security page lists the gaps, and each documentation page ends with its own limitations.