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. 建议排期(给人用)
文案/注册表:B 层 notes(已写,悬停「未验收」可见)
- 入库:整理 diff → 提交推 Gitee
- 环境到位再测:真 Oracle / 真国产库 / Redis Sentinel·Cluster
- 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 结果当作完整集合 |