What's New
New features, improvements, and notable changes in each SQLRooms release. For migration steps and breaking changes, see the Upgrade Guide.
0.29.0 (upcoming)
Sonner toast integration**
Toaster now renders Sonner with SQLRooms theme-aware styling, and examples now use Sonner notifications instead of useToast in file-upload flows. @sqlrooms/ui also exports Sonner's toast function directly for app-level notifications.
Command system enhancements
- Command keystrokes: Commands can now declare
ui.keystrokes(single key combo or array). Keystrokes are shown in the command palette and can trigger commands directly when the palette is mounted. - Middleware pipeline:
createCommandSlicenow supports command middleware viacreateCommandProps((command, input, context, next)), enabling clean telemetry, feature-flag, and confirmation layers without modifyinginvokeCommand. - Telemetry hooks:
createCommandPropssupports invocation lifecycle callbacks (onCommandInvokeStart,onCommandInvokeSuccess,onCommandInvokeFailure,onCommandInvokeError) for centralized instrumentation. - Room shell wiring:
createRoomShellSlicenow acceptscreateCommandPropsand passes it tocreateCommandSlice, so shell-based apps can configure command middleware/telemetry from one place. - Coverage + docs: Added expanded unit tests for command execution/middleware behavior and a new Developer Guide page: Commands.
0.28.0
- Tailwind v4: SQLRooms now uses Tailwind v4, including the new CSS-first setup that simplifies project styling and configuration (#324). For Tailwind migration details, jump to the upgrade guide.
- Cosmos.gl upgrade: updates the Cosmos.gl integration to include the latest improvements in this powerful graph visualization library (#379)
- Command system implementation: Command Palette UI added to shells (toggle with
Ctrl/Cmd+K, sidebar button, searchable/grouped commands, per-command shortcuts, JSON input editor, and programmatic open/close controls). A global command system and tooling is also introduced to register, list, validate, and execute commands, with adapters for CLI/MCP and AI tool integrations, plus DB and editor command sets (#382)
0.27.0
@sqlrooms/data-table: RowSelection API
DataTablePaginated now includes a first-class row selection API with checkbox support.
enableRowSelection: enables the checkbox columnrowSelection: controlled row selection stateonRowSelectionChange: callback fired when selection changes
Checkbox clicks are handled independently from row click handlers, so selecting via checkbox does not double-toggle rows.

Example:
import {RowSelectionState} from '@sqlrooms/data-table';
import {useState} from 'react';
const [rowSelection, setRowSelection] = useState<RowSelectionState>({});
<DataTablePaginated
{...arrowTableData}
enableRowSelection={true}
rowSelection={rowSelection}
onRowSelectionChange={setRowSelection}
onRowClick={({row}) => {
setRowSelection((prev) => ({
...prev,
[row.index]: !prev[row.index],
}));
}}
/>;@sqlrooms/room-store: bound useRoomStore API + useRoomStoreApi
useRoomStore now exposes imperative Zustand store methods (getState, setState, subscribe, getInitialState) in addition to selector usage. This makes event handlers and async callbacks more ergonomic while preserving existing reactive selector patterns.
For context-based access, use the new useRoomStoreApi() hook to read/write state imperatively from components wrapped in RoomStateProvider.
Introducing MosaicSlice
A new centralized state management system for Mosaic integration. The MosaicSlice provides a unified way to manage Mosaic connections, coordinate cross-filtering between visualizations, and create reactive data queries that automatically update based on user selections.
Key features:
- Automatic connection management with DuckDB
- Named selections for cross-filtering between multiple visualizations
useMosaicClienthook for custom visualization clients- Support for custom visualizations that respond to Mosaic selections
See the Mosaic API documentation for details and check out the DeckGL + Mosaic example for a complete implementation.
Additional 0.27.0 highlights
- AI: parallel sessions, persisted open session tabs, provider options, prompt suggestion improvements, inline API-key prompt in chat, and output copy-to-clipboard.
- Vega/Charts: actions toolbar, chart sizing fixes, improved SQL error display, hover-only chart actions, and responsive chart labels.
- Kepler: configurable injector with custom recipes, legend/timeline fixes, and stability improvements across integration edge cases.
- Room/store + persistence:
storeKeysupport increateRoomStoreandpersistSliceConfigshelper improvements. - SQL/editor + query UX: improved explain output, query panel/tab mapping fixes, and query cancellation support in create-table flows.
0.26.1-rc.7 (2025-12-05)
Replaced barrel exports across all modules
Barrel exports (i.e., export * from ...) were replaced across all modules to improve tree-shaking, reduce bundle size, and avoid import path ambiguities. Direct/explicit exports now ensure only the required symbols are included in consumers' builds, making dependencies clearer and preventing accidental re-exports or circular dependencies.
Additionally, "sideEffects": false was added to all packages. This signals to bundlers that the modules are free of side effects, enabling better tree-shaking and further reducing the final bundle size.
TabStrip component in @sqlrooms/ui
A composable tab strip with drag-to-reorder, inline renaming, and a search dropdown for reopening closed tabs. Supports custom tab menus and flexible layouts via subcomponents (TabStrip.Tabs, TabStrip.SearchDropdown, TabStrip.NewButton).
New: the search dropdown can optionally sort items by recent usage via sortSearchItems="recent" and an optional getTabLastOpenedAt accessor.
Kepler integration
Added Kepler.gl integration module for geospatial data visualization.

Check the Kepler example
AI RAG module
New @sqlrooms/ai-rag module for Retrieval Augmented Generation. Query your documentation using vector similarity search powered by DuckDB's native vector capabilities.

Check the AI RAG example
0.26.0 (2025-11-17)
AI SDK v5
We migrated to Vercel AI SDK v5. Now supporting agents: check the ai-agent example
