Skip to content

Releases: codeErrorSleep/dbpaw

DbPaw v0.5.13

Choose a tag to compare

@github-actions github-actions released this 16 Jul 03:53

[0.5.13] - 2026-07-15

⚙️ Miscellaneous Tasks

  • Release v0.5.13

DbPaw v0.5.12

Choose a tag to compare

@github-actions github-actions released this 06 Jul 05:19

[0.5.12] - 2026-07-06

⚙️ Miscellaneous Tasks

  • Release v0.5.12

DbPaw v0.5.11

Choose a tag to compare

@github-actions github-actions released this 30 Jun 06:32

[0.5.11] - 2026-06-30

⚙️ Miscellaneous Tasks

  • Bump version to 0.5.11

DbPaw v0.5.10

Choose a tag to compare

@github-actions github-actions released this 29 Jun 04:05

[0.5.10] - 2026-06-29

⚙️ Miscellaneous Tasks

  • Bump version to 0.5.10

DbPaw v0.5.9

Choose a tag to compare

@github-actions github-actions released this 28 Jun 07:25

[0.5.9] - 2026-06-27

🚀 Features

  • Implement MongoDB document browser with CRUD operations
  • Add dynamic schema selection in SQL editor
  • (clickhouse) Add multi-statement query execution support

🐛 Bug Fixes

  • Use bun.lock instead of package-lock.json in lint:web script
  • Dynamic import mocks to exclude from production bundle
  • DB2 list_schemas query, database-aware mock, i18n schema keys, and e2e tests
  • Update API unit tests to match invoke() parameter behavior
  • Clean up anonymous volumes when removing integration test containers
  • Sync mysql integration tests with trait signature changes
  • Update mariadb integration tests for optional table totals
  • Update mariadb command/stateful tests for AppError and services module
  • Use UFCS for RoutineDriver calls in mysql integration test
  • (splitter) Track BEGIN...END blocks to avoid splitting stored procedures
  • Update integration tests for get_table_data include_total param and Option total
  • AI provider bugs and update default models
  • Handle mariadb json fields without row projection
  • (mysql) Guard bool decode to TINYINT columns only
  • Use RoutineDriver UFCS for list_routines/get_routine_ddl in integration tests

🚜 Refactor

  • Split driver-registry into metadata, icons, and tree-config modules
  • ESLint warnings分层治理
  • Extract isTauri/normalizeImportDriver to lightweight platform module
  • (api) Remove legacy invoke overload
  • (api) Strip explicit generics from all invoke call sites

📚 Documentation

  • Add cell editing E2E tests design
  • Add invoke type safety rule to AGENTS.md

⚡ Performance

  • Optimize React re-renders and add opencode config

🧪 Testing

  • Add unit tests for services/api modules
  • Add 68 unit tests for connection_service and DriverCapabilities
  • Add cell editing E2E tests for datagrid
  • Add E2E tests for create database flow
  • Add AI chat E2E tests with sidebar toggle
  • Add AI chat messaging E2E tests
  • Add AI conversation history E2E tests
  • Add AI new conversation E2E tests
  • Add AI Markdown rendering E2E tests
  • Add connection import E2E tests
  • (e2e) Add cell editing scenarios for DataGrid

⚙️ Miscellaneous Tasks

  • Bump version to 0.5.9

DbPaw v0.5.8

Choose a tag to compare

@github-actions github-actions released this 25 Jun 02:12

[0.5.8] - 2026-06-24

🐛 Bug Fixes

  • Show Connection Name field for file-based drivers (SQLite, DuckDB)
  • Wait for keys instead of isLoading in useRedisKeyScan test

🚜 Refactor

  • Use tmp_path helper and split import_tests into two files
  • Split ai.rs into directory module with focused submodules
  • Split import_dialects.rs by database dialect

🧪 Testing

  • Add Connection Name visibility tests for all drivers

⚙️ Miscellaneous Tasks

  • Bump version to 0.5.8

DbPaw v0.5.7

Choose a tag to compare

@github-actions github-actions released this 22 Jun 07:35

[0.5.7] - 2026-06-22

⚙️ Miscellaneous Tasks

  • Bump version to 0.5.7

DbPaw v0.5.5

Choose a tag to compare

@github-actions github-actions released this 15 Jun 10:19

Changelog: (2026-06-15)

419 files changed, 50,154 insertions, 74,965 deletions


✨ New Features

Driver Capabilities System

  • Added DriverCapabilities bitflags for dynamic feature detection
  • New capability sub-traits: ForeignKeyDriver, RoutineDriver, SchemaDriver
  • Added get_driver_capabilities Tauri command and frontend API
  • New useDriverCapabilities hook with module-level cache

Structured Error Handling

  • Added AlreadyExists and PermissionDenied error variants to AppError
  • Added is_retryable() method for structured error classification
  • AppError now crosses IPC boundary directly as structured JSON {code, message, hint, category}

Logging

  • Replaced all println!/eprintln! with structured tracing logging

🏗️ Refactoring

Database Driver Modularization

All major database drivers have been split from monolithic files into modular directory structures:

Driver Modules
ClickHouse connection.rs, query.rs, metadata.rs, table_data.rs, helpers.rs
PostgreSQL connection.rs, query.rs, metadata.rs, table_data.rs
MySQL connection.rs, query.rs, metadata.rs, table_data.rs
SQLite Modular structure
MSSQL Modular structure
DuckDB Modular structure
DB2 Modular structure
Elasticsearch client.rs, search.rs, index.rs, bulk.rs
Cassandra Migrated to DriverResult<AppError>
MongoDB Migrated to DriverResult<AppError>
Oracle Migrated to DriverResult<AppError>

Frontend Component Decomposition

  • ConnectionDialog: Split into ConnectionTypeStep, ConnectionSummaryHeader, ConnectionBasicFields, ConnectionNetworkFields, ConnectionSecurityFields, ConnectionDialogFooter
  • SqlEditor: Extracted useSqlEditorForm, useSqlEditorApi, useSqlEditorActions, useSqlResults hooks + SqlResultsPanel, SqlToolbar components
  • RedisBrowserView: Extracted useRedisSelection, useRedisKeyScan, useRedisDialogs, useRedisBatchOps hooks + KeySearchPanel, KeyListPanel, DetailPanel, BatchOperationsToolbar, RedisBrowserDialogs components
  • RedisZSetViewer: Rewritten with extracted hooks (useZSetEditing, useZSetRangeQuery, useZSetRankScore, useZSetLexRange, useZSetPop) and components

Error Handling Migration

  • Migrated all database drivers from string-tagged errors ([VALIDATION_ERROR], [ERR-1001]) to structured AppError constructors
  • Deprecated From<String> for AppError
  • Migrated connection, transfer, metadata, query, storage, MCP modules to AppError

Command Registry

  • Replaced flat generate_handler! with per-module macros: connection_commands!, query_commands!, metadata_commands!, storage_commands!, redis_commands!, elasticsearch_commands!, mongodb_commands!, system_commands!, mcp_commands!

Service Layer

  • Extracted core functions from command/direct pairs to eliminate duplication
  • Extracted migration system to db/migrations.rs
  • Split connection.rs into connection/ sub-modules
  • Split api.ts into domain-specific modules under services/api/

🐛 Bug Fixes

  • Fixed Cmd+S shortcut not working on macOS in SQL editor
  • Fixed modifier-only keydowns incorrectly triggering shortcuts during recording
  • Fixed missing Cursor and ResultSetMetadata trait imports for DB2 driver
  • Fixed Rust compilation errors and cleaned up imports
  • Fixed TypeScript type errors in refactored components
  • Fixed Elasticsearch compilation errors
  • Fixed write lock release before connection cleanup
  • Resolved all test failures on main (Rust + frontend + lint)

🧪 Testing

  • Added comprehensive behavior tests for SqlEditor, ConnectionDialog, TabContentRenderer, useTabFactory
  • Added behavior tests for useTableClipboard, useTableHotkeys
  • Added hook and view tests for Redis components
  • Added tests for shortcut recorder and match modules
  • Migrated integration test error assertions to new error codes

📦 Dependencies

  • Added bitflags for driver capability flags

🔧 CI/CD

  • Pinned Windows runner to windows-2022 for MSVC compatibility
  • Added /std:c++17 and /EHsc flags for Windows MSVC builds

🌐 i18n

  • Replaced hardcoded English strings in 4 components with i18n keys
  • Removed unused Japanese locale file

📚 Documentation

  • Added design specs and implementation plans for major refactors
  • Updated AGENTS.md to reflect api.ts split into api/ directory
  • Removed AI-generated design docs and unrelated files

DbPaw v0.5.3

Choose a tag to compare

@github-actions github-actions released this 07 Jun 03:53

[0.5.3] - 2026-06-06

🚀 Features

  • Add handleApiError utility for toast error pattern
  • Add redis i18n keys to English locale
  • Add redis i18n keys to Chinese locale
  • I18n RedisBrowserView toast.error calls
  • I18n RedisKeyView toast.error calls
  • I18n RedisStreamViewer toast.error calls
  • I18n RedisGeoViewer toast.error calls
  • Add useFormField helper for ConnectionForm fields
  • Extract RedisFormSection from ConnectionDialog
  • Extract ElasticsearchFormSection from ConnectionDialog
  • Extract MongoDbFormSection from ConnectionDialog
  • Extract MssqlFormSection from ConnectionDialog
  • Add ConnectionTreeContent component
  • Add ConnectionTreeDialogs wrapper component
  • Add tab-contexts with 5 domain contexts and TabActionsProvider

🐛 Bug Fixes

  • Add context menu to row number cells in table view
  • Add redis.ts, fix query.ts import, update index.ts router
  • Remove unused ImportDriverCapability import from types/sql.ts
  • Move SetOptions interface to module scope and export
  • Add type guards for discriminated union TabItem fields
  • Unmount inactive tab content
  • Restore cargo test compatibility

💼 Other

  • TabItem discriminated union refactor design
  • TabItem discriminated union implementation plan
  • TabItem discriminated union refactor into main

🚜 Refactor

  • Extract redis mocks to mocks/redis.ts
  • Extract query mocks to mocks/query.ts
  • Extract metadata mocks to mocks/metadata.ts
  • Extract tableData mocks to mocks/tableData.ts
  • Extract connections mocks to mocks/connections.ts
  • Extract saved queries mocks to mocks/queries.ts
  • Extract transfer mocks to mocks/transfer.ts
  • Extract elasticsearch mocks to mocks/elasticsearch.ts
  • Extract mongodb mocks to mocks/mongodb.ts
  • Extract ai mocks to mocks/ai.ts
  • Extract system and mcp mocks
  • Add mocks router and re-exports in index.ts
  • Remove old mocks.ts, update test imports
  • Split ConnectionList.tsx into focused sub-components
  • Split mocks.ts into domain-specific modules
  • Extract RedisStreamViewer dialog components
  • Remove types from api.ts, re-export from types/
  • Split RedisStreamViewer into hooks + file-per-component
  • Extract redis-format.ts from RedisKeyView
  • Extract redis-patch.ts from RedisKeyView
  • Extract useRedisKey hook from RedisKeyView
  • Extract RedisKeyFormHeader from RedisKeyView
  • Slim RedisKeyView.tsx to thin shell using hook + form header
  • Share sql identifier quoting
  • Replace inline driver sections with extracted components
  • Apply useFormField to generic fields in ConnectionDialog
  • Extract SidebarSearch from ConnectionList
  • Extract SidebarHeader component from ConnectionList
  • Import ConnectionDialogTestMessage from ConnectionDialog
  • Remove unused props from ConnectionTreeContent
  • Fix ConnectionTreeContent code quality issues
  • Merge SET option state in useRedisKey into single object
  • Consolidate SET option props in RedisKeyFormHeader
  • Update RedisKeyView to use consolidated SET options
  • Use extracted sub-components in ConnectionList
  • TabContentRenderer sub-components use context hooks instead of flat props
  • (tab) Split TabItem into 12 discriminated union subtypes
  • Update TabContentRenderer.tsx renderer signatures to use specific tab subtypes
  • (tab) Add subtype imports and type constraint to useTabFactory
  • Add type casts in useTabFactory for discriminated union compatibility
  • Use EditorTabItem in useQueryEditor.ts
  • Add TableTabItem type narrowing in useTableViewer
  • Use EditorTabItem in test helper
  • Split tab content renderer actions
  • Split ConnectionList state domains
  • Split driver module responsibilities
  • Split transfer services
  • Split transfer services

📚 Documentation

  • Add api.ts type split design spec
  • Add api.ts type split implementation plan
  • Add RedisKeyView split spec and plan
  • Add ConnectionDialog refactor design spec
  • Add ConnectionDialog refactor implementation plan
  • Update agent architecture guidance

⚙️ Miscellaneous Tasks

  • Remove 15 unused dependencies and 5 unused shadcn/ui components
  • Bump version to 0.5.3

DbPaw v0.5.2

Choose a tag to compare

@github-actions github-actions released this 03 Jun 13:57

[0.5.2] - 2026-06-03

🚀 Features

  • Extract useTabManager hook from App.tsx
  • Extract useQueryEditor hook from App.tsx (Task 2)
  • (hooks) Extract table viewer logic into useTableViewer hook
  • Extract useUnsavedChanges hook from App.tsx
  • Extract WindowActions component from App.tsx
  • Extract TabBar component from App.tsx
  • Extract TabContentRenderer component from App.tsx
  • Extract AppLayout component from App.tsx

🐛 Bug Fixes

  • Table virtual scroll issues - duplicate spacer, draft rows, IIFE pattern
  • Use @/ import alias in useTabManager hook
  • Use toast instead of alert in useQueryEditor
  • Add try/catch in handleCloseFlowSave, remove dead ref
  • Tab switching causes data table to disappear

🚜 Refactor

  • Extract errorMessage() utility and add React.memo to TreeNode/StreamEntryRow
  • 优化后端代码重复 & 连接池改进
  • Extract global keyboard shortcuts into useKeyboardShortcuts hook
  • Extract UnsavedChangesDialog from App.tsx
  • Extract App.tsx into hooks and components, create shared TabItem type

⚙️ Miscellaneous Tasks

  • Bump version to 0.5.2