## 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?
Bug fix for Studio notebook previews.
## What is the current behavior?
Notebook diffs display the raw database_identifier value. This exposes
opaque database IDs and does not communicate whether the cell targets
the primary database or a read replica.
Related issue:
[https://linear.app/supabase/issue/FE-4246](<https://linear.app/supabase/issue/FE-4246>)
## What is the new behavior?
Notebook database metadata is resolved independently from existing
selector formatting:
* an omitted database identifier is Primary
* an identifier matching the project ref is Primary
* other identifiers show a loading state while databases load
* a loaded non-primary match is Replica
* an unmatched identifier is Unknown
* database lookup failures use a neutral unavailable state
Labels are compact: Database: Primary, Database: Replica, and Database:
Unknown.
The databases query is enabled only when a preview contains an explicit
non-primary identifier.
## Additional context
Validation:
* 39 focused notebook preview tests
* Studio typecheck
* targeted ESLint
* Prettier check
* git diff --check
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Notebook previews now identify database targets as primary, read
replica, or unknown.
* Database metadata is resolved automatically when needed.
* Loading states display a clear “Loading database…” indicator.
* Database metadata now handles unavailable, hidden, and error states
more clearly.
* Notebook entries reflect updated database information before and after
replacement.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->