- Replace setTimeout-based scheduling with node-cron for precise timing
- Add "New Schedule" button to empty state in sidebar
- Add cron expression validation before scheduling
- Remove comment dividers per style preference
- Add ScheduledQuery and ScheduledQueryRun types to shared package
- Create scheduler service in main process with cron-parser for scheduling
- Add IPC handlers for scheduled queries CRUD operations
- Update preload to expose scheduled queries API
- Create Zustand store for scheduled queries state management
- Add UI components:
- ScheduledQueriesDialog for listing and managing schedules
- ScheduledQueryFormDialog for creating/editing schedules
- ScheduledQueryRunsDialog for viewing run history
- ScheduledQueries sidebar component
- Support schedule presets (every minute, hourly, daily, etc.) and custom cron
- Include desktop notifications on completion/error
- Store run history with configurable retention
Fixes Linux build by moving @data-peek/shared from dependencies to
devDependencies. The shared package is bundled by Vite via the @shared
alias, so it's not needed at runtime. Also excludes .turbo directories
from the build.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: hide quick editor panel and virtualization for longer list
* fix: Address PR review feedback
- Add dynamic size estimation for virtualized items based on expanded state
- Add effect to recalculate virtualizer when items expand/collapse
- Fix keyboard shortcut whitespace issues in tab-query-editor.tsx
* fix: prevent duplicate autocomplete suggestions in SQL editor
Use singleton pattern for Monaco completion provider to prevent
duplicates when multiple editor tabs are open. Also disable
word-based suggestions since the custom provider is comprehensive.
* feat(ai): prevent auto-execution of destructive SQL queries
Add safety guardrails to ensure UPDATE, DELETE, DROP, and TRUNCATE
queries are never auto-executed from the AI chat. Users must manually
review and execute these queries in a new tab.
- Add requiresConfirmation field to AI query response schema
- Update system prompt to require confirmation for destructive queries
- Hide "Run Query" button when requiresConfirmation is true
- Show "Review in Tab" button with warning styling instead
* feat: handle pro license
* feat: add customer portal
* feat: fix a few things
* chore: add simeple umami self hosted analytics
* fix: add globalEnv to turbo.json for Vercel builds
Declares environment variables required by the web app so Turborepo
passes them through during Vercel builds.
* refactor: use next/script for analytics with afterInteractive strategy
Replaces raw script tag with Next.js Script component for better
loading optimization, de-duplication, and automatic placement.
* feat: add MSSQL support to the application
- Introduced MSSQL database adapter and integrated it into the existing database management system.
- Updated connection handling to support MSSQL-specific options, including Active Directory authentication.
- Enhanced SQL query generation to accommodate MSSQL syntax, including TOP clause for limits and schema handling.
- Added UI components for MSSQL connection setup and management.
- Updated package dependencies to include mssql and related types.
* fix: attend nit-picks from CodeRabbit
- Moved identifier quoting logic from DDL and SQL builders to a new utility function in sql-utils.ts for better code reuse and maintainability.
- Updated the quoteIdentifier function in both ddl-builder.ts and sql-builder.ts to utilize the new utility function.
- Enhanced MSSQL adapter to improve data type resolution logic.
- Improved connection string parsing in add-connection-dialog.ts to support multiple key formats for parameters.
- Updated tab-store.ts to handle quoting for MSSQL and other database types consistently.
* fix: update MSSQL support to disable 'if not exists' functionality
- Changed the MSSQL adapter to set 'supportsIfNotExists' to false, aligning with the current database capabilities.
* feat: UX improvements - click to edit, enum dropdowns, settings, JSON viewer, ERD layout
- Allow clicking on any cell to edit directly (was double-click)
- Add enum dropdown support for enum type columns
- Create global settings store with localStorage persistence
- Add setting to hide query editor by default for table previews
- Add setting to expand JSON objects by default in viewer
- Implement JSON cell editing via sheet editor with live preview
- Improve JSON cell preview with partial content and tooltip
- Fix ERD diagram auto-layout with better spacing to prevent overlapping
- Add Switch UI component from Radix
* chore: small react issue
* feat: on click to editable table data
* chore: fix lock file
* feat: Add support for PostgreSQL expression indexes and refine data table cell editing interactions.
* Update apps/desktop/src/main/adapters/postgres-adapter.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix: pin electron version for electron-builder compatibility
Remove semver range (^) from electron dependency to fix
"Cannot compute electron version from installed node modules" error
during postinstall.
Fixes#6🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: fix lock files
* chore: fix lock file
---------
Co-authored-by: Claude <noreply@anthropic.com>
* db: drizzle migrations
* feat: implement user feedback!
Thanks @Mihaly_NC for the feedback!
* feat: expandable and collapsible query panel
* chore: formatting
* chore: bump version
* chore: fix a small oopsie
- Add mysql2 package for MySQL connectivity
- Create database adapter interface with PostgreSQL and MySQL implementations
- Update ConnectionConfig to include dbType field for database type selection
- Refactor IPC handlers to use adapters for database-agnostic operations
- Update connection dialog with database type selector (PostgreSQL/MySQL)
- Support MySQL-specific schema fetching, DDL reverse engineering, and EXPLAIN
- Add MySQL type code to human-readable name mapping
- Ensure backward compatibility for existing PostgreSQL connections
- Add table search in schema explorer with real-time filtering
- Add ERD visualization using @xyflow/react to view table relationships
- Fix tab switching shortcuts (Cmd+Option+Arrow instead of Cmd+Tab)
- Fix duplicate tab bug when clicking already-opened table
- Add "Close All Tabs" option to tab context menu
- Add future-plan.md documenting planned features
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add edit mode toggle for table-preview tabs with visual indicators
- Implement cell editing with type-aware inputs (text, number, date, boolean)
- Support row deletion (mark for deletion) and new row insertion
- Build parameterized SQL queries for PostgreSQL, MySQL, and SQLite dialects
- Add SQL preview modal before committing changes
- Execute edits in transactions with rollback on error
- Extract JsonCellValue and FKCellValue to shared components
- Add edit-store for managing edit state per tab
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>