Releases: codeErrorSleep/dbpaw
Releases · codeErrorSleep/dbpaw
DbPaw v0.5.3
[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
[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
DbPaw v0.5.1
[0.5.1] - 2026-06-03
🚀 Features
- (mcp) Add mcp_process field to AppState
- (mcp) Add Tauri MCP commands module
- (mcp) Add mock implementations for MCP commands
- (mcp) Add frontend API types and functions
- (mcp) Add i18n translations for MCP settings
- (mcp) Add McpSettings component and integrate into SettingsDialog
- Add AppError core type with error codes
- Add AppError core type with error codes
- Add std::error::Error impl for AppError
- Add AppError convenience constructors
- Add frontend error parser for AppError
🐛 Bug Fixes
- Allow paste in table filter inputs by skipping cell-paste handler
- Use capture phase for table hotkeys to prevent native Cmd+F from stealing focus
- (mcp) Add MCP process cleanup on app exit
- (mcp) Use tokio::process for non-blocking spawn, fix zombie process
- Move viewMode out of useColumnState, memoize handleMouseDown
- Restore pagination/filter params in handleRefreshClick
🚜 Refactor
- Extract useTableSort hook from TableView
- Extract useTablePagination hook from TableView
- Extract useColumnState hook from TableView
- Extract useCellSelection hook from TableView
- Extract useCellEditing hook from TableView
- Extract useTableMutation hook from TableView
- Extract useTableSearch hook from TableView
- Extract sub-components from TableView.tsx
- Extract useRedisKeys hook from ConnectionList
- Use AppError in conn_failed_error
- Extract shared types from ConnectionList to types.ts
- Extract useTreeExpansion hook from ConnectionList
- Extract useRedisKeys hook from ConnectionList
- Extract useConnectionCrud hook from ConnectionList
- Extract useTreeDataFetching hook from ConnectionList
- Extract useConnectionForm hook from ConnectionList
- Extract useImportExport hook from ConnectionList
- Extract useCreateDatabase hook from ConnectionList
- Extract ExportDialogs and ImportConfirmDialog from ConnectionList
- Extract CreateDatabaseDialog component from ConnectionList
- Clean up ConnectionList imports after hook extraction
📚 Documentation
- Add TableView refactor spec and implementation plan
- Add error handling system design spec
- Add error handling system implementation plan
⚡ Performance
- Add virtual scrolling and ContextMenu singleton to TableView
- Extract DataRow with React.memo and stabilize callbacks
🧪 Testing
- Add AppError unit tests
- Add frontend error parser tests
⚙️ Miscellaneous Tasks
- Bump version to 0.5.1
DbPaw v0.5.0
v0.5.0 Release Notes / v0.5.0 版本更新说明
150 commits | 59 features | 25 fixes | 41 tests
New Features / 新功能
ER Diagram / ER 关系图
- Full ER diagram powered by React Flow + dagre auto-layout / 基于 React Flow + dagre 自动布局的完整 ER 关系图
- Foreign key detection for all relational drivers (MySQL, PostgreSQL, Oracle, MSSQL, Db2) / 所有关系型数据库的外键检测
- Theme adaptation for controls, minimap, and edges / 控件、小地图和连线的主题适配
- ER button integrated into table toolbar / ER 按钮集成到表工具栏
MCP Server / MCP 服务器
- Complete MCP protocol support (2025-03-26) with HTTP transport via axum / 完整的 MCP 协议支持(2025-03-26),基于 axum 的 HTTP 传输
- Added Resources, Prompts, Sampling, Completion, Notifications modules / 新增 Resources、Prompts、Sampling、Completion、Notifications 模块
- CLI args for transport mode selection / CLI 参数支持传输模式选择
New Database Drivers / 新数据库驱动
- IBM Db2 LUW driver (via ODBC) / IBM Db2 LUW 驱动(通过 ODBC)
- Apache Cassandra / ScyllaDB driver / Apache Cassandra / ScyllaDB 驱动
Connection Import / 连接导入
- Import connections from DBeaver (JSON) and Navicat (NCX) / 从 DBeaver(JSON)和 Navicat(NCX)导入连接
- ImportDialog with source cards UI / 带来源卡片的导入对话框 UI
Sidebar Navigation Enhancements / 侧边栏导航增强
- Oracle: packages, sequences, types / Oracle:包、序列、类型
- MSSQL: synonyms / MSSQL:同义词
- Db2: sequences / Db2:序列
- ClickHouse: materialized views group / ClickHouse:物化视图分组
- SimpleMode for minimal tree view in tabs layout / 标签页布局中的精简树视图模式
- Per-database groups with DatabaseGroupConfig / 按数据库分组配置
- Right-click context menus for databases and tables / 数据库和表的右键菜单
Table Editor Improvements / 表格编辑器改进
- Multi-cell selection copy / 多单元格选择复制
- Right-click cell filter menu / 右键单元格筛选菜单
- Table row numbers and zebra stripes display settings / 表格行号和斑马纹显示设置
Other / 其他
- Settings dialog open speed optimized / 设置对话框打开速度优化
- MongoDB driver consolidated and improved / MongoDB 驱动整合优化
Bug Fixes / 问题修复
- PostgreSQL: quote identifiers in ORDER BY, count queries, and fetch_table_rows / PostgreSQL:ORDER BY、计数查询和数据获取中的标识符引号处理
- Schema foreign key quality issues in Oracle, MySQL, MSSQL / Oracle、MySQL、MSSQL 的外键质量问题
- ER diagram foreign keys not rendering for MySQL / MySQL 的 ER 图外键不渲染
- Cell selection color unified for click and drag / 点击和拖拽选择的单元格颜色统一
- TabsContent state preserved across tab switches / 标签页切换时内容状态保持
- Cassandra: improved DDL/DML execution and type formatting / Cassandra:改进 DDL/DML 执行和类型格式化
- Db2: ODBC value escaping and DML commit support / Db2:ODBC 值转义和 DML 提交支持
Testing / 测试
- 41 test commits covering MCP, Cassandra, MongoDB, Redis, Elasticsearch, ER Diagram, connections, metadata, query modules / 41 个测试提交,覆盖 MCP、Cassandra、MongoDB、Redis、Elasticsearch、ER 图、连接、元数据、查询模块
- Elasticsearch integration test split into 8 independent scenarios / Elasticsearch 集成测试拆分为 8 个独立场景
- SQL safety integration tests expanded / SQL 安全集成测试扩展
Breaking Changes / 破坏性变更
- Removed Japanese language support / 移除日语语言支持
DbPaw v0.4.0
[0.4.0] - 2026-05-24
🚀 Features
- Add font family selection with system font detection
- Agents update
- Bundle Oracle Instant Client for macOS/Windows/Linux
- (redis) Add Sentinel password support and GeoViewer toast notifications
- (ui) Add loading states and toast notifications
- (i18n) Add translations for loading and save notifications
🐛 Bug Fixes
- (ci) Add libkrb5-dev for GSSAPI support in rust-check
- Show column comments in column view mode
- Column view auto-width instead of filling container
- Remove trailing fractional zeros from datetime display
- Remove hardcoded default expanded connection ID in sidebar
- Add missing list_redis_command_logs implementation for CI
- Add missing redis_command_logs migration file
🎨 Styling
- Format Rust source code and tests
⚙️ Miscellaneous Tasks
- Update version to v0.4.0
[0.4.0] - 2026-05-24
🚀 新功能
- 新增字体族选择功能,支持系统字体自动检测
- 智能体(Agents)更新
- 为 macOS/Windows/Linux 打包 Oracle Instant Client
- (redis) 新增 Sentinel 密码支持及 GeoViewer 提示通知
- (ui) 新增加载状态及提示通知
- (i18n) 新增加载与保存通知的翻译文本
🐛 缺陷修复
- (ci) 为 rust-check 中的 GSSAPI 支持添加 libkrb5-dev 依赖
- 列视图模式下显示列注释
- 列视图自动调整宽度,不再填满容器
- 移除日期时间显示中的末尾小数零
- 移除侧边栏中硬编码的默认展开连接 ID
- 为 CI 补充缺失的 list_redis_command_logs 实现
- 补充缺失的 redis_command_logs 迁移文件
🎨 样式优化
- 格式化 Rust 源代码及测试代码
⚙️ 其他任务
- 版本号更新至 v0.4.0
DbPaw v0.3.9
[0.3.9] - 2026-05-17
🚀 Features
- Add MongoDB connection support
- Refactor Elasticsearch UI with modular components and i18n support
- Add independent SQL editor font size setting
- (mysql) Implement list_routines/get_routine_ddl and enable sidebar routines
- Add column view mode to DataGrid
- (multi-result-set) Add SingleResultSet structure and extend QueryResult
- (multi-result-set) Implement frontend state, UI tabs, mock data and tests (Phase 4-8)
🐛 Bug Fixes
- Treat zero/negative connect_timeout_ms as default in Elasticsearch client
- (mssql) Column type/length, comments, and index unique detection
- (mssql) Prevent __row_num leak in FOR JSON pagination path
- (sidebar) Group MySQL tables into Tables folder alongside Procedures/Functions
💼 Other
- (deps) Bump openssl
🚜 Refactor
- (mssql) Consolidate column metadata loading and cleanup layered patches
⚙️ Miscellaneous Tasks
- Add tsconfig.tsbuildinfo to gitignore
- Update version to v0.3.9
[0.3.9] - 2026-05-17
🚀 新功能
- 新增 MongoDB 连接支持
- 重构 Elasticsearch UI,采用模块化组件并支持国际化(i18n)
- 新增独立的 SQL 编辑器字体大小设置
- (mysql) 实现 list_routines / get_routine_ddl 功能,并在侧边栏启用存储过程/函数展示
- 为 DataGrid 添加列视图模式
- (multi-result-set) 新增 SingleResultSet 结构并扩展 QueryResult
- (multi-result-set) 实现前端状态、UI 标签页、模拟数据及测试(第四至第八阶段)
🐛 缺陷修复
- Elasticsearch 客户端将零或负值的 connect_timeout_ms 视为默认值处理
- (mssql) 修复列类型/长度、注释及索引唯一性检测问题
- (mssql) 防止 FOR JSON 分页路径中 __row_num 字段泄漏
- (sidebar) 将 MySQL 表分组至 "Tables" 文件夹,与 Procedures / Functions 并列展示
💼 其他
- (deps) 升级 OpenSSL 依赖
🚜 重构
- (mssql) 整合列元数据加载逻辑,清理分层补丁代码
⚙️ 杂项
- 将 tsconfig.tsbuildinfo 加入 .gitignore
- 更新版本号至 v0.3.9
DbPaw v0.3.8
[0.3.8] - 2026-05-10
🐛 Bug Fixes
- Sort sidebar connections by created_at ASC (newest at bottom)
- Use ROW_NUMBER() pagination for SQL Server 2008 compatibility
- Preserve loaded databases when refreshing sidebar with active search
- (sqlserver) Comprehensive compatibility fixes for SQL Server 2005+
- (sqlserver) Default FOR JSON detection to false when version query fails
🚜 Refactor
- Decouple sidebar tree structure from database-specific hardcoding
- Extract SQL statement splitting utilities to shared module
📚 Documentation
- Add Redis support to README and remove testing annotations
- Remove outdated requirement analysis and table selection optimization documents
⚙️ Miscellaneous Tasks
- Format Rust and TypeScript code with cargo fmt and prettier
- Bump version to 0.3.8 in package.json and tauri.conf.json
[0.3.8] - 2026-05-10
🐛 问题修复
- 侧边栏连接按创建时间升序排列(最新的在底部)
- 使用 ROW_NUMBER() 分页以兼容 SQL Server 2008
- 侧边栏有活跃搜索时刷新,保留已加载的数据库
- (sqlserver) SQL Server 2005+ 的全面兼容性修复
- (sqlserver) 版本查询失败时,FOR JSON 检测默认设为 false
🚜 重构
- 将侧边栏树形结构与数据库相关的硬编码解耦
- 将 SQL 语句拆分工具提取到共享模块
📚 文档
- README 中新增 Redis 支持说明,移除测试标注
- 删除过时的需求分析和表选择优化文档
⚙️ 杂项
- 使用 cargo fmt 和 prettier 格式化 Rust 和 TypeScript 代码
- 将 package.json 和 tauri.conf.json 中的版本号提升至 0.3.8
DbPaw v0.3.7
[0.3.7] - 2026-05-06
🚀 Highlights
- Full support for advanced Redis data types: Stream, RedisJSON, Bitmap, Geo, HyperLogLog
- Redis Stream consumer groups (XGROUP, XREADGROUP, XACK, XPENDING, XCLAIM, XTRIM)
- Redis Cluster & Sentinel support with cluster insights
- New Redis Server Info panel (INFO, CONFIG, SLOWLOG, key metadata)
- Batch key operations (MGET/MSET) with UI support
⚡ Redis Enhancements
- Atomic operations: SET options, SET EX, INCRBY/DECRBY, ZSet score increment
- Extended command support:
ZSCORE, ZMSCORE, ZRANGEBYLEX, ZLEXCOUNT, ZPOPMIN, ZPOPMAX - Advanced List operations:
LINDEX, LPOS, LTRIM, LINSERT, LMOVE - Dedicated viewers for Bitmap, HyperLogLog, and Geo
🗄️ Multi-Database Support
- MSSQL: DDL generation, query execution improvements, DEFAULT constraint editing, routines support
- PostgreSQL: Full DDL generation (constraints, indexes, comments), functions & procedures sidebar
- Elasticsearch: Initial driver support, SSH tunnel, bulk import/export
🎨 Improvements
- Special data type metadata visualization
- New database icons (TiDB, StarRocks, SQL Server, Oracle)
- Improved connection dialog usability on small screens
🐛 Fixes
- Fixed Redis integration test issues
- Fixed window rendering issue on Windows
🚀 核心亮点
- 完整支持 Redis 高级数据类型:Stream、RedisJSON、Bitmap、Geo、HyperLogLog
- 支持 Redis Stream 消费组(XGROUP、XREADGROUP、XACK、XPENDING、XCLAIM、XTRIM)
- 支持 Redis Cluster 与 Sentinel,并提供集群信息视图
- 新增 Redis Server Info 面板(INFO、CONFIG、SLOWLOG、Key 元数据)
- 支持批量 Key 操作(MGET/MSET)及对应 UI
⚡ Redis 能力增强
- 原子操作增强:SET 选项、SET EX、INCRBY/DECRBY、ZSet 分数自增
- 扩展命令支持:
ZSCORE、ZMSCORE、ZRANGEBYLEX、ZLEXCOUNT、ZPOPMIN、ZPOPMAX - List 高级操作:
LINDEX、LPOS、LTRIM、LINSERT、LMOVE - Bitmap、HyperLogLog、Geo 专用可视化查看器
🗄️ 多数据库支持
- MSSQL:DDL 生成、查询执行优化、DEFAULT 约束编辑、存储过程支持
- PostgreSQL:完整 DDL 生成(约束/索引/注释)、函数与存储过程侧边栏
- Elasticsearch:基础驱动支持、SSH 隧道、批量导入导出
🎨 体验优化
- 特殊数据类型元数据展示
- 新增数据库图标(TiDB、StarRocks、SQL Server、Oracle)
- 优化小屏幕下连接弹窗体验
🐛 问题修复
- 修复 Redis 集成测试问题
- 修复 Windows 下窗口渲染问题
DbPaw v0.3.6
[0.3.6] - 2026-04-25
🚀 Features
- Implement Redis Browser functionality and enhance Redis key management
- (redis) Complete Redis integration with browser, console and key management
- (redis) Sidebar optimization & browser enhancements
- Add redis ci test
🚜 Refactor
- (redis) Cluster scan use SCAN instead of KEYS; fix rename/sanitization issues
🎨 Styling
- Format frontend and integration tests
🧪 Testing
- Unify mssql schema handling in command tests
⚙️ Miscellaneous Tasks
- Update version to v0.3.6
[0.3.6] - 2026-04-25
🚀 新功能
- 实现 Redis Browser 功能,增强 Redis Key 管理能力
- (redis) 完成 Redis 集成(浏览器、控制台、Key 管理)
- (redis) 优化侧边栏结构及浏览体验
- 新增 Redis CI 测试
🚜 重构
- (redis) Cluster 扫描由 KEYS 改为 SCAN,优化性能并避免阻塞
- 修复 Key 重命名及命名规范处理问题
🎨 样式优化
- 统一前端代码格式及集成测试样式
🧪 测试
- 统一 MSSQL 在命令测试中的 schema 处理逻辑
⚙️ 其他
- 版本更新至 v0.3.6
DbPaw v0.3.5
[0.3.5] - 2026-04-20
🚀 Features
- (sqlite) Add SQLCipher support for encrypted databases
- (tests) Add mariadb/sqlite stateful integration tests and fix sqlite transaction isolation
- (tests) Add starrocks/doris stateful integration tests and refactor to shared containers
- (sql-gen) Fix mssql ADD COLUMN syntax and add unit tests
- (index-management) Add index editor to create/alter table views with full refactor
🐛 Bug Fixes
- (mysql) Decode information_schema VARBINARY columns and populate PK in structure
- (titlebar) Prevent React portal events from triggering window drag
- (local) Replace OsRng with rand::rng() for rand 0.9 compatibility
💼 Other
- (deps) Bump rand
🚜 Refactor
- (test) Share one container per binary for MySQL & PostgreSQL integration tests
- (tests) Share single container per binary for mariadb and mssql
📚 Documentation
- Update README to cover export/import, schema management, and SQL log features
[0.3.5] - 2026-04-20
🚀 新功能(Features)
- (sqlite) 新增 SQLCipher 支持,实现数据库加密
- (tests) 新增 MariaDB / SQLite 有状态集成测试,并修复 SQLite 事务隔离问题
- (tests) 新增 StarRocks / Doris 有状态集成测试,并重构为共享容器方案
- (sql-gen) 修复 MSSQL
ADD COLUMN语法问题,并补充单元测试 - (index-management) 新增索引编辑器,支持在建表/修改表结构时创建和调整索引(含完整重构)
🐛 问题修复(Bug Fixes)
- (mysql) 修复
information_schema中 VARBINARY 字段解析问题,并补全主键信息 - (titlebar) 修复 React Portal 事件误触发窗口拖拽的问题
- (local) 为兼容 rand 0.9,使用
rand::rng()替换OsRng
💼 其他(Other)
- (deps) 升级 rand 依赖版本
🚜 重构(Refactor)
- (test) MySQL / PostgreSQL 集成测试改为每个二进制共享一个容器
- (tests) MariaDB / MSSQL 集成测试统一为单容器复用方案
📚 文档(Documentation)
- 更新 README,补充导入/导出、Schema 管理及 SQL 日志等功能说明