diff --git a/docs-mintlify/admin/account-billing/ai-tokens.mdx b/docs-mintlify/admin/account-billing/ai-tokens.mdx
index a3b745eaa341c..21af1f89edd32 100644
--- a/docs-mintlify/admin/account-billing/ai-tokens.mdx
+++ b/docs-mintlify/admin/account-billing/ai-tokens.mdx
@@ -75,12 +75,14 @@ allowance resets at the start of each calendar month.
## Tracking usage
-Administrators can monitor token consumption through the **AI Tokens Usage**
-tab in the billing settings page. The dashboard shows:
+Administrators can monitor token consumption on the **AI Usage** and **AI
+Requests** tabs in the billing settings page:
-- Total token usage over time
-- Remaining allocation from per-seat grants and token packages
-- Breakdown by usage dimension
+- **AI Usage** shows spend per user or per role over a billing period, as a
+ chart or table, including remaining allocation from per-seat grants and
+ token packages
+- **AI Requests** shows the underlying request log, with search and a live
+ tail of recent requests
## When limits are reached
diff --git a/docs-mintlify/admin/deployment/index.mdx b/docs-mintlify/admin/deployment/index.mdx
index 02ca0c6c52f9f..f36bab8a5535a 100644
--- a/docs-mintlify/admin/deployment/index.mdx
+++ b/docs-mintlify/admin/deployment/index.mdx
@@ -18,6 +18,25 @@ the **Cube Cloud** logo in the top left corner.
+### Default deployment
+
+If an account has more than one deployment, you can control which one people land
+on when they open the workspace without navigating to a specific deployment
+directly:
+
+- **Account-wide** — an admin opens the **⋯** menu on a row in the deployments
+ list and chooses **Set as default** (or **Remove as default**). The pinned
+ deployment is marked with a home icon and becomes the landing deployment for
+ anyone who hasn't chosen one of their own.
+- **Per user** — anyone can pin their own default from their account
+ **Preferences**, which takes precedence over the account-wide pin. The
+ deployment you most recently switched to also counts as a personal choice and
+ outranks the account pin, so it only applies until you actively switch to
+ something else.
+
+Draft deployments are never candidates for either pin, and a pin you no longer
+have access to is skipped in favor of the next one in this order.
+
## Creating a new deployment
Creating a new deployment is an essential prerequisite to running a Cube
diff --git a/docs-mintlify/docs/explore-analyze/workbooks/calculated-fields.mdx b/docs-mintlify/docs/explore-analyze/workbooks/calculated-fields.mdx
index c0ba31b89f080..e4c86ab366a20 100644
--- a/docs-mintlify/docs/explore-analyze/workbooks/calculated-fields.mdx
+++ b/docs-mintlify/docs/explore-analyze/workbooks/calculated-fields.mdx
@@ -147,5 +147,10 @@ not.
### Editing a calculated field
-Select a calculated field in the sidebar to open the editor. You can change its
-**name** and **SQL expression**, then choose **Update** to apply.
+Select a calculated field in the sidebar to open its editor. A field created by
+the **bins** or **groups** panel reopens that same structured editor, letting you
+change its **name** and **SQL expression**. Any other calculated field — a `CASE`
+expression, a calculation like **% of total**, or a field saved to the workbook —
+opens a SQL-only editor showing just its expression, since the field has no
+structured form to round-trip. Edit the SQL and choose **Update** to apply; this
+editor doesn't offer renaming.
diff --git a/docs-mintlify/docs/integrations/dbt.mdx b/docs-mintlify/docs/integrations/dbt.mdx
index 9356eef520aad..e60e8cae08715 100644
--- a/docs-mintlify/docs/integrations/dbt.mdx
+++ b/docs-mintlify/docs/integrations/dbt.mdx
@@ -612,6 +612,16 @@ credential can write to the repository — a `git-receive-pack` probe for a PAT,
| --- | --- |
| **Models path** | Directory in the dbt project where generated model files are written. Defaults to `models/marts/cube/`. |
| **Delivery mode** | **Open a pull request** (default) pushes to a `cube/dbt-push/*` branch and opens a PR/MR. **Commit directly to a branch** commits straight to a branch you name — validation still runs. |
+| **Validation level** | How thoroughly a model is checked before it's committed: **Parse** only confirms the project still parses; **Compile** also compiles the generated SQL; **Build** additionally runs the model (and its tests) against your warehouse, in the **validation schema** below, so a broken model is caught before the PR opens. |
+| **Validation schema** | Schema in your warehouse Cube builds into when validation level is **Build**. You own this schema — Cube never creates or drops it, and only the temporary relation created for that one validation run is cleaned up afterward. Required when validation level is **Build**. |
+
+
+
+**Build** currently runs on Snowflake, Amazon Redshift, PostgreSQL, and ClickHouse. On
+Google BigQuery, Databricks, and Amazon Athena it falls back to **Parse** until
+connection support for those warehouses is added.
+
+
Then **Save dbt settings**.
@@ -659,6 +669,17 @@ hosts, a prefilled compare link to open it yourself.
+### Author models from Analytics Chat
+
+You can also drive the whole push loop from [the agent](/docs/explore-analyze/analytics-chat)
+instead of the dialog above — for example, "turn this into a dbt model and open a PR." The
+agent opens a live sandbox on your dbt project, drafts the model's `.sql` and `.yml`, and
+runs the same validation configured above (parse, compile, or a full build against your
+validation schema). It reports what it found and asks you to confirm before committing or
+opening the pull request, using the delivery mode configured on the integration. Because the
+sandbox stays open across the conversation, you can ask it to adjust the draft and
+re-validate before you confirm.
+
### What gets pushed
Each push creates exactly two new files:
diff --git a/docs-mintlify/embedding/iframe/creator-mode.mdx b/docs-mintlify/embedding/iframe/creator-mode.mdx
index 07694a34c25c6..a92247a61489f 100644
--- a/docs-mintlify/embedding/iframe/creator-mode.mdx
+++ b/docs-mintlify/embedding/iframe/creator-mode.mdx
@@ -22,6 +22,15 @@ same as in a standalone dashboard embed. To hide any of its controls (title,
back button, Edit, Duplicate) for your embed, see
[Show or hide header controls](/embedding/iframe/dashboards#show-or-hide-header-controls).
+## Workbook header controls
+
+When a user opens a workbook (rather than a published dashboard) inside Creator
+Mode, its header offers the same actions menu as the console: **Rename**,
+**Duplicate**, **View all**, **New workbook**, and **Delete**. Rename and Delete
+require the embed user's **Manage** permission on the workbook; Duplicate
+requires **Manage** or **Edit**. Double-clicking the workbook name also renames
+it, the same as in the full Cube app.
+
## Embed tenant scoping
In Creator Mode, content (workbooks, dashboards) and the groups/user attributes referenced by the session are scoped to an **embed tenant**. Pass `embedTenantName` to isolate content per customer; omit it to use the current tenant.
diff --git a/docs-mintlify/reference/embed-apis/generate-session.mdx b/docs-mintlify/reference/embed-apis/generate-session.mdx
index bb7454defa8e4..959c8171437c9 100644
--- a/docs-mintlify/reference/embed-apis/generate-session.mdx
+++ b/docs-mintlify/reference/embed-apis/generate-session.mdx
@@ -268,6 +268,21 @@ const session = await fetch(
A second call with the same body produces the same end state: the group and attribute already exist, descriptions/display names are reconciled if they changed, and the user's memberships and values are re-applied.
+## Provisioning users ahead of their first session
+
+An embed user is normally created only when they generate their first session — so you cannot add them to a group or share a workbook or dashboard with them until they have opened the embed at least once. To make a user addressable immediately, provision them directly:
+
+```text
+POST /api/v1/embed-tenants/{embedTenantName}/user
+POST /api/v1/embed-tenants/{embedTenantName}/users
+```
+
+The singular endpoint provisions one user; the plural endpoint provisions up to 100 in a single request and is partially successful — it returns `succeeded` and `failed` arrays instead of failing the whole batch for one bad entry, with each failure keyed by `externalId`.
+
+Each user takes the same fields as `generate-session` above — `externalId`, `email`, `userProfile`, `groups`, `tenantGroups` — except `userAttributes` and `securityContext`, which every session re-applies and so are not accepted here. Provisioning is idempotent: an existing `externalId` is updated rather than rejected, `email` and `userProfile` are overwritten only when supplied, and each group field is replaced when supplied, left untouched when omitted, and cleared with `[]`. Omit `email` and Cube derives a placeholder address instead, which makes the user harder to recognize in a list.
+
+These endpoints use the same `Api-Key` authentication as Generate Session and require admin access.
+
## Embed-tenant admin API
To list or delete the groups and attributes that have been bootstrapped into an embed tenant, use the admin endpoints scoped to that tenant: