Commit Graph
22 Commits
Author SHA1 Message Date
rarnu 51e62d4c60 SSH 隧道连接优化 (#517)
* 1. 增加 SSH 隧道保活
每 30 秒发一次 keepalive 包,防止 NAT/防火墙丢弃空闲连接。

2. SSH 隧道自动重连
整体逻辑为:
  └─ 初始连接(失败则立即报错,防止 credential 错误时无限重试)
  └─ 绑定 TcpListener(端口不变)
  └─ 启动 tunnel_reconnect_loop
      ├─ forward_loop()  ← 转发数据,检测到 session 断开后退出
      ├─ 睡眠 5 秒
      ├─ connect_and_authenticate() 重连
      ├─ 重连失败?→ 继续等 5 秒 → 重试
      └─ 重连成功 → 回到 forward_loop()

* 修复rust代码风格

* 1:指数退避
延迟序列: 5s → 10s → 20s → 40s → 60s → 60s → ...(封顶 60s)
不再是固定 5 秒重试,避免临时故障时刷屏。

2:最大重试次数
连续失败 10 次后放弃,打一条 fatal 日志 max reconnect attempts exhausted, giving up,然后隧道任务退出。不再无限循环。

3:日志改进
失败日志现在带进度:SSH reconnect failed (host:port, attempt 3/10): error
成功重连日志也带 (attempt N) 方便排查。
2026-05-29 13:31:31 +08:00
rarnu 4f0a13f24f add: 为AI设置增加了thinking的开关 2026-05-12 01:16:40 +08:00
rarnu c18593d003 add: 修改布局方案中选中项的样式为浅蓝色(与AI内API选项的样式一致) 2026-05-11 23:33:27 +08:00
rarnu e8ab15140a add: 将AI大模型的设置移至设置页 2026-05-11 23:25:27 +08:00
rarnu c6aa0cf84f 1. 修复 ORDER BY watch 重复数组
2. WHERE / ORDER BY 输入框 @blur 处理
2026-05-09 15:51:13 +08:00
rarnu 9261cb71a2 1. src/components/grid/DataGrid.vue
- 左侧搜索框:移除了 WHERE 支持(isWhereSearch 永远返回 false),现在是纯客户端文本过滤。保留了列名代码提示功能(Tab 补全、箭头导航)。
       - WHERE 框:新增列名代码提示(独立的下拉建议面板),支持单双引号和小括号自动配对,Enter 直接应用过滤。
       - ORDER BY 框:新增列名代码提示(同样的建议面板),Enter 直接应用排序。
       - 刷新/回滚/提交:reload emit 现在传递 4 个参数 (sql, searchText, whereInput, orderBy),确保刷新后所有条件不丢失。
       - 分页/排序:统一使用新的 currentWhereInput() 函数,替代已废弃的 activeWhereInput。
       - 删除了 applyWhereSearch() 和 onSearchEnter()(左侧搜索不再需要执行 WHERE 查询)。

    2. src/composables/useDataGridActions.ts
       - onReloadData() 签名改为接受 4 个参数 (sql, searchText, whereInput, orderBy)。
       - table-data 模式刷新时,用 buildTableSql(tab, { whereInput, orderBy }) 重建 SQL,保留 WHERE 和 ORDER BY 条件。

    3. src/components/layout/ContentArea.vue
       - reload emit 签名同步更新为 4 个参数。
       - results 模式和 table-data 模式两个 DataGrid 的 @reload 处理器都转发全部 4 个参数。

    4. src/App.vue
       - ContentArea 的 @reload 处理器转发 4 个参数给 onReloadData()。
2026-05-09 15:04:06 +08:00
rarnu 8a249a2194 add: 在结果集中增加数据过滤的功能 (#163)
* add: 在结果集中增加数据过滤的功能

* 1. 提取 isResultsContext — 新增具名计算属性,替代魔法字符串 results,模板和逻辑中统一使用。

    2. wherePredicate 在 results 场景下短路 — 加了 canUseWhereSearch.value ? ... : undefined 守卫,避免在结果集界面无意义地调用 normalizeWhereInput()。在 results 上下文下:
       - wherePredicate → undefined
       - isWhereSearch → false(因为 canUseWhereSearch 为 false)
       - activeWhereInput → undefined
       - 搜索框 placeholder 切换为纯 search(由 canUseWhereSearch 控制,已存在)
       - 应用按钮隐藏(v-if=isWhereSearch,已存在)

    逻辑链现在是一致的:canUseWhereSearch === false 时,所有 where 相关功能(解析、建议、按钮、回车提交)全部失效
2026-05-08 18:33:59 +08:00
rarnu 47ad960bbb Fix: DataGrid数据集和工具栏的修复及加强 (#157)
* fix: 修复结果集内的数据过滤功能

* add: 将原先误删的WHERE查询加回

* add: 合并事务栏和搜索栏,并且在结果集中不启用搜索功能

* add: 修复在表数据和结果集模式下,DataGrid刷新时未保留查询条件的问题,将表数据和结果集的处理逻辑进行拆分

* add: 与主分支合并,解决冲突

* add: 恢复i18n

* add: 恢复useDataGridActions.ts

* add: 恢复ContentArea.vue

* add: 恢复DataGrid.vue

* fix: 修复括号自动配对的bug

* add: 将DDL按钮移到表数据编辑的第一行尾,并且不在DataGrid中显示
2026-05-08 16:04:21 +08:00
rarnu 53c5c28542 fix: 修复结果集内的数据过滤功能 (#145) 2026-05-07 22:05:27 +08:00
rarnu cacaf4d7a2 1. Rust 事务连接池问题 - 用 pool.acquire() 获取专用连接,所有语句在同一物理连接上执行
2. BEGIN 失败静默回退 - 直接返回错误,不再静默降级
    3. queryStore.ts - 清除了 25+ 条 console.log,合并了两个分支的重复逻辑
    4. DataGrid.vue - shouldUseTransaction() 改为 computed 属性 useTransaction
2026-05-07 16:55:32 +08:00
rarnu 814fda7433 add: 增加对于查询得到的结果集直接进行数据编辑的功能。当查询是单表且包含主键(有联合主键时包含全部主键)时,可以在结果集内双击单元格修改数据,修改结果以事务形式提交或回滚。 2026-05-07 15:09:59 +08:00
rarnu 969f441753 add: 对SQL编辑器增加Ctrl(Mac下是Cmd)+左键点击的功能,点击表名可以查看建表DDL,点击列名可以查看列信息 (#122)
* add: 对SQL编辑器增加Ctrl(Mac下是Cmd)+左键点击的功能,点击表名可以查看建表DDL,点击列名可以查看列信息

* add: 修复联表情况下获取列信息的问题

* fix: 修复联表场景下的SQL语句提示

* remove: 移除不需要的调试打印

* add: 补充'列详情'多语言字段

* remove: 移除不必要的函数

* remove: 移除不必要的导入

* add: 目前会分析SQL语句内引用的表,并且只加载对应的表内的列信息,不再对全表做列信息拉取
2026-05-07 01:04:52 +08:00
rarnu d16372c88d fix: 按先前的建议重新修了一下,目前先判断类型是否UUID,而不是先走fallback 2026-05-05 23:38:40 +08:00
rarnu 8f78c2c882 fix: 修复Postgres的UUID类型字段被显示为NULL的问题 2026-05-05 22:49:37 +08:00
rarnu 1dbe49cafb fix: AI大模型配置,选择的API不明显,添加蓝色的边框来更明确的指出 2026-05-02 21:26:46 +08:00
rarnu c408a2bea0 fix: 重新加入@babel/runtime依赖,原因是不加则CodeMirror-Theme会报错 2026-05-02 17:29:14 +08:00
rarnu 4d2c34ecb1 add: 将loadTheme抽象到外部模块,使用DEFAULT_EDITOR_SETTINGS默认值,增加老的配置项迁移 2026-05-02 17:19:34 +08:00
rarnu e5f3f3bad8 fix: 清理无用的依赖项 2026-05-02 17:19:34 +08:00
rarnu 7722a17642 add: 增加对CodeMirror的设置页 2026-05-02 17:19:29 +08:00
rarnu 733baef65a fix: 删掉不存在的属性 2026-05-02 16:39:58 +08:00
rarnu 1209a5dad6 add: 增加设置的预览框 2026-05-02 15:34:36 +08:00
rarnu 4af43e35e1 add: 增加对CodeMirror的设置页 2026-05-02 14:58:55 +08:00