Enables searching for a specific column value (e.g. carrier_id=123) across all databases on a PostgreSQL server. The backend creates temporary connection pools per database (semaphore-limited to 5), queries information_schema for matching columns, and executes read-only SELECTs with real-time progress events. Results are grouped by database/table in a new "Entity Lookup" tab.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a Table/JSON segmented toggle to both the query workspace and
table data viewer, allowing users to switch between tabular and
pretty-printed JSON display of results without exporting to a file.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tokio::spawn panics in .setup() because Tauri's Tokio reactor isn't
active yet at that point. tauri::async_runtime::spawn handles this.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- `make build` now uses --no-bundle so install doesn't fail on
platform-specific bundlers (e.g. linuxdeploy for AppImage)
- Separate `make bundle-*` targets for deb, rpm, appimage, macos, windows
- `make bundle` still builds everything for the current platform
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add an MCP (Model Context Protocol) server that starts on 127.0.0.1:9427
at app launch, sharing connection pools with the Tauri IPC layer. This
lets Claude (or any MCP client) query PostgreSQL through Tusk's existing
connections.
MCP tools: list_connections, execute_query, list_schemas, list_tables,
describe_table.
Also add a Makefile with targets for dev, build (cross-platform),
install/uninstall, lint, and formatting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Column sort by header click in table view (ASC/DESC/none cycle, server-side)
- SQL formatter with Format button and Shift+Alt+F keybinding (sql-formatter)
- Table size and row count display in schema tree via pg_class
- Insert row dialog with column type hints and auto-skip for identity columns
- Saved queries (bookmarks) with CRUD backend, sidebar panel, and save dialog
- Active sessions monitor (pg_stat_activity) with auto-refresh, cancel & terminate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a refresh/reconnect button next to the connection selector.
Clicking it disconnects and reconnects the active connection, then
invalidates all cached queries to refresh schema, tables, roles, etc.
Shows a spinning animation while reconnecting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Fields/DSN toggle in New Connection dialog. DSN mode accepts a
PostgreSQL connection string (postgresql://user:pass@host:port/db?sslmode=...)
and auto-parses it into individual fields. Switching between modes
syncs the data bidirectionally.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Admin sidebar tab with database/role management panels, role manager
workspace tab, and privilege dialogs. Backend provides 10 new Tauri
commands for CRUD on databases, roles, and privileges with read-only
mode enforcement. Context menus on schema tree nodes allow dropping
databases and viewing/granting table privileges.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Changed from fixed w-[200px] to w-auto max-w-[280px] so the trigger
sizes to its content without clipping the environment badge.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SelectValue already renders the color dot from the selected item,
so the explicit one in the trigger was redundant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SelectValue already renders the badge from the selected item content,
so the explicit badge in the trigger and the standalone toolbar badge
were redundant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Visual badges help distinguish environments across the UI to prevent
running dangerous queries on production. Environment color takes
priority over custom connection color for the toolbar border.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export dropdown (CSV/JSON) appears in the WorkspacePanel toolbar when
query results are available, and in the TableDataView toolbar for table
data. Uses the Tauri save dialog for file path selection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add four developer/QA features:
- Connection color coding: color picker in dialog, colored indicators across toolbar, tabs, status bar, and connection selectors
- Query history: Rust backend with JSON file storage (500 entry cap), sidebar panel with search/clear, auto-recording from workspace
- Schema-aware SQL autocomplete: backend fetches column metadata, CodeMirror receives schema namespace with public tables unprefixed
- EXPLAIN ANALYZE visualizer: recursive tree view with cost-colored bars, expand/collapse nodes, buffers info, Results/Explain tab toggle
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Connections default to read-only. SQL editor wraps queries in a
read-only transaction so PostgreSQL rejects mutations. Data mutation
commands (update_row, insert_row, delete_rows) are blocked at the
Rust layer. Toolbar toggle with confirmation dialog lets users
switch to read-write. Badges shown in workspace, table viewer, and
status bar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add TableDataView with pagination, filtering, and inline editing,
TableStructure with columns/constraints/indexes tabs,
PaginationControls, and ExportDialog for CSV/JSON export.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add CodeMirror 6 SQL editor with Ctrl+Enter execution, ResultsTable
with virtual scrolling and resizable columns, ResultsPanel, EditableCell,
WorkspacePanel (editor + results split), and TabContent router.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add SchemaTree with database/schema/category hierarchy, Sidebar with
search, Toolbar, TabBar, StatusBar, and full app layout with
resizable panels.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Rust backend: AppState with connection pool management,
TuskError handling, ConnectionConfig model, and all commands
for connections, schema browsing, query execution, data CRUD,
and CSV/JSON export via sqlx.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set up Vite + React 19 + TypeScript, Tauri v2, Tailwind v4,
shadcn/ui (dark theme), and all core frontend dependencies
(Zustand, TanStack Query/Table/Virtual, CodeMirror, lucide-react).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>