393 Commits

Author SHA1 Message Date
Syngnat
8131ea8fc8 🐛 fix(ui): 修复新版数据视图布局与 AI 面板加载容错
- 修复新版数据视图底部分页、列快速定位与当前页查找的对齐和压缩问题
- 优化窄屏下 AI 面板布局,避免挤压工作区并增加懒加载失败重试兜底
- 补充窗口运行时、AI 面板布局与 UI 回归测试,更新相关样式快照
2026-05-28 07:05:48 +08:00
Syngnat
fac826b335 🐛 fix(sidebar): 隐藏达梦等数据源不支持的数据库管理入口
- 新增数据库级 DDL 能力判定,统一收敛新建库、重命名库、删库菜单显示
- 修正 Sidebar V1/V2 右键菜单,避免达梦和 Oracle-like 数据源暴露误导入口
- 补充能力与菜单回归测试,覆盖达梦、Oracle 和 OceanBase Oracle 协议

Refs #496
2026-05-27 20:13:19 +08:00
Syngnat
e069ddf8fa 🐛 fix(ui): 修复命令面板新建查询无响应
- 补充 gonavi:create-query-tab 全局事件监听
- 统一复用 handleNewQuery 创建查询标签页
- 恢复起始工作台与命令面板的新建查询入口
- 增加事件监听回归断言避免后续再次丢失
2026-05-27 19:56:23 +08:00
Syngnat
ccd12742d3 ️ perf(ui): 优化数据页滚动与编辑响应
- 优化 DataGrid 虚拟滚动横向同步与外部滚动条宽度计算
- 降低 v2 数据表内容容器的重绘与持久化写入开销
- 拆分 Tab 内容渲染并收敛 QueryEditor 对活跃标签的订阅
- 修复虚拟编辑态与单元格右键菜单的共享渲染路径
- 调整 v2 数据表编辑态样式并补齐性能复现 harness 对照能力
- 补充 DataGrid 布局与滚动相关回归测试
2026-05-27 19:56:14 +08:00
Syngnat
0c8c9a9f12 ♻️ refactor(DataGrid): 拆分数据网格视图与交互状态
- 拆分 DataGrid 的筛选、DDL 视图、模态编辑和预览面板状态

- 抽离表头信息、分页栏、视图切换、辅助操作和旧版单元格右键菜单组件

- 优化虚拟单元格渲染判定与横向滚轮意图识别,减少滚动和编辑阶段的无效重绘

- 新增 DataGrid 性能复现页并补齐布局、DDL、列标题与滚动相关测试
2026-05-27 08:43:51 +08:00
Syngnat
0d9344ff19 🐛 fix(redis): 修复命令页暗色主题显示异常
- 主题适配:Redis 命令输入区、工具栏、拖拽条和输出区统一接入 workbench 主题
- 编辑器修复:Monaco 命令输入框按暗色/亮色切换 transparent 主题
- 输出修复:暗色主题下输出区使用深色背景与可见文字颜色
- 布局修复:限制输入区拖拽高度,避免压缩底部输出区
- 测试覆盖:新增 Redis 命令页布局回归测试
2026-05-26 09:29:52 +08:00
Syngnat
98418ec5c3 🐛 fix(ui): 修复侧边栏拖拽预览线位置异常
- 拖拽修复:右键点击侧边栏宽度区域不再触发拖拽预览线

- 定位修复:预览线改为基于 Sider 实际 DOM 右边界定位

- 宽度修复:拖拽计算读取 CSS min/max 宽度限制,避免状态宽度与实际渲染宽度不一致

- 回归测试:补充右键阻断和预览线真实边界定位测试
2026-05-26 09:07:03 +08:00
Syngnat
aa2177d35a 🐛 fix(ui): 修复 v2 数据视图交互回归
- 筛选优化:隔离 WHERE 输入剪贴板事件并让字号跟随全局设置

- 表视图优化:补齐表头和单元格新版右键菜单及行列复制能力

- 置顶同步:卡片视图、列表视图和左侧对象树统一展示置顶分组

- 数据视图优化:调整分页、字段显示、DDL 侧栏和横向滚动同步体验

- 测试覆盖:补充 DataGrid、Sidebar 和表概览置顶分组回归测试
2026-05-26 08:26:52 +08:00
Syngnat
9118406de3 🐛 fix(shortcuts): 修复全局快捷键配置未生效
- 快捷键执行链路补齐新建数据源和打开 AI 面板动作

- 将创建数据源入口改为稳定回调,避免全局监听依赖丢失

- 补充快捷键管理器动作与实际处理逻辑一致性测试
2026-05-26 08:26:28 +08:00
Syngnat
654178c8cd 🐛 fix(ui): 修复新版 UI 布局回归并恢复切换样式
- 修复 v2 下 App 外层旧版左侧控件叠加问题,由新版 Sidebar 完整接管左侧布局
- 隔离旧版 AI 悬浮入口和 SQL 日志入口,避免影响新版 UI
- 恢复主题设置中界面版本切换的双卡片样式,移除胶囊分段控件
- 补齐 v2 主题样式、全局字体变量和弹窗按需挂载逻辑
- 增加回归测试锁定新版左侧布局和界面版本切换样式
2026-05-25 10:09:05 +08:00
Syngnat
85a0f9d007 feat(mysql): 新增左侧事件对象展示
- 加载 MySQL 事件元数据并展示事件分组

- 支持双击事件查看定义

- 兼容旧版侧边栏与新版 UI 筛选

Refs #411
2026-05-24 11:38:26 +08:00
Syngnat
cf0a216329 🐛 fix(datasource): 修复 SQL Server 分页与 ClickHouse 22.8 连接兼容
- SQL Server 表数据分页改用旧版本兼容语法,避免 FETCH NEXT 报错

- ClickHouse HTTP 连接支持移除 client_protocol_version 后兼容重试

- 补充 SQL 分页与 ClickHouse 连接兼容回归测试

Refs #479
2026-05-23 19:14:40 +08:00
Syngnat
8615265ee1 feat(postgres): 新增数据库节点新建模式功能
- 后端新增 CreateSchema 接口,支持在选中 PostgreSQL 数据库下创建 schema

- 侧边栏旧版菜单和新版菜单均增加新建模式入口

- 创建成功后刷新对象树,并支持空模式显示

- 补充 Wails 绑定与创建模式相关测试

Refs #480
2026-05-23 18:32:51 +08:00
Syngnat
ec23d72332 🐛 fix(TabManager): 修复数据视图高度异常
- 补齐标签页工作台 flex 高度链

- 确保旧版 UI 与新版 UI 下 DataGrid 都能撑满父级

- 补充工作台高度布局回归测试
2026-05-23 18:04:18 +08:00
Syngnat
b3f6c45bc1 🐛 fix(DataGrid): 修复筛选字段名显示不完整
- 扩展筛选与排序字段下拉宽度

- 为字段选项补充完整 title 与省略显示

- 补充字段名完整展示回归测试

Refs #481
2026-05-23 18:04:06 +08:00
Syngnat
56b3112a07 🐛 fix(oracle): 修复表结构注释读取与保存报错
- 补齐 Oracle 表字段注释元数据读取

- 在表结构 DDL 中追加表和字段注释信息

- 规范表设计器 Oracle DDL 执行前的分号处理

Refs #482
2026-05-23 17:41:46 +08:00
Syngnat
b9c743d67e feat(query-editor): 增强 SQL 编辑器执行与历史体验
- 支持仅执行选中 SQL、光标所在语句和增量新增语句

- 持久化查询草稿,避免重启后丢失历史 SQL

- 在表字段提示中展示注释信息

- 修复清空默认 SQL 后被自动回填的问题

Refs #483
2026-05-23 17:07:47 +08:00
Syngnat
09af56b1c2 feat(DataGrid): 支持外键字段表头跳转关联表
- 表头增强:外键字段显示跳转入口并提示关联表信息

- 交互优化:点击外键字段打开关联表标签页,避免触发表头排序

- 兼容验证:补充 legacy 与 v2 UI 下的跳转行为测试

Refs #486
2026-05-23 13:36:40 +08:00
Syngnat
8b8a00b666 🐛 fix(frontend): 修复 dev 构建类型错误
- 补齐 v2 外观配置与侧栏置顶状态的 store 类型和持久化兼容

- 按当前平台解析和录制快捷键配置,适配 mac/windows 双平台结构

- 恢复 AI 入口布局工具导出,修复 App 引用缺失

- 更新 store 快捷键持久化测试断言
2026-05-23 11:20:31 +08:00
Syngnat
24d9db4c51 feat(ui): 完成新版 UI 全量改造
- 整体布局:按新版 UI 重构左侧导航、对象树、连接分组和右键菜单体系

- 数据视图:优化 DDL 侧栏、横向滚动、筛选输入、编辑入口和虚拟表格体验

- AI 面板:重构新版入口、输入区、模型选择、快捷键和悬浮布局

- 标签与快捷键:补齐 Tab 悬浮信息、复制交互和 Mac/Windows 快捷键配置

- 工程质量:新增 v2 主题样式、菜单组件、外观工具和回归测试覆盖
2026-05-22 17:41:06 +08:00
Syngnat
1d90aed187 feat(DataGrid): 优化字符串字段筛选默认匹配方式
- 字符串类型字段新增筛选条件时默认使用包含匹配

- 切换字段时仅更新未手动修改的默认操作符

- 补充筛选操作符类型判断回归测试

Refs #475
2026-05-18 20:55:18 +08:00
Syngnat
7fe72c42b2 feat(DataGrid): 支持拖选单元格自动进入编辑模式
- 优化单元格编辑器进入与退出逻辑

- 支持拖选阈值识别,避免普通点击误触拖选

- 补充点击外部区域自动退出单元格编辑模式

Refs #473
2026-05-18 20:42:41 +08:00
Syngnat
b880b5416f 🐛 fix(connection): 修复 IRIS 连接类型保存后回退为 MySQL
- 将 IRIS 纳入前端连接类型白名单与默认端口配置

- 补齐常见数据源类型别名归一化,避免未知别名回退为 MySQL

- 增加 IRIS 连接保存、导入、自动 Limit 和表数据清空回归测试

- 补齐前后端 IRIS truncate 支持

Refs #476
2026-05-18 20:14:31 +08:00
Syngnat
7b895474ef 🐛 fix(DataGrid): 修复金仓 bit 类型值显示异常
- 按列类型将 bit/varbit 的十六进制值显示为十进制标志
- 同步表格、当前页查找和文本视图的显示逻辑
- 补充 bit 类型显示回归测试

Refs #472
2026-05-18 19:45:52 +08:00
Syngnat
992d2dee45 feat(iris): 新增 InterSystems IRIS 数据源支持
- 后端新增 IRIS 连接、查询、DDL、索引元数据和 DataGrid 编辑能力
- 接入 optional driver-agent、构建标签、revision 生成和变更检测流程
- 前端新增 IRIS 连接入口、方言映射、能力配置和图标展示
- 修复 IRIS 主键识别、事务开启错误处理和驱动连接关闭问题
- 补充后端、前端和构建脚本相关回归测试
Refs #408
2026-05-17 10:32:08 +08:00
Syngnat
0cde96844d 🐛 fix(windows): 修复在线更新挂起与 WebView2 启动闪退
- 隐藏并释放 Windows 更新脚本进程,避免在线更新打开 cmd 并挂起
- 为更新脚本等待宿主进程退出增加超时保护
- 收窄自动 WebView2 zoom reset 触发条件并补充异常兜底
- 补充 Windows 更新启动与窗口缩放回归测试
Refs #468
2026-05-16 22:13:24 +08:00
Syngnat
cfbfda4de3 ️ perf(webview): 降低首屏加载与 WebView2 内存占用
- Monaco Editor 改为首次使用时按需初始化
- AI 面板改为懒加载,延后加载 Markdown 和图表渲染依赖
- 增加 Windows 低内存视觉模式,支持关闭透明 WebView 和 Acrylic
- 补充低内存启动说明与模式解析测试
2026-05-16 11:18:48 +08:00
Syngnat
1dd1cb9e44 🐛 fix(sqlserver): 修复表 DDL 与索引创建语句生成
- DDL:为 SQL Server 表结构补充 CREATE TABLE fallback 生成
- 索引:在已有索引选择和新增索引弹窗中展示 CREATE INDEX 语句
- 测试:补充 SQL Server DDL fallback 与索引 SQL 预览回归测试
2026-05-16 08:46:51 +08:00
Syngnat
16836375c4 🐛 fix(table-menu): 补齐表相关右键快捷操作
- 表分组右键菜单新增新建表入口
- 表概览卡片和列表右键菜单新增复制表名
- 对齐左侧树与表视图的右键菜单体验
2026-05-15 22:33:31 +08:00
Syngnat
b707c74203 feat(connection): 支持连接 SSL 证书文件配置
- 新增 CA 证书、客户端证书和私钥路径配置
- 为 MySQL、PostgreSQL、ClickHouse、MongoDB、Redis 等连接接入 TLS 证书
- 修正 SSL 模式下证书校验、明文回退和 DER 证书兼容问题
- 补充证书路径保存、RPC 传递和 DSN 生成回归测试
Refs #463
2026-05-15 22:04:20 +08:00
Syngnat
acb119d80e 🐛 fix(query-editor): 修复 Oracle 查询结果编辑提交失败
- 规范化 Oracle/Dameng 未加引号表名大小写
- 按元数据列名映射查询结果可写字段
- 补充查询结果编辑提交回归测试
Refs #464
2026-05-15 21:02:00 +08:00
Syngnat
b9f9a8fca2 feat(sync): 扩展跨库迁移自动建表能力
- 新增 MySQL、PG-like、ClickHouse、MongoDB 同类库迁移规划器
- 支持可映射库对自动建表、补字段及兼容索引迁移
- 修复 MongoDB 创建集合时建表 SQL 为空的执行判断
- 避免 PG-like 主键索引重复迁移并保留默认值表达式
- 更新 Data Sync 自动建表能力提示与回归测试
Refs #465
2026-05-15 20:33:42 +08:00
Syngnat
9b1351db23 🔁 sync(dev): 合并 PR#466 代码片段管理工具入口 (#466) 2026-05-15 17:31:46 +08:00
Syngnat
569edbb11a feat(starrocks): 新增 StarRocks 数据源与高级对象能力
- 后端接入:新增独立 starrocks 可选驱动,复用 MySQL wire 协议并支持默认 9030 端口
- 驱动管理:补齐 manifest、build tag、revision、driver-agent provider 和构建脚本
- 前端接入:新增 StarRocks 连接类型、图标、能力矩阵、URI 解析、保存回显和 SQL 自动 LIMIT
- 方言增强:新增 StarRocks 类型、关键字、函数补全和专属建表 SQL 生成
- 高级对象:支持物化视图对象浏览、Rollup 模板、外部 Catalog 模板和高级表设计器参数
- CI 发布:将 StarRocks driver-agent 纳入 dev/release 构建与 release 资产校验
2026-05-15 17:30:08 +08:00
Syngnat
2580e4d6f3 🐛 fix(window): 直接调 WebView2 zoom factor 零感知修复 Windows 字体异常
- 新增 ResetWebViewZoom RPC:从 ctx 反射拿 Wails 内部 *edge.Chromium,调 PutZoomFactor(1.0) 强制 WebView2 重算 D2D/DirectWrite 字体度量,完全不动窗口零动画
- 自动路径:maximised + restore + drift 时直接调 backend reset,告别 9848b8b2 之后字体偶发变大的取舍
- 手动路径:保留 Ctrl+Shift+0 快捷键作为兜底(优先 WebView2 reset,失败回退 toggle)
- 撤回上一版 CSS zoom nudge:实测在 WebView2 上不能修字体度量(度量缓存在 D2D 层不在 Chromium layout 层)
- 反射做了 3 层签名校验(frontend value / chromium 字段 / PutZoomFactor 方法签名),wails 升级破坏接口时返回 error 不让进程崩溃
- 新增 windows-only 反射逻辑测试 4 个、跨平台 RPC 行为测试 2 个、Ctrl+Shift+0 快捷键注册测试
2026-05-15 16:01:18 +08:00
Syngnat
067cbd5ab2 🐛 fix(window): 用 CSS zoom nudge 修复任务栏恢复字体变大且不引入重复最大化
- 撤回上次错误的 toggle 改动:恢复 9848b8b2 的 restore 不重新最大化取舍,避免用户在任务栏点击恢复时看到窗口"被弹两次"
- 新增 applyWindowsViewportZoomNudge:通过短暂将 documentElement.style.zoom 设为 1.0001 并在两帧内重置,强制 Chromium 重算 layout metrics 修复字体变大,零可见动画、不动窗口
- maximised + drift + restore 路径从仅 dispatch resize 改为先 zoom nudge 再 dispatch resize
- 锁定 windowStateUi.test.ts 中 shouldToggleMaximisedWindowForScaleFix('restore', true)=false 取舍并补注释禁止再次反转
- windowsScaleFix.test.ts 加 jsdom 环境,新增双帧 zoom nudge 行为测试
2026-05-15 15:03:25 +08:00
Syngnat
c7b8663c06 🐛 fix(oceanbase): 新增 OBClient capability 注入打通 Oracle 租户连接
- 双轨路由:Oracle 协议路径按 mysql wire 端口预探测自动选择,OB MySQL wire 端口走 OBClient capability 注入(复刻 Navicat),其他端口走标准 Oracle TNS
- 默认注入 4 组 OBClient capability attribute(_client_name=OceanBase Connector/J、_client_version、__ob_client_attribute_capability_flag、ob_capability_flag),用户在 ConnectionParams 设置的同名键优先级更高
- 恢复 applyOracleChangesMySQLWire:OBClient 路径写操作使用 mysql "?" 占位符 + Oracle 双引号引用标识符,配合 sql_mode='ANSI_QUOTES' 让服务端按 Oracle 解析
- 删除旧的 errOceanBaseMySQLWireOnOracleRoute fail-fast 死路提示,重写文件头注释固化反转决策(基于用户报告 Navicat 用 OceanBase 数据源同端口连通的真实证据)
- 前端 ConnectionModal 文案对齐:去掉「必须 OBProxy Oracle listener」的误导,改为说明自动路由 + connectionAttributes 调试入口
- 新增 5 个单元测试覆盖默认注入、用户覆盖、DSN 透传、mysql wire 占位符;刷新 OceanBase agent revision
2026-05-15 10:54:37 +08:00
TonyJiangWJ
0c1a800f16 feat(snippets): 添加代码片段管理工具入口
- 工具中心新增代码片段管理入口,与快捷键管理保持同级展示

- 复用现有 SnippetSettingsModal 打开逻辑,保留查询编辑器原入口

- 补充工具中心入口回归测试,防止菜单入口丢失
2026-05-15 00:09:04 +08:00
Syngnat
235bc99846 🐛 fix(window): 修复 Windows 任务栏恢复最大化窗口后字体保持过大
- 问题根因:9848b8b2 禁用 maximised+restore 的 toggle 路径属于过度修复,导致从任务栏点击恢复最大化窗口时 viewport drift 无人修复
- maximised 状态下 Windows API 拒绝 SetSize nudge,唯一可行的修复是 Unmaximise → Maximise 切一次,此前被剪掉
- shouldToggleMaximisedWindowForScaleFix 在 restore + drift 时重新允许 toggle,注释说明去重保护链路
- 重复 toggle 由 inFlight 互斥 + 700ms 冷却 + ratio-change 在 minimisedSeen 上下文合并到 activationTimer 共同防御
- 拆分测试断言:shouldApplyWindowsScaleFix 与 shouldToggleMaximisedWindowForScaleFix 各自独立覆盖 restore 场景
2026-05-14 12:31:19 +08:00
Syngnat
6456658576 feat(query-editor): 新增选择当前语句快捷键
- 快捷键配置:新增选择当前语句动作,默认绑定 Ctrl+E
- 编辑器接入:在 Monaco 查询编辑器中注册选择当前语句 action
- 语句识别:新增 SQL 语句范围解析,支持按光标定位当前语句
- 兼容处理:忽略字符串、注释和 dollar quote 内的分号
- 测试覆盖:补充快捷键默认配置和语句选择解析单元测试
Refs #404
2026-05-14 09:19:28 +08:00
Syngnat
f8abe60dc2 🐛 fix(oceanbase): 修复 OceanBase 协议模式识别与缓存隔离
- 支持 MySQL/Oracle 租户协议在前后端统一解析
- 拒绝 Native 协议并避免误回退为 MySQL
- 修复 Oracle 模式下元数据、DDL、SQL 方言识别
- 修复连接缓存键与实际协议解析优先级不一致问题
- 补充前后端协议解析与缓存隔离回归测试
2026-05-13 22:51:01 +08:00
Syngnat
01eb2c25e0 feat(mongodb): 支持文档可视化编辑与删除
- 前端表格预览使用 _id 构建 MongoDB 行定位,并隐藏 typed ObjectID locator

- 后端 ApplyChanges 支持 MongoDB 更新、单删和批量删除,区分 ObjectID 与字符串 _id

- 补充 DataViewer、DataGrid 与双版本 Mongo driver 回归测试

Refs #458
2026-05-13 21:48:14 +08:00
Syngnat
75185f5e66 feat(sidebar): 新增表节点右键复制表名功能
- 左侧表节点右键菜单增加复制表名入口
- 复制真实表名并提供中文剪贴板提示
- 补充表名解析逻辑测试
Refs #460
2026-05-13 20:28:18 +08:00
Syngnat
0bcb8ce6c3 🐛 fix(ai-chat): 修复输入法候选阶段回车误发送
- 识别 IME keyCode/which 229 的候选输入事件
- 避免候选词确认触发 AI 对话发送
- 补充发送快捷键回归测试
Refs #461
2026-05-13 20:19:44 +08:00
Syngnat
6d5d49ef50 🐛 fix(redis): 修复命名空间行点击误选中
- 命名空间行点击改为展开或折叠分组

- 阻止行点击冒泡触发 Tree 复选/选中逻辑

- 增加 Redis 树行点击交互回归测试

Refs #457
2026-05-12 22:09:51 +08:00
Syngnat
9848b8b295 🐛 fix(window): 避免 Windows 恢复窗口时重复最大化
- 恢复窗口场景不再触发最大化窗口切换修复

- 恢复期间 DPR 变化延迟到窗口状态稳定后处理

- 更新任务栏恢复窗口缩放策略测试
2026-05-12 21:48:41 +08:00
Syngnat
0fea730908 🐛 fix(window): 修复 Windows 恢复窗口后字体缩放异常
- 记录最小化和隐藏状态以识别任务栏恢复场景

- 恢复窗口时使用 restore 缩放修复路径校正 viewport drift

- 增加任务栏恢复窗口缩放逻辑测试
2026-05-12 21:47:24 +08:00
Syngnat
10a695ba0f 🐛 fix(data-viewer): 修复表数据刷新后总数缓存过期
- 刷新时校验已知总数是否满足当前页 hasMore 信号

- 旧总数过期时清空 countKey 并重新统计总数

- 增加表数据增长后的分页回归测试
2026-05-12 21:45:44 +08:00
Syngnat
65567221ac feat(driver): 完善驱动批量管理并优化总包安装
- 驱动管理支持批量安装、重装需更新和删除外置驱动

- 批量任务增加总进度展示,并实时刷新已完成驱动状态

- 后端复用驱动总包下载缓存,支持并发等待和长超时下载

- 开发态优先本地构建 driver-agent,避免发布包 revision 不匹配

- DuckDB 构建自动探测 UCRT64 gcc 工具链

- 驱动总包构建接入 UPX 压缩以降低发布体积
2026-05-12 07:17:28 +08:00
Syngnat
0f891be026 🎨 style(query-editor): 收紧查询页标签与工具栏间距
- 去除主标签页与结果标签页默认下边距
- 缩小查询工具栏顶部留白
- 优化查询编辑器纵向空间利用
Refs #420
2026-05-11 20:38:42 +08:00