Dora v0.28.0
Immutable
release. Only release title and notes can be modified.
[v0.28.0] - 2026-06-14
Features
- add source metadata layer (
describeConnectionSource,getSourceCaps,isUiActionVisible) so UI visibility follows connection capabilities instead of engine string checks - open CSV, JSON, Parquet, TSV, and NDJSON as readonly data files (DuckDB-backed sessions) with health indicators, recovery actions, and connection summaries
- Save as DuckDB — materialize active data-file sessions into editable
.duckdbfiles - Import files — import CSV/JSON/Parquet as physical tables in native DuckDB file connections
- open SQLite and DuckDB files as editable embedded databases
- drag tabs to reorder them (pinned tabs stay grouped first) (#105)
- open tabs are persisted and restored across relaunch (#98)
- binary/blob cells now show inline hex for small values and a
<type — size>summary (with magic-byte detection) for large ones, instead of a bare byte count (#90) - data-grid filters can be joined with OR via an AND/OR toggle, not only AND (#102)
- JSON/CSV/SQL export now respects the active filters and sort order instead of dumping the whole table or just the loaded page (#99)
- back up a database to a
.sqldump and restore from one via the data-grid actions menu (#103) - "Fix with AI" on a failed query sends the query and error to the AI assistant (#104)
Reliability
- recover gracefully from missing or moved data-file sources when reopening a connection
- clearer failure copy for save/import paths (no active files, destination conflicts, partial imports, schema refresh warnings)
Fixes
- schema-visualizer SVG and PNG export now follows the active theme instead of always exporting dark-theme colours (#112)
- cancelling a Postgres query no longer logs benign "channel closed" error noise (#83)
- SQL console loading shell and editor surfaces now use a themed
--editortoken, so they no longer render a black rectangle in light and non-dark themes (#114) - data-grid column headers show a tooltip with the full column name and type, but only when the label is actually truncated (#115)
- database-studio empty states no longer re-fire their entrance animation on every tab switch, removing the zoom/flicker (#113)
- AI provider status dot is no longer colour-only — it uses a filled vs hollow shape plus
aria-pressed/aria-labelfor screen readers (#116) - SQLite
VACUUM,DETACH DATABASE, and somePRAGMAforms no longer fail to run — they are classified via a keyword fallback when the AST parser rejects them (#94)
Documentation
- README support matrix and Local files section explaining database files vs data files
- add
docs/ai-providers.md— per-provider setup, recommended models, key storage, and troubleshooting (#91)
Tooling
- new
dora-runnerCLI replacing the legacydora-cli/dora-manager-executor(#86) - migrate CI workflows to Blacksmith runners (#87)
Internal
- remove unused
DisabledFeature/NotImplementedcomponents and the deprecateddatabase-studio/api.ts(#95) - drop the inaccurate PgBouncer scaffold comment in
types.rsnow thatuse_simple_queryis fully wired (#92) - model statement execution result as an enum instead of a
returns_valuesbool, making page/column state unrepresentable for non-row-returning queries (#93)