- First-time visitors see a password setup page instead of open access
- Password persisted to SQLite (env var DBX_PASSWORD takes priority)
- Add change password in settings dialog (Security tab, web only)
- Split settings dialog into Editor and Security tabs
- Argon2 hashing for all password storage
Extract 11 composables and 5 layout components from App.vue, reducing it
from 1921 to 327 lines. Unify dialog overlay style across DialogContent
and DialogScrollContent for consistent backdrop appearance.
Introduce src-web (axum HTTP server) exposing all 43 database operations
as REST APIs with SSE streaming for AI, transfers, and SQL file execution.
Frontend adapts automatically between Tauri and HTTP backends via api.ts.
Includes password authentication, Docker packaging, and login page.
- Add left/right scroll buttons with gradient overlay for tab overflow
- Sync scroll button visibility on resize and tab changes
- Use invisible pin button to prevent tab width jump on hover
- Simplify tab layout by removing mode icon, reordering badge
- Change sidebar table/view to open on double-click instead of single-click
- Filter empty strings from STRING_AGG/LISTAGG splits in SQL Server, Oracle, MySQL
- Emit INCLUDE clause only for PostgreSQL and SQL Server (not MySQL/SQLite)
- Emit WHERE clause only for PostgreSQL, SQL Server, SQLite (not MySQL)
- Replace index type free-text input with dropdown for all 5 database types
- Fix hardcoded column count in resize handle (use indexColLabels.length - 1)
- Fix pg_get_indexdef type mismatch: cast k.n from bigint to integer
- Replace text inputs with dropdown menus for index and included column selection
- Add search/filter support in column dropdowns for large column lists
- Highlight selected items with background color for easy toggling
- Add resizable column widths via drag handles on table headers
- Add index type, included columns, filter, and comment columns to index table
- Add filter, index_type, included_columns, and comment fields to IndexInfo
- PostgreSQL: query pg_am for index type, use indnkeyatts to split key/included columns, retrieve index comments via obj_description()
- SQL Server: add type_desc, filter_definition, included columns via is_included_column
- MySQL: add INDEX_TYPE from information_schema.STATISTICS
- Oracle: add INDEX_TYPE from ALL_INDEXES
- DDL generation: add USING (PostgreSQL), type prefix + INCLUDE + WHERE (SQL Server), COMMENT ON INDEX (PostgreSQL)
- Frontend: update types, state mapping, SQL generation, and i18n translations
- Auto-focus DBX window when MCP opens a table or executes a query
- Ensure connections are loaded before handling MCP events
- Add /execute-query bridge route and dbx_execute_and_show tool
- Format all tool responses as markdown tables (less tokens, more readable)
- Extract shared bridgeRequest helper to reduce duplication