Files
logan 2c0bfafd8d 同步完整源码至远程:扁平化重构现状 + 未入库源文件
- 补入库:server/internal/db/dump.go、redis 分页/扫描预算测试、opsxdb-mcp main_test、
  packages/opsxdb-mcp package-lock、docs 审计与对比文档等 37 个新文件
- 含结构扁平化进行中的 80 处修改与 155 处旧结构删除(server/ src/ src-tauri/ 为当前有效源)
- 构建产物(bin/target/dist)与签名私钥仍按规则排除
2026-10-16 03:47:33 +08:00

35 KiB
Raw Permalink Blame History

OpsxDB 待开发 / 待验证清单

维护:项目经理 / 全栈 / 测试补记 · 更新:2026-10-14 已完成能力见各迭代验收;本文只列未做完 / 待真实例 / P1 后置,方便排人。

使用说明

  • P0:影响主路径或已承诺,优先排
  • P1:增强体验,可后置
  • 环境缺口:代码/表单已有,缺真实例才能验;有环境再测
  • 改代码后:./run.sh restart(改 server 必须重编)

去 Web 客户端(产品口径 · 2026-09-20)

项 状态 说明
./run.sh web 只起 Gin 官网/docs 已做 浏览器不当客户端
:5174 不作产品入口 已做 仅桌面 Vite 源;web-only 弃用提示
src / src-tauri 保留 Tauri devUrl/frontendDist
README 写清形态 已做 浏览器=站;操作=桌面
验收 待测 gui 可用;浏览器无工作台主路径;:8788 官网/docs 通

1. 引擎验收与状态(产品口径已定)

分层 引擎 状态 待办
A MySQL / MariaDB / PostgreSQL / SQL Server / SQLite / Redis(单机) 已验收 回归保持即可
B TiDB ready+已验收 TiDB v7.5.0 docker 真实例全链路(2026-09-21)
B PolarDB / OceanBase / TDSQL / Kingbase / GaussDB·openGauss 已翻「已验收」(2026-09-21 用户决策) 验收口径放宽:协议族同码 + 代码审查通过即可先上线,真例 bug 即修;族真实例(TiDB/PG)已验
B 环境限 Oracle 已翻「已验收」(2026-09-21 用户决策) 代码审查通过(go-ora);本机 ARM 起不了 XE,真例问题按 bug 修
C MongoDB / Elasticsearch / ZooKeeper / InfluxDB 已接入+本机验收(2026-09-21) 回归保持;ES 走原生 SQL API(官方 JDBC 付费),ZK/Mongo 走 JVM agent,InfluxDB 走原生 HTTP
C 达梦 已翻「已验收」(2026-09-21 用户决策) agent 桥 sqlite-jdbc 端到端验证;jar 自备(fetch.sh 指引),真例问题按 bug 修

注册表:connection-types/connection-types.json(ready / verified / notes)。


2. Redis 拓扑与工作台

项 状态 待办
单机 + 键浏览 已收 —
键树按分隔符编文件夹 + 类型色点 已交 2026-09-20 对标 ARDM
键详情(TTL / 重命名 / Hash 增删改 / JSON) 已交 2026-09-20 对标 ARDM + opsxsql
CLI 与 SQL 共用编辑器(Redis 按行、命令补全、通用 Do) 已交 2026-09-20 不另开 CLI 页;独立 REPL 列为后置
Sentinel / Cluster 表单 + 后端 已交 —
Cluster 真实例测连 + 键浏览 本地 3 主拓扑已实测(2026-09-21:表单建 Cluster 连接、跨分片扫键 19/19 全量、键值/行操作回归);2026-10-15 复验修复后 SET/GET/DEL 跨槽正常(见文末补记) —
Sentinel 真实例 已实测(2026-10-15:docker 起最小拓扑 master+sentinel,FailoverClient 经 sentinel 解析 master,SET/GET/SCAN 键列表/多 DB 0-15 全通;测后容器已清理) 多 sentinel/主从切换 failover 场景未测
Sentinel / Cluster 文档 已交 2026-09-20 08-redis.md / 04-connect.md
独立 Redis CLI Tab / 监控 / 慢日志 后置 对标 ARDM CliTab、opsxsql 监控页;非主路径

3. 右键菜单

2026-10-14 对比优化后状态:主路径已补齐一轮,尚未全部验收。 设计评分与详细不足见 GUI 对比报告。下表覆盖历史补记中相关「已做」口径;已有工具栏功能不等于已接入右键。标记「已接入」表示代码已落地,仍需在桌面 Tauri 中逐项验收,源码与单测不替代实机及方言验证。

编号 优先级 / 区域 功能 当前状态 待开发 / 验收要求
1 P0 编辑器 格式化 / 美化 SQL 已接入右键,与工具栏复用 有选区仅格式化选区,无选区格式化全文;待桌面回归撤销与各方言
2 P0 编辑器 执行选中 / 当前语句 右键已有,共用执行逻辑 回归选区、空白处、语句边界,与工具栏行为一致
3 P0 编辑器 注释 / 取消注释 已接入 CodeMirror 注释命令 覆盖选区与当前行;非 SQL 驱动禁用;待桌面方言回归
4 P0 编辑器 复制为纯文本 / 带连接信息 已接入,两种复制方式 无选区复制全文;连接摘要仅白名单字段,不含用户、密码、SSH 密钥;剪贴板失败不删除选区
5 P0 编辑器 查找替换 / 跳转到定义 搜索替换已接入;明确表名可跳 DDL 仅解析已加载元数据中的明确标识符,跳过字符串/注释;别名、CTE、未加载对象和复杂解析仍后置
6 P0–P1 库 / Schema 新建查询(带当前库) 已绑定所点库并持久化 普通新查询继承连接默认库;旧标签库不随默认库改变,已有单测;PG Schema 独立上下文见第 10 项
7 P0–P1 库 / Schema 刷新对象 已实现 回归刷新范围、加载态与失败提示
8 P0–P1 库 / Schema 复制连接串 / 主机端口 连接/库菜单已增加无凭据地址与主机端口 IPv6 已覆盖;完整 JDBC、Oracle SID、Redis Sentinel/Cluster 多节点 DSN 仍需按驱动完善,当前地址不宣称可直接导入全部客户端
9 P0–P1 库 / Schema 断开 / 重连 部分:连接节点已有,库节点没有 补齐库节点入口或明确归属连接入口;验证状态同步与失败反馈
10 P0–P1 库 / Schema 设为默认库 部分:修改保存的连接配置 补齐会话语义:MySQL 默认库切换、PG Schema 的 SET search_path;验证后续查询与重连,不只显示成功提示
11 P1 表 / 视图 打开表数据 / 前 N 行 已接入前 N 行输入(1–10000) 通过请求分页传递行数,不向预览 SQL 固化 LIMIT;已加载结果每批显示 500 行,可继续展开;待真库分页与大结果验证
12 P1 表 / 视图 查看表结构 / DDL 已有,DDL 按驱动能力控制 回归表与视图、目标对象及不支持引擎的禁用状态
13 P1 表 / 视图 生成 SELECT / INSERT 模板 已接入并新开带库查询,避免覆盖草稿 视图不提供 INSERT;引用列名与限定名;INSERT 为待填值模板,待真库方言回归
14 P1 表 / 视图 导出表 CSV / JSON(可后置) 部分:表右键已接「转储 SQL 文件」三态(2026-10-14,见文末补记);CSV/JSON 整表右键直达仍缺 复用导出能力,明确整表与当前结果范围,验证格式与失败提示
15 P1 表 / 视图 清空表 / 删除表 已实现,按能力裁剪并危险确认 回归取消不执行、确认后执行及刷新;视图不显示清空表
16 P1 表 / 视图 复制表名(带库前缀) 已增加限定名复制 MySQL 使用库前缀,PG/MSSQL 使用 Schema;标识符转义已有单测,异常元数据命名仍需真库回归
17 P1 结果集 复制单元格 / 行 / 列(TSV) 已接入单元格、行号、列头和空白菜单 基于实际右键目标与当前排序;TSV 不含表头,保留 NULL/JSON 并引用制表符/换行;待桌面剪贴板验收
18 P1 结果集 复制为 INSERT / JSON 已接入当前行 INSERT/JSON 与当前结果 JSON INSERT 使用结果自身记录的表来源;任意 SQL 无可靠来源则禁用;不猜测全局表名
19 P1 结果集 导出当前结果 右键已接入 CSV / JSON 复用当前结果导出;只导出当前已加载结果,不冒充整表;待桌面保存文件验证

第二轮:数据展示、上下文操作、视觉细节

产品原则:借鉴 DBFlux 的布局与上下文层级,借鉴 DBX 的实用功能和回归;保持操作简单,不堆功能。以下为代码已落地、待桌面视觉/交互验收项目。

方向 已落实 验收重点 / 剩余限制
数据展示 本地跨列筛选、匹配数、对象路径/列数/耗时;首批 500 行,可继续显示全部已加载行 明确本地筛选不查库;已移除固定 2000 行不可继续查看的限制;分批展示不等于虚拟滚动
值可读性 NULL、空字符串、空白文本和布尔值区别展示;数值右对齐;长 JSON/文本详情可复制 详情只读;大整数文本排序已有精度回归,数据库原始值不改动
右键实用性 单元格:详情/复制;列头:列名/复制列/排序/适应列宽;空白:结果复制/导出 按目标隐藏无关操作,不堆一屏禁用按钮;Ctrl/Cmd+C、Shift+F10 和方向键待桌面回归
视觉层级 修复粘性表头被相对定位覆盖;轻量结果工具条、分批加载提示、双击列边界适应内容 浅深主题、窄窗、长列名、滚动和数字对齐待实机验收
连接右键 复用统一菜单:连接/断开、重连、编辑、复制、危险操作分组 视口约束、Esc、方向键、外点焦点保持;对象树旧菜单仍需后续统一
状态与正确性 列宽/排序按结果集保存,切换时阻止旧状态串写;写回/回滚只更新原结果集;来源不明确禁用 INSERT/写回 已新增跨结果更新回归;真实数据库失败与切换时序仍待验证

下一轮:完成桌面右键任务验收、PG Schema 默认路径与连接池隔离;之后完善整表导出、驱动专属连接串和真正虚拟滚动。断开/重连归属连接节点,第 9 项的库节点入口暂不重复添加。

本轮验证:前端构建与类型检查通过,54 项测试通过,Go 编译通过;覆盖复制/标识符/库上下文、跨结果集更新、筛选、数值排序与长值展示。新增菜单支持上下方向键、Home/End、Enter、Esc、视口约束与焦点归还。桌面操作工具未获准访问 OpsxDB,视觉、剪贴板与真库验收仍待完成;不据此将评分自动上调。

统一验收:选区与空白右键、菜单视口边界、Esc / 外点关闭、禁用项说明、操作后焦点恢复;涉及执行的操作复用现有危险确认与错误反馈。仅在桌面验收,不把 :5174 作为浏览器产品入口。

核查入口:src/Workspace.tsx / src/SqlEditor.tsx(编辑器)、src/ObjectTree.tsx / src/ConnectionSidebar.tsx(树与连接)、src/ResultPane.tsx(结果集)。

其他后置项:创建片段、AI 自动填充、表重命名、UPDATE/DELETE 模板开放、执行 SQL 文件、索引/外键编辑(设计表 v1 与转储/新建表已于 2026-10-14 落地,见文末补记)。同步、比较、权限、BI、逆向等不在本轮范围,需另行立项。


4. 连接与安全

项 状态 待办
分引擎常规字段 + SSH 隧道 已收 —
SSL(含 MSSQL 自定义 CA、Oracle 客户端证书) 已收 —
HTTP 隧道 Tab 后置 对标 Navicat HTTP
连接导入/导出、云同步 未立项 —

5. 工作台与结果集

项 状态 待办
多结果集 / 书签 / 查询历史 已收 执行计划按钮及结果页签按用户要求移除;不再列入近期开发
查询取消 已收 —
内联编辑 / 多格粘贴 / 行删 / 撤销本格 已收 —
虚拟滚动大数据集 部分(限显截断) P1:真虚拟滚动
深色/浅色/随系统主题 已做(2026-10-14 补「随系统」:设置三段选择 + prefers-color-scheme 监听,系统切换即时生效,编辑器高亮跟随生效主题) 桌面切换系统外观实测

6. AI / MCP / Agent

任务书:15-AI-MCP-Agent.md(2026-10-15:MCP-first,内部会话共用工具层)

项 状态 待办
右侧 AI 面板可开关 已收 —
真模型接入(生成/解释/优化) 已接(2026-10-14:Provider 预设 + 三协议,见 §23 补记) 桌面接真实云端 key 验收;流式输出后置
MCP 最小工具集 + 安全策略(P0 纯只读) 本轮落地 aitools + opsxdb-mcp stdio;白名单/审计/connections.json 双写;写+确认=P1;验收盯 MySQL/PG/Redis
内部 Agent 会话(共用 tool runtime) 已有 Ask / Agent 流式会话、步骤、停止与单槽排队;模式下拉默认 Ask;Agent 工具限制当前连接与库,写入确认绑定库 桌面真实模型、多连接切换、跨库限定与写入确认回归;SQL 显式跨库引用仍由数据库权限管控
GUI 联动(插入编辑器 / 结果网格) Ask 生成 SQL 仅在回复中建议,需手动「复制到 SQL 窗口」;Agent 结果可在结果区打开;当前连接和库显示在输入区 桌面端跨方言、Redis DB 与结果网格联动回归
大模型设置 设置分类改为「大模型 · AI 供应商」;参照 opsxshell 的字段层级整理当前单供应商配置 多供应商保存/切换属后续能力,现有后端只保存一个配置
AI 验收(2026-10-15) Ask 自由提问修正为聊天提示词,不再强制生成 SQL;stdio MCP 初始化/7 工具列举及危险命令拒绝通过;Go 单测覆盖 MySQL/Redis Agent 当前库、确认写 本次隔离环境禁止连本机 3306/6379、云模型 DNS 不通;桌面 Computer Use 自动审批拒绝 OpsxDB,真库 CRUD 与模型/视觉实测待复验(细节见 15-AI-MCP-Agent)

7. 桌面 / 文档 / 工程

项 状态 待办
./run.sh gui / DMG 打包 已有 发版流程与签名(若上架)
docs + 落地页 已有 补「测试环境」页(链到 tests/README.md);Sentinel/Cluster 说明
引擎图标打包进 UI 已收 —
本地大改动入库 待推远程 Kimi 改造 + 右键 + Sentinel/Cluster + notes 等,需确认后 git push
sidecar 二进制不入库 约定 构建脚本生成

8. 测试环境(联调)

文档:tests/README.md · 启动:cd tests && ./dbctl.sh up a|b|c|…(一次一个库)

代号 库 端口 账号 密码
a MySQL 3306 root / opsx Demo@123
b MariaDB 3307 root / opsx Demo@123
c PG 5432 opsx Demo@123
d SQL Server 1433 sa Demo@12345
e Oracle 1521 opsx Demo@123(本机常起不来)
f Redis 6379 — —

联调顺序:./run.sh gui → dbctl up <x> → 测连 → 查询。


9. 建议排期(给人用)

  1. 文案/注册表:B 层 notes(已写,悬停「未验收」可见)
  2. 入库:整理 diff → 提交推 Gitee
  3. 环境到位再测:真 Oracle / 真国产库 / Redis Sentinel·Cluster
  4. P1 选做:结果表右键、生成 SQL、导出、美化 SQL、AI 真接、Redis 独立 CLI/监控

有实例或排人变更时,改本文件并注明日期。


10. 全栈待办补记(2026-09-20)

项 优先级 说明
B 层 notes 已做 见 connection-types.json;UI「未验收」悬停展示 notes
推远程 待你点头 右键 P0、Sentinel/Cluster、引擎图标打包、B notes、BACKLOG 等仍在本地
结果表自绘右键 P1 现仅 preventDefault
Redis 拓扑 docs 已做 08-redis.md Sentinel/Cluster/键树/CLI 决策
Redis 键树 + 键详情 已做 分隔符文件夹、类型色点、TTL/字段编辑
Redis 独立 CLI Tab 后置 与 SQL 编辑器共用,见 08-redis.md
C 层驱动接入 立项 Mongo/ES/ZK/Influx/达梦
真 Sentinel·Cluster 联调 环境缺口 有实例再改再测

11. 测试侧待办(测试工程师)

项 状态 待办
右键验收 1–3 / C 灰态 / A 回归 已绿(2026-09-20 再跑) sqlite/a/b/c/f/d 顺序单实例全绿;Oracle ORA-00442
B 层协议冒烟 已做;不摘标 真 TiDB/Polar/OB/Gauss/Kingbase/TDSQL 实例到位再验 → 再谈 verified
Oracle / 达梦 环境限 / 未接入 2026-09-20 Oracle 容器起了但 ORA-00442;达梦未接入
Redis Sentinel·Cluster 真拓扑 表单+字段校验已绿 有拓扑:测连 + 键浏览(扫/看/删)
结果表自绘菜单 / 右键 P1 代码已接入,待桌面验收 按 §3 核对右键目标、排序后复制、NULL/换行、多结果切换与文件保存
改 server 后 约定 验收前确认 ./run.sh restart,避免旧二进制误判

验收时勿并开多个 dbctl 库;结论回写本文件或群对齐即可。


12. 设计侧待办(设计师 · 2026-09-20)

项 状态 说明
SQL 编辑器右键 P0 结构 2026-10-14 已扩充 格式化、注释、搜索替换、定义跳转与连接摘要复制;实际边界见 §3
对象树三套 P0 线框 已钉 库 / 表 / Redis 键;P1 虚线项见群线框与 §3
Redis Sentinel·Cluster 表单字段 已钉 同页切部署模式;节点列表 · masterName · 双密码;Cluster 无 DB 索引
引擎缺图 fallback 待验 灰底首字母,禁用蓝 ?;未就绪灰 / 未验收橙+悬停
对象树右键 P1 视觉 未开 生成 SQL ▸ · 导出 ▸ · 设计表 · 新建表 等,全栈开做时补密度
结果表自绘菜单 已接入,待视觉验收 标题标明列目标、操作分组、方向键导航、视口约束与焦点恢复
顶栏文案 已收 连接 · 新建连接 · 新建查询 · 查询历史 · 快捷键

线框产物(本机):~/devops/opsxdb/.ui-review/ctx-menus/。新增设计待办只改本文件。


13. 全栈补记(2026-09-21 · ZCode 会话交付)

Redis 工作台增强(对标 ARDM/opsxsql 后落地)

项 状态
键搜索:输入即子串过滤 + 回车服务端模糊 SCAN(无通配符自动包 *q*) 已做
类型筛选下拉(string/hash/list/set/zset/stream,前端过滤 + 计数同步) 已做
去掉「键 N」中间层:db 展开直接是 agent 39 文件夹 已做
行级复制 = 完整重建命令(ZADD/HSET/SADD/RPUSH key …),实测剪贴板 已做
JSON 单元格:单行 minified 摘要(160 截断)+「更多」+ 点击弹层 pretty 查看/复制 已做
zset Score 毫秒/秒时间戳 → 可读时间副显(tsLabel,误判有单测) 已做
表格分批渲染:首屏 100 行 + 「加载更多(已显示 X / 共 Y)」 已做
集群跨分片 SCAN(scanAll ForEachMaster,本地 3 主 19/19 键实测;编辑器 SCAN 同步修) 已做
Key 树 SCAN 续扫(单机/Cluster 按主节点保存游标,逐页合并去重) 已做;真大键空间/集群拓扑变化待桌面复验
Hash/Set/ZSet 值分页(HSCAN/ZSCAN cursor,>500 大键真翻页) 已有续载实现;真实大键待复验
批量操作(多选删/按 pattern 批删/导出导入)、监控 INFO/慢日志、更多 viewer(hex/msgpack) 后置
Sentinel 真拓扑联调 环境缺口

通用工作台(本会话交付)

项 状态
对象树库/表过滤框(命中自动展开、计数同步) 已做
查询历史:去重置顶、一键重跑 ▶、过滤框、耗时/行数/失败红标(上限 200) 已做
点表名打开前 100 行(单击延迟/双击立即,脏 Tab 确认) 已做
Tab 标题表名化(打开表的新 Tab 显示表名而非「查询 N」) 已做
表右键:生成 SELECT/INSERT/UPDATE/DELETE(列感知+方言引号+主键 WHERE)+ 截断/删除表(危险确认) 历史交付记录;2026-10-14 已补 SELECT/INSERT 菜单,UPDATE/DELETE 模板未开放;截断/删除已接入,当前状态见 §3
库右键:新建查询 2026-10-14 已补所点库上下文与持久化回归,见 §3
结构页:索引/外键/触发器区块(MySQL 族 information_schema,前端直连) 已做
表设计器 / 表重命名 / CREATE TABLE 生成 未做(P1);右侧结构查看已有字段及部分引擎的索引/外键/触发器,不等于修改能力
数据导出(CSV/JSON/INSERT/整表/完整查询) 已有部分入口;表右键、流式大表验收、文件与失败处理仍待完善,详见专项盘点
结果表自绘右键 2026-10-14 已补复制与导出,桌面验收待办见 §3

去 Web 客户端收尾(在 §「去 Web 客户端」基础上)

项 状态
死包清理:packages/transport、packages/core(opsxapi 残留,零引用)整包删除 + 依赖/alias/test:core 清理 已做
生产构建浏览器守卫:非 Tauri + PROD → 「请在桌面应用中打开」导引页(桌面不受影响) 已做
CORS 收紧:仅留 5174(桌面 devUrl)与 tauri:// 两个来源 已做
文档/官网口径统一:删「Web 自托管」形态卡与双形态表述;FAQ 明确「浏览器不能操作」 已做

历史验收口径:当时「已做」项经桌面 App 实测(本地 MySQL/Redis 单机 + 3 主 Cluster)或单测覆盖(38 例全绿);不代表迁移后的当前状态,右键菜单以 §3 的 2026-10-14 核查及后续桌面复验为准。测试侧复跑按 §11 流程。

23. 三项目状态收敛 + opsxdb 设置重构与 DataGrip 高亮(2026-10-14)

项 状态
三项目基线提交(防再丢) opsxdb 456fa69 / opsxapi 6452026 / opsxshell be151cb;迁移/官网拆分等改动已全部入库。目录还原事件教训=每完成一步立即 commit
opsxdb 设置重构(对齐 opsxshell) 左导航:搜索框 + 图标/主标题/副文案三层 + 选中左强调条;宽 176→208;语言切换(自动/中文/English)进常规分区
「连接已断开」横幅移除 已做:整条顶部红色横幅删除(状态行已有提示,顶部横幅不友好);重连能力保留
SQL 高亮 DataGrip 风 已做:关键字亮蓝加粗 / 字符串红 / 数字浅绿 / 注释灰斜体 / 标识符浅灰白;light 同构对齐 IntelliJ
opsxapi 迁移 回滚到可用基线 6452026(apps 布局保留)——用户确认只做 opsxdb;迁移半成品已弃
修复:GUI 样式全丢(白底裸控件) 已修:根级迁移漏了 tailwind.config.ts / postcss.config.js(content 路径已改 ./src)与 index.html/public 资源;CSS 产物 12KB→32KB(Tailwind 全量恢复)。教训:单包迁移 checklist 应含样式链
  • 2026-10-14:完成根级 Tauri 2 目录整理,移除 apps/packages 重复副本,修复启动、打包、sidecar 路径及图标引用;homepage 未改动。

对象树与 dbx 表操作补充(2026-10-14)

  • 库下保留表、视图、存储过程、函数四类分组,按驱动能力裁剪;视图现在可展开字段。
  • 表下增加索引、外键、触发器分组,展开时才查询;支持独立刷新、复制名称和定义/详情,失败提示重试,未适配引擎明确提示。MySQL 系列、PG 系列、SQLite 已实现目录查询,真实引擎兼容性待验收。元数据最多取 1000 项并提示截断。
  • 表右键补齐「查看结构」及「复制建表 / 视图 SQL」,与已有查看数据、前 N 行、DDL、复制名称、SELECT/INSERT 模板、刷新、危险确认操作组成常用菜单。
  • 当时对 dbx 截图的后续清单:重命名、表级导入、克隆表;UPDATE/DELETE 模板及表级 CSV/JSON 导出已在后续落地。关系图、数据比较后置;检查约束尚未接入。
  • 验证:新增目录查询边界测试;桌面展开/收起、主题、右键定位及真实数据库权限、目录兼容性仍需验收。

AI 与 Redis 易用性(2026-10-14)

  • AI 数据库上下文优先跟随 SQL 标签的当前库;输入区展示连接/库。精简顶部重复选择器和快捷按钮为底部操作选择、多行输入、简短空态。响应仅写入原标签且不覆盖等待期间修改的 SQL。
  • Redis Key 搜索框支持回车/搜索按钮;单机各 DB 节点和 Cluster 顶部有独立搜索。输入阶段不请求服务端;无通配符时自动按 *关键词* 扫描,完整同名 Key 单独置顶;每批最多 20 次 SCAN(COUNT 200 为提示而非硬限制)、通常返回约 500 项。后续已加入「加载更多」游标续扫;有限扫描无命中不代表 Key 不存在。Cluster 只显示 Key 树,隐藏 DB0 层。
  • SQL 工具条可切 Redis 单机 DB0–DB15;切换连接时选择该连接的查询标签,或新建一个标签,AI 库上下文只读取当前连接对应的标签。新建/重选旧标签及命令执行统一校正 Redis 库号,Cluster 固定 DB0 并拒绝 SELECT 切到非零库。AI 操作改为可见选项,删除“方言”。Key 树仅标有效期,不重复标“永久”;键详情可修改 TTL 并保存,0 秒禁止误删。
  • 集群拒绝连接增加可操作诊断;本机未发现 7001 监听。需确认用户的种子地址与节点公布地址,不能宣称连接故障已修复。
  • 前端构建及 81 项测试通过,Go 编译及 2 项无网络扫描预算回归通过;需监听端口的 Redis 集成测试受沙箱限制,真实集群和桌面视觉仍待验收。

工作台标签整理(2026-10-15)

  • 启动时无内容的「查询 1」只作为内部编辑器占位,有实际标签时自动移除;表预览命名为「表名@库名」,旧表标签按当前库显示同样格式。标签只显示驱动图标、名称和未保存标记,连接名移至悬停提示;选中态和关闭按钮统一整理。相同表的当前预览可重复刷新,不再生成同名标签;已有 SQL/草稿不会被表预览覆盖。
  • 验证:82 项前端测试、前端构建通过;真实桌面窄窗口和多标签滚动仍待视觉验收。

表设计器对比与增强(2026-10-15)

  • 对照 dbx 结构编辑器和 Navicat 截图:此前弹窗只有字段单页与列级 DDL,宽度不足,缺少普通索引与表注释编辑。借鉴分区标签、紧凑网格、固定预览层级;DBFlux 的代码重点在 Schema 树与浏览,当前未直接复制第三方实现。
  • 设计器改为大工作区与字段/索引/外键/触发器/SQL 预览分区。MySQL 系列可编辑普通 BTREE、唯一/复合索引与表注释;特殊索引只读,PG/SQLite 索引及外键/触发器只读。字段排序仅新建表有效。元数据读取失败、存在不支持的变更时禁用应用;实际应用前展示 DDL 确认。
  • 修复 MySQL 列 Extra 未传递造成自增属性在字段修改时可能丢失的问题。索引 DDL 与转义有单测,真实桌面交互、MySQL/MariaDB 兼容性以及结构漂移校验仍待验收。

查询标签的 USE 切库(2026-10-15)

  • 普通 SQL 通过当前标签的库发给本机会话,后端按库打开连接池。原先 MySQL/SQL Server 的 USE 只修改池中的单条物理连接,标签与下一条语句可能仍指向旧库;现改为验证目标库并更新发起执行的标签,脚本中后续语句读取新库。无效语法或目标库不可用不改变标签,并停止该批次后续语句以免在旧库误执行。PG 改用工具条切库;Redis 单机 SELECT n、集群 DB0。

库、表、表设计与数据迁移专项盘点

详见 DATABASE-OPERATIONS-AUDIT.md。右侧结构页已复用对象树的 MySQL/PG/SQLite 元数据查询,查询失败单组提示并可重试;AI 晚到 SQL 的原标签/未保存状态和切库保护已有回归。下一步真库核对与树节点定位 → 字段/索引设计及 DDL 预览 → CSV 导入 → 表级导出完善 → 逻辑备份与恢复。规划项未标为已完成。

2026-10-15 的 OpsxDB / DBX / DBeaver 高频操作评审按关系库工作流重新评分,并复核了源码。优先补表数据新增行、明确 NULL 与改动/部分失败反馈,以及 CSV 导入向导;手动事务须先做绑定查询标签的独占物理连接与生命周期,不能只在现有连接池上发 BEGIN。随后处理整表导出截断提示、MySQL/PG 手动备份与恢复演练、结构漂移校验和只读比较。AI/Redis 优势单列,不以视觉旧分替代功能分;规划能力不得显示为已完成。

主题随系统 + AI 真模型接入(2026-10-14 · 参考 opsxshell)

项 状态
设置→常规主题三段:深色 / 浅色 / 随系统(prefers-color-scheme 监听,系统切换即时生效;编辑器高亮跟随生效主题而非原始偏好) 已做,桌面切换系统外观待实测
AI Provider 预设(DeepSeek / OpenAI / Qwen / Kimi / GLM / MiniMax / Anthropic / Gemini / Ollama / 自定义,选预设自动填 Base URL、协议、默认模型;src/aiPresets.ts) 已做
AI 三协议:openai-chat / openai-responses / anthropic(x-api-key + anthropic-version),Go 端 server/internal/ai/remote.go 按协议分派,旧配置按 provider 推断协议 已做
安全:Base URL 默认仅放行 HTTPS;本地/内网 HTTP 需在设置中显式开启(Ollama 预设默认开启且免鉴权 authStyle=none) 已做
修复:保存 AI 配置时 key 留空不再静默清空已存 key(服务端合并旧值);LoadConfig 补读 protocol/authStyle/allowInsecureHttp 已修
验证:Go ai 包单测(endpoint 校验/三协议解析/协议推断)、前端 aiPresets 测试、64 项前端测试;后端重启后端到端(anthropic 配置回读、HTTP 拦截文案、本机 Ollama 实连返回 404 model not found 证明链路通) 已过;真实云端 key 桌面验收待做,流式输出后置

表设计器 v1 + 转储 SQL + ⌘/ 注释(2026-10-14 · 参考 dbx/rustgrid)

项 状态
表右键「设计表…」/ 库右键「新建表…」→ 设计器 v1(src/TableDesigner.tsx):字段网格(名/类型/长度/NULL/自增/主键/默认/注释)+ 实时 DDL 预览 + 应用 已做,真库验收待做
设计器 DDL 生成(src/tableDdl.ts):新建 = 方言化 CREATE(MySQL 族 ENGINE/CHARSET、PG 族双引号);编辑 = 列级 diff ALTER(MySQL ADD/DROP/MODIFY/CHANGE,PG TYPE/NOT NULL/DEFAULT/RENAME,主键组变更 ADD/DROP PRIMARY KEY);SQLite 仅建表+ADD COLUMN,其余注释说明不静默生成 已做,11 项单测覆盖
应用走 execSql,ALTER/CREATE 命中服务端危险词表自然进入二段确认;应用后自动刷新对象树 已做
表右键「转储 SQL 文件 ▸」三态(仅结构 / 仅数据 / 结构和数据),服务端 POST /api/db/dump 流式输出 .sql(结构=SHOW CREATE TABLE/拼装 DDL + 注释头;数据=复用 insert 编码;不带 DROP TABLE) 已做
快捷键修正:⌘/(Mod-/)= 注释/取消注释(CodeMirror toggleComment,对齐 dbx/dbflux/navicat 惯例);帮助面板改 ⌘⇧/(⌘?);设置与帮助浮层文案同步 已做
验证:前端 75 项测试全绿、tsc 通过、Go build/vet 通过;MySQL 3306 真库端到端(建库建表插数据 → 三种转储模式输出正确、文件名头正确、库.表 参数归一) 已过
桌面验收清单:设计器新建表→改字段→改主键全流程、转储大表流式与取消、⌘/ 在选中/单行/Redis 命令模式行为 待做

设计器 v1 后续:普通 MySQL 索引已可编辑,特殊索引和 PG/SQLite 索引仍只读;外键/触发器编辑、引擎/字符集选项、重命名表、克隆表、结构漂移重校验仍待做,详见审计文档。

表右键与 Redis 键视图细节(2026-10-15)

项 状态
表右键按「生成 SQL / 导出数据 / 转储 SQL」折叠,SQL 提供 SELECT、INSERT、UPDATE、DELETE、DDL 五项;CSV/JSON 可输入最多 500000 行上限,默认 100000;达到上限可能不完整,不能代替备份 已做;复合主键和大表导出回归待做
Redis Cluster 在隐藏 DB0 层的键树顶部提供搜索;单机与集群统一「加载更多」;String 默认 Raw、切 JSON 格式化高亮并可编辑、复制值;集群连接地址显示配置的种子节点(例如 127.0.0.1:7101) 已做;真实多主大键空间及视觉验收待做
CSV 导入向导(预览/列映射/错误行)、结构只读比较、数据比较、导出 XLSX、整库备份/恢复 未做;按 docs/DATABASE-OPERATIONS-AUDIT.md 的依赖与优先级实施,不加无效按钮

Redis 集群连接失败定位与修复 + 标签确认精简(2026-10-15)

项 状态
集群诊断结论:opsxdb-redis-cluster3(7101-7103,3 主 16384 槽)健康、宿主机可直连;opsx-redis-cluster(:7000)是 cluster_state:fail 的孤儿容器(0 槽、无 meet);旧地址 7001-7003 已无监听 已定位,集群无需重启;建议删除 7000 坏容器避免误连
修复:redisMode 未显式选择但填了多个节点时自动按 Cluster 处理(Sentinel 需显式选+masterName 不受影响);单机客户端收到 MOVED/ASK 时错误文案附「切换部署模式为 Cluster」指引 已修,redis_mode_test.go 补推断与提示单测
端到端(127.0.0.1:8790 临时实例):显式 cluster 与省略 mode 两种方式 SET/GET/DEL 跨槽键全部正常(此前同键 MOVED 直抛);单机 6379 PING 回归正常 已过
移除「当前查询未保存…新开标签写入 SELECT?」确认:新开标签不覆盖任何内容,确认无意义;改为 dirty 时直接新开。关闭标签的未保存确认保留(会丢内容) 已改,前端 75 项测试回归全绿
⚠ 环境冲突待用户处理::8788 被同族 opsxapi 的 opsxdbapi-server 占用(2026-10-15 00:06 启动,两项目默认同端口);./run.sh gui 探测 health 命中后误以为 opsxdb 后端已运行。需停掉 opsxapi 或为其改端口 待用户决策

Redis 键浏览与编辑安全(2026-10-15 · 对照 ARDM / DBFlux / dbx)

项 状态
参照 ARDM 的暂停/继续 SCAN、DBFlux 的 Cluster 主节点独立游标:左侧单机各 DB 与 Cluster 键树提供「继续查找 Key」;每页最多 20 次 SCAN、通常约 500 项,跨分片续扫,同名 Key 合并,输入新搜索词重新从头查 已实现;SCAN 非快照,扫描期间增删 Key 仍可能重现或遗漏;真实多主集群大键空间待复验
String 详情保存改为 SET … KEEPTTL,避免编辑清除原 TTL;Redis 6.0 前遇到不支持该参数时用原子脚本读取 PTTL/写回;并发时旧键消失会报错提示刷新 已修,真实 Redis TTL 往返待复验
List 单行删除由 LREM 1 value 改为校验索引/原值的原子脚本,避免重复值误删前面一行;按排序/过滤后的真实索引编辑 已修;大列表脚本耗时及多人并发需真库复验
值详情已有 hash/list/set/zset 分页、过滤排序、行编辑及 TTL 设置;当前过滤仅作用于已加载行(不宣称全键搜索) 已有;真大集合翻页待复验
借鉴 DBFlux 的可见键数量/内存大小、服务端 SCAN TYPE 和 stream 值管理,dbx 的搜索历史/视图状态与分组设置 P1:先做服务器端类型筛选与大键提示,再评估 stream 编辑;搜索历史和自动滚动按实际使用反馈取舍
CSV/JSON 键级导入导出、批量 UNLINK、离线 RDB 分析、监控/慢日志 后置:先验证单键安全与续扫,批量删除不能把 SCAN 结果当作完整集合