- Add blog infrastructure using next-mdx-remote for MDX rendering
- Create blog listing page at /blog with terminal-inspired design
- Add dynamic blog post pages at /blog/[slug]
- Convert existing notes to blog posts (AI assistant, performance analyzer)
- Update sitemap to dynamically include blog posts
- Add Blog link to header and footer navigation
- Style blog content with terminal-themed code blocks and typography
* chore: fix uii/ux
* feat: add schema caching with background refresh and notifications
- Cache schemas and custom types in memory and disk for faster load times
- Background refresh when loading from cache to keep data fresh
- Add toast notifications to inform users of schema updates
- Show refresh spinner and cache status in schema explorer tooltip
- Fall back to stale cache with warning when refresh fails
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add periodic auto-update checks with toast notifications
- Add periodic update checks every 4 hours (in addition to startup check)
- Show toast notification when update is downloading
- Show persistent toast with "Restart Now" button when download completes
- Extend notification store to support action buttons
- Add IPC events for updater communication with renderer
- Create useAutoUpdater hook for listening to update events
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add side sheet for row insertion with smart field inputs
- Add AddRowSheet component with type-aware field inputs:
- UUID fields with generate button
- Date/time fields with picker and "Now" button
- Boolean fields with toggle switch
- Enum fields with dropdown selection
- JSON fields with textarea
- Add dropdown menu for Add Row with Form/Quick Add options
- Add duplicate row functionality with row action dropdown
- Auto-clear serial/identity PKs when duplicating rows
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: handle foreign key fields properly in add row sheet
- Check for FK before UUID type to prevent random UUID generation for FK columns
- Add searchable dropdown for FK fields that fetches values from referenced table
- Show loading state while FK values are being fetched
- Fall back to manual input if FK values can't be loaded
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: replace Select with Popover-based combobox for FK fields
The Select component doesn't work well with search input inside.
Using Popover with native input provides proper searchable combobox UX.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: formatter
* perf: add useCallback and useMemo optimizations to SmartField
- Wrap generateUUID, setNow, clearValue in useCallback to prevent
recreation on every render
- Add useMemo for FK value filtering to avoid recalculating on
every render
- Add self-review documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: remove duplicate db:invalidate-schema-cache handler
Removed duplicate IPC handler registration that was causing
"Attempted to register a second handler" error on startup.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add row button available in normal mode
- Show "Add Row" button in normal view mode (not just edit mode)
- Clicking it opens the form sheet directly
- On submit, automatically enters edit mode and adds the row
- Provides a faster workflow for inserting data without manually
entering edit mode first
Adds `pnpm admin:grant-license` command to grant free licenses to
contributors without credit cards. Creates customer, generates license,
saves to DB, and sends welcome email via Resend.
Usage:
pnpm admin:grant-license --email contributor@example.com
pnpm admin:grant-license --email x@y.com --name "Name" --plan team
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* 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.
* 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