[pull] master from supabase:master#692
Merged
pull[bot] merged 7 commits intocode:masterfrom Feb 19, 2026
Merged
Conversation
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? - Added Vercel composition rules - Added custom logic for components
…42963) Enables Braintrust tracing for AI Assistant chats to support debugging and future online evals. **Code Changes** - Wraps `generateAssistantResponse` in a Braintrust `traced()` span, logging the user's latest message as input along with metadata (`chatId`, `chatName`, `projectRef`, `userId`, `orgId`, `planId`, etc.) - Threads JWT claims from `apiWrapper` → handler to log `userId` in Braintrust without an extra API call (+ expanded `apiWrapper` tests) - Threads `orgId` and `planId` from `getOrgAIDetails` to log in Braintrust **Infrastructure Changes** - Created a "Vercel" service account in Braintrust - Added `BRAINTRUST_API_KEY` and `BRAINTRUST_PROJECT_ID` env vars to the studio-staging project in Vercel using a service token for the above service account - Added an "Overview" view to the Logs tab in the Braintrust Assistant project to surface the new metadata **Precautions** - HIPAA sensitive projects are excluded from logging (see #42787 for the detection logic) - Production is temporarily excluded from logging until we're confident in the setup **Testing steps** - Chat with the AI Assistant in the [studio-staging preview build](#42963 (comment)) below - Visit the [Logs tab in the Braintrust Assistant project](https://www.braintrust.dev/app/supabase.io/p/Assistant/logs) and inspect the trace <img width="4680" height="962" alt="CleanShot 2026-02-18 at 17 43 55@2x" src="https://github.com/user-attachments/assets/c3a11b21-4e7f-4e90-bdab-a25ab8ee0d1f" /> <img width="2632" height="1288" alt="CleanShot 2026-02-18 at 17 45 04@2x" src="https://github.com/user-attachments/assets/6c7b6ebc-5090-4ede-8f71-859ff7e386aa" /> **References** - https://www.braintrust.dev/docs/integrations/sdk-integrations/vercel - https://www.braintrust.dev/docs/instrument/custom-tracing Closes AI-438
### Changes
Replace hard-coded plan checks with `assistant.advance_model`
entitlement for AI model access control.
- `AIAssistant.tsx` & `ModelSelector.tsx`: Use
`useCheckEntitlements('assistant.advance_model')` instead of `plan.id
!== 'free'`
**Server-side:**
- `org-ai-details.ts`: Check `assistant.advance_model` entitlement via
new `checkEntitlement()` helper
- `entitlements-query.ts`: Add `checkEntitlement()` function with auth
headers support for server-side calls
### Test 1: Free Plan (No Entitlement)
- Open AI Assistant with a Free plan org
- Check model selector defaults to gpt-5-mini
- Click dropdown - verify gpt-5 shows "Upgrade" badge
- Click gpt-5 - should redirect to billing page
- Assert that you can send a message to the Assistant and that you get a
response
<img width="335" height="156" alt="image"
src="https://github.com/user-attachments/assets/2458cbd1-46ab-46cd-babb-09a47e163fd0"
/>
### Test 2: Paid Plan (Has Entitlement)
- Switch to Pro/Team/Enterprise org
- Check model selector defaults to gpt-5
- Click dropdown - verify gpt-5 shows checkmark (no badge)
- Switch to gpt-5-mini, then back to gpt-5 - should work without
redirect
- Assert that you can send a message to the Assistant and that you get a
response
Add entitlement check for storage image transformations to properly control access based on organization's plan. ### Changes - Add `storage.image_transformations` entitlement check to Storage Settings - Add `storage.max_file_size.configurable` entitlement check to Storage Settings - Disable image transformation toggle based on entitlement instead of just free tier check - Wait for entitlement loading before initializing form values - Use entitlement value as fallback when setting default imageTransformationEnabled state - Consolidate all loading states into a single isLoading variable for cleaner code ### Testing - Head to `/project/_/storage/files/settings` with an Org on the Free Plan - Assert that the Image Transformations toggle is disabled - Head to `/project/_/storage/files/settings` with an Org on the Free Plan - Assert that the Image Transformations toggle is enabled - Toggle it, save and refresh the page to assert that your changes were correctly saved
- adds create more toggle to column and row sheets - if you toggle it on, after submitting the sheet will stay open and the form will reset.
- Expose Braintrust span ID to client via `x-braintrust-span-id` response header, captured in chat transport - On feedback submission, call `logFeedback()` with `scores["User Rating"]` (1/0), `comment`, and on the root span assign `metadata.feedbackCategory` - Silently skipped when tracing is disabled (HIPAA, missing env vars) - Log `requestedModel` in trace metadata so we can see what model the user selected vs what was actually used after throttling Example traces: - [Thumbs up](https://www.braintrust.dev/app/supabase.io/p/Assistant/trace?object_type=project_logs&object_id=5a8d02e5-b3b6-40cc-ba76-ecee286478f4&r=0bb71680-784c-45c1-a234-cba0242562d6&s=0bb71680-784c-45c1-a234-cba0242562d6) - [Thumbs down + negative feedback](https://www.braintrust.dev/app/supabase.io/p/Assistant/trace?object_type=project_logs&object_id=5a8d02e5-b3b6-40cc-ba76-ecee286478f4&r=d5a78084-6c9a-4230-8615-1e864bb9bac7&s=d5a78084-6c9a-4230-8615-1e864bb9bac7) <img width="645" height="173" alt="CleanShot 2026-02-19 at 13 30 25@2x" src="https://github.com/user-attachments/assets/6c463e83-27c6-4afb-a8d0-a329ed61270a" /> Closes AI-442
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )