- Keep the latest sort or filter change authoritative by aborting superseded table reads and ignoring older async URL writes, so slow earlier queries can no longer overwrite the visible rows.
- Keep wide text and JSON columns capped to the grid's existing max width, so oversized cell values clip with an ellipsis instead of blowing the table open.
- Fix staged PostgreSQL enum-array edits, so saving a changed
enum[]cell writes successfully instead of failing on an invalid quoted cast type. - Keep PostgreSQL
dateandtimestampcells aligned with the stored values by normalizingpostgres.jsresults before Studio renders them, so host-local timezones no longer shift table timestamps. - Let
Cmd/Ctrl+Cfall back to the focused grid cell when nothing is selected, so spreadsheet-style keyboard navigation still supports immediate copy. - Simplify the Compute demo bundling path around
@prisma/[email protected], so the deploy build no longer manually copies PGlite runtime assets and plain Bun server bundles no longer need--packages external. - Auto-arrange the schema visualizer with ELK, space disconnected tables cleanly, and add a
Reset layoutaction while keeping dragged node positions when you leave and return. - Add optional Prisma Streams setup support, wire the
ppg-devdemo to Prisma Dev's Streams server, and show live stream names in a new sidebarStreamssection. - Add a dedicated stream event view with infinite scrolling, expandable rows, and summary columns for time, key, indexed fields, preview text, and payload size.
- Keep stream event counts live while a stream is open, and reveal newly arrived events in 50-row batches without snapping the current list.
- Work around the current
@prisma/devCompute asset-resolution gap by copying stable PGlite runtime filenames into the deploy bundle and bundling the Prisma Streams local worker, so the packaged demo can boot correctly on Compute with WAL syncing still enabled. - Add automatic Compute preview deploys for pull requests, so branch builds land in the
studio-previewproject, comment their live URL on the PR, and clean themselves up when the branch is deleted.
- Keep AI-generated SQL staged in the editor instead of auto-running it, and focus the SQL editor so
Cmd/Ctrl+EnterorRun SQLstays the explicit execution step.
- Remove the temporary
aiFilterandaiGenerateSqlcompatibility path, sollm({ task, prompt })is the only supported Studio AI integration hook.
- Collapse Studio AI integration to one optional
llm({ task, prompt })hook, so table filtering, SQL generation, and SQL result visualization all reuse the same embedder transport and typed error contract.
- Add AI SQL result visualization with a right-aligned
Visualize data with AIsummary action, automatic chart generation for AI-written queries when the model says the result is worth graphing, original AI-request context passed into chart generation, a centered/clamped in-grid chart band, and clearer retry handling when the provider hits its output token limit. - Keep
Generate SQL with AIrequest history in local TanStack storage, and let an empty focused AI prompt browse older requests withArrowUp/ArrowDownas placeholder previews before committing one back into the input.
- Add optional AI SQL generation in the SQL view, now with concrete database-engine prompt context, immediate execution of the generated query, and up-to-two AI correction retries when the database returns an execution error.
- Keep the local Anthropic AI-filter demo out of server logs by avoiding API-key and prompt logging.
- Honor Prisma's
CHECKPOINT_DISABLE=1telemetry opt-out so embedded Studio can suppress checkpoint usage-data requests. - Add live theme controls to the
Cmd/Ctrl+Kpalette, including aMatch system themetoggle that follows the real system color scheme, inlineLight/Darkoverrides, keyboard-selectable appearance rows, pre-paint theme syncing plus view-transition smoothing to avoid flicker, and dark-mode fixes that recolor Studio surfaces while keeping confirmation dialogs, toolbar buttons, filter pills, staged-edit cells, visualizer nodes, grid content, pagination text, and the Prisma navigation logo readable. - Keep command-palette theme toggles working in Chrome, so
Match system themecan be turned off again by mouse or keyboard without dismissing the palette.
- Polish the
Cmd/Ctrl+Kcommand palette spacing and standardize its ShadCN command shell, and switch the tablecopy asexport menu to standard ShadCN menu primitives with a proper checkbox toggle.
- Add inferred reverse relation columns for inbound foreign keys, so parent tables can jump straight into filtered related rows without manually rebuilding the reverse lookup.
- Tighten the table footer into a single pagination control group with an editable page field, a preset rows-per-page dropdown, and a shared infinite-scroll mode that always loads in fixed 25-row chunks, fills the viewport, and appends new rows without jumping back to the top.
- Keep the sticky top-left selector header above the scrolling selector column, so the empty corner cell stays visible while the grid moves.
- Wrap long SQL editor lines inside the SQL view instead of letting the query input stretch past the viewport width.
- Stage edits across multiple cells and rows, add spreadsheet-style focused-cell navigation with arrow keys,
Enter, andShift-selection, keep staged and inserted cells anchored with visible focus/highlight treatment, and confirm or lock batch write flows until the user saves or discards.
- Add a
copy astoolbar menu for selected rows and cells, with Markdown/CSV copy and save actions plus optional column headers.
- Keep Studio usable when startup introspection fails by showing retryable diagnostics, preserving the last successful schema snapshot on refresh errors, and falling back to
UTCwhen non-critical timezone metadata cannot be read. - Add a counted delete confirmation dialog for selected table rows, so destructive row deletes are explicit before they run.
- Keep the
Cmd/Ctrl+Kpalette scrolled to the active keyboard selection, so moving into lower results no longer highlights hidden commands.
- Add a compact
Cmd/Ctrl+Kcommand palette with context-aware table actions, top-3 table navigation, ax more...handoff into the existing sidebar table search, centered popup styling for embedded Studio, immediate arrow-key navigation on open, and two-modeSearch rows/Filter with AIcommands that either focus the toolbar inputs or execute typed payloads directly. - Keep the original AI filter request attached to generated filter pills, showing it on hover in a green info bubble while preserving the existing yellow warning bubble for invalid filters.
- Animate pinned and drag-reordered columns into their new positions so table layout changes clearly slide instead of abruptly jumping.
- Improve grid column resizing by centering the resize handle on the real header boundary, widening the hit target, capping default widths at 400px, and clipping overflowing header/cell content when columns are narrowed.
- Keep pagination controls visible while loading another page of the same result set instead of letting the footer disappear during the fetch.
- Let the existing sidebar table-name filter support
ArrowUp/ArrowDownandEnter, close itself on selection, and hand focus to the next table grid so filtered table browsing stays fully keyboard-driven.
- Remove the built-in Studio fullscreen header button, and keep fullscreen as a demo-owned browser control instead of package-level chrome.
- Validate saved SQL filter pills in the background with the shared SQL-lint transport, turning broken
WHEREclauses into yellow warning pills with the lint error while leaving the already-applied URL filter untouched.
- Add optional AI-assisted table filtering so embedders can translate natural-language requests into the same inline, URL-shareable filters used by manual filtering, with type-aware operator rules, one-shot correction retries, and yellow warning pills for filters that are still syntactically invalid.
- Hide the AI filter affordance unless Studio is actually configured with an
aiFilterhook, and let the local demo disable Anthropic-backed AI filtering explicitly throughSTUDIO_DEMO_AI_FILTERING_ENABLED. - Add advanced inline SQL filter pills that accept raw
WHEREclause fragments, keep them URL-shareable like normal filters, and let AI filtering fall back to SQL only when predefined operators cannot express the request. - Keep inline filter pills synced with the URL when switching between tables, so returning to a table does not resurrect stale filters that are no longer applied.
- Keep the SQL editor responsive after large result sets by isolating the result grid from editor typing, so follow-up query edits do not freeze the view.
- Keep inline filter pills visually stable inside embedded hosts by explicitly resetting pill control sizing, font metrics, and button/input appearance.
- Filter tables faster with a simple column picker and fixed inline filter pills that stay visible above the grid, discard unused drafts cleanly, and keep URL-shareable filters intact.
- Keep SQL drafts stable across navigation by restoring from persisted local storage state and avoiding default-query overwrites, and simplify SQL execution controls with a single Run/Cancel toggle button.
- Fix PostgreSQL SQL-lint fallback compatibility by using plain
EXPLAINoutput, avoiding object-shaped payloads that some BFF executors reject.
- Bring SQL editor linting to MySQL and SQLite with inline diagnostics, while keeping dialect-aware highlighting and schema autocomplete across all supported SQL engines.
- Upgrade SQL authoring with a CodeMirror-based editor that adds dialect-aware highlighting and live schema autocomplete.
- Add inline PostgreSQL SQL lint diagnostics over the existing authenticated BFF channel, with strict guardrails for single-statement parse/plan validation.
- Run SQL quickly with
Cmd/Ctrl+Enter, including statement-at-cursor execution for multi-statement scripts.
- Improve wide-table responsiveness with center-column virtualization and lower main-thread render work during pagination and interaction.
- Default table sorting to primary key ascending when the active table has a primary key.
- Persist pinned columns in URL state via
pin=..., including pinned-column order. - Replace header dropdown actions with inline pin/sort controls that stay visible when active and appear on hover when inactive.
- Fix pinned-column rendering edge cases with virtualization and sticky layering.
- Stabilize pinned-column drag reorder so URL/state updates are reliable and cross-zone drags do not shift non-dragged headers.
- Improve column resize usability by realigning and widening the resize hit target at the header boundary.
- Navigate large schemas faster with inline sidebar table-name search that updates instantly and supports literal special characters like
_. - Search rows in the active table with a dedicated global search that combines text matching with typed matching for booleans, numbers, UUIDs, dates, and times.
- Spot matches quickly in results with yellow in-cell highlights for matching text.
- Keep full-table search safe on large datasets with debounced input, one active search at a time, and a clear 5-second timeout message when scans are too expensive.
- Expand PostgreSQL row search coverage to built-in type families beyond plain text, including JSONB and array-backed data via text-rendered fallback matching.
- Hide row-search controls automatically when connected to a database adapter that does not support full-table row search.
- add a supported
bun buildflow for thedemo:ppgserver viapnpm demo:ppg:build/pnpm demo:ppg:bundle, externalizing package imports so Prisma Dev can load PGlite runtime assets fromnode_modulesin bundled runs - make demo server project-root resolution resilient for bundled output paths so source watching and CSS entry loading still resolve correctly
- align
engines.nodewith Prisma runtime support (^20.19 || ^22.12 || ^24.0) so Node 20.19.x CLI consumers can install@prisma/studio-core - add a dedicated SQL view with raw query execution, cancel support, result rendering, and session query history replay
- migrate Studio’s active-table data flow and shared table UI state to TanStack DB collections, replacing ad-hoc React Query cache patching and local hook state for filtering, sorting, selection, staged rows, and shared Studio UI preferences
- enforce numeric SQL ordering semantics for numeric columns in PostgreSQL select queries
- reset pagination to the first page when table sorting changes
- serialize sort/page URL writes so sort changes are not dropped on non-zero pages
- preserve adapter row order in grid rendering so URL-driven sorting is reflected in visible row order
- prevent UI-state cleanup crashes when ephemeral keys have already been removed
- clarify timestamp/time editing context by labeling picker inputs with the local UTC offset
- clear stale multi-cell selection highlights when clicking outside the selected range
- prevent column-header text stretch/shrink artifacts during drag reordering
- fix bottom pagination bar clipping so the page input remains fully visible
- fix table-switch selection regressions so column mapping rehydrates per schema and FK/reference columns (and columns to their right) remain selectable and included in copied row output
- harden context-menu copy semantics by honoring explicit empty-string
copyText, preventing duplicate clipboard writes from chained events, and centralizing grid interaction suppression checks used by grid selection and cell editing
- elevate Studio grid editing with spreadsheet-like interactions: rectangular multi-cell selection, drag-to-expand ranges, bulk copy/paste across cells and rows, and row selection mode from the spacer column (drag, shift-toggle, right-click, and top-left select-all toggle)
- improve reliability and polish of selection/edit workflows by restoring clean text-vs-cell selection transitions, preserving click-to-edit behavior, preventing context-menu copy click-through side effects, and keeping pinned spacer cells visually correct while horizontally scrolling
- Moved to a different repo. No longer differentiates between OSS and licensed. No longer supports Accelerate.
- fix introspection errors in vitess
- enable mysql in accelerate.
- show parameters in console
- sql.js executor
- apply transformations in sqlite writes.
- sqlite nullable was flipped. also no handling of INTEGER PRIMARY KEY being non-nullable implicitly.
- sqlite auto-increment introspection
- sqlite default value introspection
- mysql default value introspection.
- lots of improvements to inputs, cells, defaults, etc.
- (postgres) column default value introspection
- implement postgres autoincrement introspection
- proper handling of composite primary keyss
- core is now properly documented with updated licensing and README.
- sort tables alphabetically in nav
- fix select query conflicts
- mysql support
- sqlite support
- removed ctid as it was breaking reading from views
- remove @prisma/client from peer deps.
- fix SSR full page refresh failures.
- tracking.. shh!
- Fix padding on icon buttons
- add postgresjs executor
- fix issues with enums and uuids
- Adds createPrismaPostgresHttpClient wrapper
- Fix svg bundling
- Fix bumping
- Include license file
- Fix empty publish
- remove inferRowFilter from public API.
- fix inserts failing for special data types.
- Reload schema on refresh
- fix no floaters when in fullscreen mode
- Remove inclusion in JS
- Fix CSS
- Fix uuid filters
- Upgrade to Tailwind 4
- Fix CSS
- Cell validations have been added
- Added darkmode support, major improvements to overall theming
- filtering by enum was not working
- build issue with esbuild+reactflow and require('react')
- Bump for console
- accelerate http client is now an executor. added abort signal supports to adapters and executors.
- pglite adapter and executor