Commit Graph

67 Commits

Author SHA1 Message Date
Syngnat
adacf0b5c5 feat(connection): 支持生产连接多项保护策略
- 新增数据编辑、结构编辑、脚本执行和数据导入四类连接级保护配置
- 升级生产连接保护弹窗为多选卡片,并修复选项对齐与勾选态显示
- 按保护类型收口 QueryEditor、DataGrid、表设计、导入与同步目标入口
- 后端统一拦截 SQL 或 Mongo 写操作、结果编辑、结构变更和导入写入
- AI 本地工具与 RPC 执行链路透传连接保护配置并复用后端守卫
- 补充多语言文案、定向测试与需求追踪记录
2026-06-23 17:42:54 +08:00
Syngnat
e7b8e78f9c 🐛 fix(query-editor): 修复当前语句快捷选择在 CRLF 文本下错位
- 统一当前语句选择与执行路径的归一化 offset/position 换算
- 避免 Windows CRLF 文本下 SQL 语句选区错位
- 补充 QueryEditor 当前语句选择回归测试

Fixes #575
2026-06-21 15:08:34 +08:00
Syngnat
5f56859898 🐛 fix(query-editor): 兜底 SQL 编辑器中文输入首次不上屏
- 补充 Monaco IME 组合输入提交兜底
- 统一拦截候选键避免快捷键链路抢占
- 增加 QueryEditor 中文输入回归测试

Fixes #578
2026-06-21 11:30:17 +08:00
Syngnat
c8c8497a2f feat(query-editor): 收敛 SQL 分析工作台与结果区日志体验
- 新增 SQL 分析工作台,统一承载慢 SQL 和 SQL 诊断视图
- 将 SQL 执行日志收进结果区首个日志标签并在失败时展示错误摘要
- 调整侧边栏入口、标签展示、多语言文案与定向前端测试覆盖
2026-06-20 14:09:58 +08:00
Syngnat
0f67305100 ♻️ refactor(codebase): 拆分大文件并收敛模块职责
- 拆分 ConnectionModal、DataGrid、QueryEditor、App 等前端大文件

- 抽出 driver assets、v2 workbench 样式和 source-as-test 读取辅助

- 更新相关测试以覆盖拆分后的源码位置
2026-06-19 23:10:00 +08:00
tianqijiuyun-latiao
3006429a9a 🔧 chore(merge): 合并最新 dev 并解决 DataGrid 冲突 2026-06-17 13:52:50 +08:00
tianqijiuyun-latiao
9364c48ef0 feat(i18n): 完善多模块多语言适配与发版验证
扩展前后端多语言文案与共享词典。增加多模块 i18n 回归测试与 guard。收口外部 SQL 菜单和弹窗多语言文案。
2026-06-17 13:17:33 +08:00
Syngnat
7ff3e00759 🐛 fix(query-editor): 修复外部 SQL 标签状态与 OceanBase 查询改写
- 修复外部 SQL 文件删除后标签残留及关闭异常
- 修复 OceanBase Oracle 查询注入隐藏 ROWID 时的表名改写
- 修复小写表名执行时的精确引用并保留日志中的原始 SQL
- 补充查询编辑器相关回归测试
2026-06-17 09:49:39 +08:00
tianqijiuyun-latiao
76b0163bd3 Merge branch 'dev' into feature/20260602_connection_driver_i18n
# Conflicts:
#	frontend/package.json.md5
#	frontend/src/App.tsx
#	frontend/src/components/AIChatPanel.message-boundary.test.tsx
#	frontend/src/components/AIChatPanel.tsx
#	frontend/src/components/AISettingsModal.tsx
#	frontend/src/components/ConnectionModal.tsx
#	frontend/src/components/DataGrid.ddl.test.tsx
#	frontend/src/components/DataGrid.layout.test.tsx
#	frontend/src/components/DataGrid.tsx
#	frontend/src/components/DataGridColumnTitle.test.tsx
#	frontend/src/components/DataGridLegacyCellContextMenu.tsx
#	frontend/src/components/DataGridSecondaryActions.tsx
#	frontend/src/components/DataGridToolbarFrame.tsx
#	frontend/src/components/DataSyncModal.tsx
#	frontend/src/components/DataViewer.tsx
#	frontend/src/components/DefinitionViewer.tsx
#	frontend/src/components/DriverManagerModal.tsx
#	frontend/src/components/QueryEditor.external-sql-save.test.tsx
#	frontend/src/components/QueryEditor.tsx
#	frontend/src/components/RedisViewer.tsx
#	frontend/src/components/Sidebar.locate-toolbar.test.tsx
#	frontend/src/components/Sidebar.tsx
#	frontend/src/components/TabManager.hover.test.tsx
#	frontend/src/components/TabManager.tsx
#	frontend/src/components/TableDesigner.tsx
#	frontend/src/components/V2TableContextMenu.tsx
#	frontend/src/components/ai/AIChatHeader.tsx
#	frontend/src/components/ai/AIHistoryDrawer.tsx
#	frontend/src/main.tsx
#	frontend/src/store.ts
#	frontend/src/utils/aiComposerNotice.test.ts
#	frontend/src/utils/aiComposerNotice.ts
#	frontend/src/utils/connectionModalPresentation.ts
#	frontend/src/utils/driverImportGuidance.ts
#	frontend/src/utils/externalSqlTree.test.ts
#	frontend/src/utils/externalSqlTree.ts
#	frontend/src/utils/sqlDialect.ts
#	internal/ai/service/service.go
2026-06-16 18:35:11 +08:00
Syngnat
6421662f5d 🐛 fix(oracle): 修复裸表查询结果字段元数据缺失
- Oracle-like 裸表查询默认使用连接用户名作为 schema 加载字段元数据
- 修复未写 schema 时结果表头不显示字段类型和注释的问题
- 保持显式 schema.table 查询优先级不变
- 补充查询结果表引用解析和 QueryEditor 回归测试
2026-06-16 14:05:28 +08:00
Syngnat
23f95d7dc8 feat(query-editor): 支持还原 SQL 美化前内容
- 美化 SQL 前保存最近一次原始内容快照
- 在格式设置菜单提供还原上次美化入口
- 持久化查询标签页的美化恢复快照
- 补充编辑器与状态恢复回归测试
2026-06-16 07:10:04 +08:00
Syngnat
891c8c1200 🐛 fix(sql-snippet): 修复片段管理编辑与按钮布局
- 支持自定义 SQL 片段按 id 更新,避免修改时重复新增
- 将片段语法说明改为可编辑并随片段持久化
- 将保存、删除、重置、关闭按钮统一收敛到底部操作栏
- 调整操作按钮为大号尺寸并增加最小宽度和底部间距
- 补充片段编辑、布局结构和持久化回归测试
2026-06-15 17:28:48 +08:00
tianqijiuyun-latiao
558966a129 feat(i18n): 推进六语言多语言体系与扫描门禁
- 新增共享六语言词典、前端 i18n 运行时与语言设置入口

- 推进连接、驱动、数据网格、查询、AI、Redis、表设计等模块文案本地化

- 补充 raw 边界、SQL/驱动/更新场景测试与 i18n 扫描工具
2026-06-15 14:35:08 +08:00
Syngnat
eca9601ab0 feat(saved-query): 支持已存查询后端持久化与连接重绑
- 后端新增 saved_queries.json 仓库,保存、导入、删除和重绑统一走 Wails 方法
- 启动时导入旧 lite-db-storage 中的 savedQueries 和连接快照,成功后清理旧字段
- 新增连接指纹匹配,唯一强匹配自动重绑,歧义场景保留为未匹配
- 侧边栏新增未匹配已存查询分组,并支持手动绑定到目标连接
- 前端保存、重命名、删除查询改为后端持久化,并补充浏览器 mock
- 补充后端与前端迁移回归测试
2026-06-15 12:20:57 +08:00
Syngnat
0b9f0448c8 ️ perf(database): 优化查询元数据加载和连接释放
- 查询编辑器仅预取当前库及 SQL 显式引用库的元数据
- 断开侧边栏连接时主动释放同实例后端缓存连接
- 完善 Redis 连接释放和 Wails 前端绑定
- 修复 SQL Server 存储过程消息结果显示
- 调整查询工具栏布局并补充回归测试
Close #541
2026-06-15 07:21:00 +08:00
Syngnat
9b0e7937f9 🐛 fix(query-editor): 修复小窗口下 SQL 编辑器工具栏换行问题
- 调整 v2 工具栏为单行布局并启用横向滚动
- 保持选择区、事务区和操作区在窄窗口下不换行
- 补充 SQL 编辑器工具栏布局回归测试
2026-06-14 22:47:42 +08:00
Syngnat
03eb26d999 🐛 fix(query-editor): 修复切换查询页后 SQL 美化方言误判
- 同步查询页的 connectionId 与 dbName 状态
- 美化时按活动连接和 tab 上下文兜底选择格式化方言
- 补充 PostgreSQL ::date 场景回归测试
Close #494
2026-06-14 21:52:14 +08:00
Syngnat
d7632e29a6 🐛 fix(query-editor): 优化事务工具栏排版并修复 Wails 开发页加载
- 将手动事务提交回滚按钮并入主工具栏,移除重复入口和未提交文案
- 调整 v2 查询工具栏顺序,收起结果区入口并统一更多、AI、设置交互
- 修正 Wails dev 地址为 127.0.0.1,避免 index.html not found
2026-06-14 18:49:22 +08:00
Syngnat
9e224d0067 🐛 fix(query-editor): 修复跨库查询字段补全缺失
- 统一 QueryEditor 中库表标识符与表引用解析规则
- 修复 MySQL 反引号及中划线库名场景下的 WHERE 字段补全
- 新增跨库字段补全回归测试
Close #533
2026-06-14 16:59:34 +08:00
Syngnat
70b469d349 🐛 fix(query-editor): 修复 SQL 美化未按数据库方言选择格式化器
- 为 QueryEditor 美化入口按当前连接类型动态选择 sql-formatter language
- 让 postgres、kingbase、highgo、vastbase、opengauss、gaussdb 使用 postgresql 方言
- 让 oracle、dameng 使用 plsql,避免固定 mysql 方言导致语法解析失败
- 补充 PostgreSQL 窗口函数与类型转换 SQL 的美化回归测试

Close #561
2026-06-14 16:07:52 +08:00
Syngnat
5310ec7c44 feat(query-editor): 为 Postgres 兼容方言补全增加标识符自动引用
- 在 SQL 编辑器补全中识别需要保留大小写的对象名
- 自动为大写表名和字段名插入双引号标识符
- 保持 MySQL 等其它方言现有补全行为不变
- 补充 QueryEditor 相关测试覆盖

Close #562
2026-06-14 15:54:00 +08:00
Syngnat
8d5a24992a 🐛 fix(sql-editor): 修复事务执行会话与工具栏布局交互 2026-06-14 12:40:31 +08:00
Syngnat
d2f68acae8 feat(gaussdb): 新增 GaussDB 数据库连接支持
Refs #497
2026-06-13 19:34:52 +08:00
Syngnat
5fcc04a200 🐛 fix(sql-editor): 修复补全提示下连续输入光标跳转
- 调整 SQL 补全触发策略,避免普通字母输入高频触发 provider
- 支持 Monaco 补全取消 token,丢弃连续输入时的过期异步请求
- 将 SQL snippet provider 纳入统一 disposable 管理,避免重复注册残留
- 补充 QueryEditor 回归测试覆盖补全触发、取消和释放链路
Refs #504
2026-06-12 16:25:23 +08:00
Syngnat
4cc8ab6482 🐛 fix(driver-manager/sql-editor): 优化驱动代理更新提示和事务提交控件
- 调整 driver-agent revision 为提示性校验,允许旧代理继续安装使用并保留需重装提示

- 精简 SQL 编辑器 DML 事务模式与自动提交档位展示

- 补充旧 revision 安装回归和事务控件断言
2026-06-12 12:57:47 +08:00
Syngnat
5061ec081a 🐛 fix(driver): 修复驱动代理 revision 误触发重装并优化事务提示 2026-06-12 11:07:41 +08:00
Syngnat
781a80e03f feat(ai): 增强代码热点拆分诊断 2026-06-12 08:24:13 +08:00
Syngnat
06583abad9 feat(query-editor): 完善片段说明事务状态和结果分页
- SQL 片段新增可编辑语法说明并用于补全详情

- 事务模式改为中文展示并显示未提交变更语句数

- 查询结果支持分页翻页与重新查询全部导出
2026-06-11 14:55:35 +08:00
Syngnat
fb00f47031 feat(query-editor): 对齐 DBeaver 风格事务提交模式 2026-06-10 20:24:45 +08:00
Syngnat
69f51f8ec8 ♻️ refactor(query-editor): 拆分 SQL 事务提交设置控件 2026-06-10 19:47:33 +08:00
Syngnat
ab053ef7d1 ♻️ refactor(query-editor): 拆分 SQL 事务工具栏组件
- 抽离 SQL 编辑器待提交事务提示与提交回滚按钮

- 保持 QueryEditor 事务状态与回调逻辑不变

- 同步组件结构测试并验证构建
2026-06-10 19:22:47 +08:00
Syngnat
89639e36bc 🐛 fix(query-editor): 修正 SQL 编辑器 DML 事务识别
- 统一前后端 DML 与数据修改 CTE 的受管事务判断

- 保留数据修改 CTE 返回行并补充事务回归测试

- 明确 SQL 编辑器事务提交策略文案
2026-06-10 19:13:54 +08:00
Syngnat
d8da8d6abf 🐛 fix(editor): 修正 SQL 编辑器 DML 事务提交语义
- SQL 编辑器 DML 固定进入托管事务

- 区分 WITH SELECT 和 WITH DML 的事务判定

- 调整提交方式文案并补充前后端回归测试
2026-06-10 18:05:46 +08:00
Syngnat
61d71cf1d0 feat(editor): 支持 SQL 编辑器增删改事务提交
- 为 SQL 编辑器 DML 新增后端托管事务会话和提交回滚接口

- 增加手动提交与自动提交设置,并显示待提交状态

- 补充前后端事务执行、提交、回滚和自动提交测试
2026-06-10 17:18:34 +08:00
Syngnat
c9d0bce153 🐛 fix(workbench): 修复结果区切换与对象设计字段定义
- 修复手动隐藏结果区后快捷键无法再次显示的问题

- 补全 Dameng/Oracle-like 字段长度、精度和可空标识

- 增加 SQL 编辑器、字段元数据和对象设计回归测试
2026-06-10 15:51:03 +08:00
Syngnat
c4153202ba feat(editor): 完善 SQL 编辑与数据编辑交互
- 结果区状态按 SQL Tab 独立保存,快捷键可恢复手动隐藏面板

- 对象设计保留完整字段类型和可空信息,完善兼容驱动 DDL 元数据

- 数据编辑新增手动/自动提交设置和自动提交倒计时

- 修复 schema 视图定位时找不到左侧树节点的问题
2026-06-10 14:27:40 +08:00
Syngnat
af51ead948 🐛 fix(sidebar): 修复视图裸名定位失败 2026-06-09 17:51:43 +08:00
Syngnat
c8f11d7258 ♻️ refactor(query-editor): 拆分 SQL 结果区渲染组件 2026-06-09 14:57:29 +08:00
Syngnat
a6105f4807 feat(query-editor): 支持结果区默认隐藏和快捷键切换
- 默认隐藏 SQL 结果区,执行成功或失败后自动展开

- 增加结果区显示/隐藏按钮和 Win/Mac 快捷键提示

- 在结果表工具栏提供隐藏入口并补充前端回归测试
2026-06-09 14:13:06 +08:00
Syngnat
ace6e18da8 🐛 fix(sql-editor): 移除对象信息未命中误报提示
- 取消对象信息未命中时的提示弹窗
- 保留已识别对象的 hover 与超链接行为
- 补充未命中静默回归测试
2026-06-07 12:12:02 +08:00
Syngnat
2254b76232 🐛 fix(duckdb): 修复无主键结果无法安全编辑
- 为 DuckDB 查询结果和表预览补充隐藏 rowid 定位列,允许无主键表安全提交修改
- DataGrid 提交变更时仅将 rowid 用作定位条件,避免把隐藏定位列写回业务字段
- DuckDB ApplyChanges 对 duckdb-rowid 改用未加引号的 rowid 条件,修复更新和删除失效
- 补充前后端回归测试,覆盖 QueryEditor、DataViewer、rowLocator 与 ApplyChanges 链路
2026-06-05 14:05:18 +08:00
Syngnat
6742495c6f 🐛 fix(frontend/ci): 修复对象修改卡顿与 Windows ARM 驱动校验失败
- QueryEditor 为对象修改标签增加 object-edit 轻量模式,跳过重型元数据抓取和对象装饰扫描
- DefinitionViewer 与 TriggerViewer 打开的对象修改标签统一透传 queryMode,避免重新进入普通查询链路
- TriggerViewer 补全 MySQL/Oracle 类触发器 DDL 重建逻辑,修复对象修改打开语法不完整
- 补充对象修改与触发器 DDL 回归测试,覆盖轻量模式和元数据补全场景
- verify-driver-agent-revisions 脚本改为跨架构校验,避免在 x64 runner 直接执行 windows/arm64 二进制
- 新增 Windows ARM CI 校验追踪文档,保留架构校验与 host-native probe 证据
2026-06-05 10:34:18 +08:00
Syngnat
274c32ebdd 🐛 fix(frontend): 修复 DuckDB 对象编辑与安全修改回归
- 修复 DuckDB qualified table 在查询结果页丢失 schema 导致无法识别主键的问题

- 打开对象修改前强制刷新最新定义,并避免切换对象失败时沿用旧定义

- 为 DuckDB 元数据链路补充前后端回归测试,并给 app 层真实 runtime 测试增加环境门槛
2026-06-04 22:00:55 +08:00
Syngnat
f7217583a3 🐛 fix(sql-editor): 修复对象跳转卡死与过程模板缺失CREATE
- 跳过大 SQL 的全局对象装饰扫描,避免 Ctrl/Cmd 点击对象时读取整篇编辑器文本

- 存储过程和函数源码片段缺少 CREATE 时自动补 CREATE OR REPLACE

- 增加过程修改模板与大 SQL 对象跳转回归测试
2026-06-04 16:05:40 +08:00
Syngnat
4cef232271 🐛 fix(sql-editor): 修复大段INSERT脚本导致全局卡顿
- 对 SQL 字符串字面量和注释做屏蔽,避免对象高亮/hover 扫描 values 中的大量测试数据

- 复用候选 token 收集结果刷新对象装饰,减少无效对象解析

- 补充 INSERT 脚本候选收集和字符串内 hover 的回归测试
2026-06-04 15:10:26 +08:00
Syngnat
9d39440438 🐛 fix(sql-editor): 修复对象超链接侧栏定位与样式
- 侧栏定位 fallback 统一按限定名解析,兼容 schema.object 与对象名、大小写差异

- 补充视图、函数、触发器超链接定位事件与树节点匹配回归测试

- 将 SQL 编辑器超链接改为蓝色实线下划线,并补充暗色主题样式断言
2026-06-04 11:41:54 +08:00
Syngnat
02faa4586b 🐛 fix(metadata): 修复多数据源主键唯一索引识别
- 统一 PG-like 数据源字段和索引元数据查询,支持 search_path 可见表

- 兼容 snake_case、布尔别名和字符串唯一索引标记

- 修复 DuckDB main/memory 路径解析,避免误判外部 catalog

- 补充前后端回归测试,覆盖可编辑结果定位和元数据重试路径
2026-06-04 10:49:16 +08:00
Syngnat
9acb1c69f7 feat(sql-editor): 增加SQL错误中文语义提示
- 新增 SQL 执行错误语义化规则,覆盖语法、对象、字段、约束和连接类错误

- 执行失败和刷新失败展示中文语义、处理建议与原始错误

- 补充工具函数与 QueryEditor 回归测试,确保英文报错可读化
2026-06-04 10:48:17 +08:00
Syngnat
a9d515f160 🐛 fix(sql-editor): 修复表名悬停元数据重复展示
- 去除 Cmd/Ctrl 导航高亮 decoration 上的 hoverMessage

- 统一由 SQL hover provider 输出对象元数据

- 补充回归断言,确保表元数据只展示一次
2026-06-04 10:47:30 +08:00
Syngnat
f5166ac3fc 🐛 fix(sql-editor): 修复结果消息展示与数据目录迁移稳定性 2026-06-04 07:09:42 +08:00