Repository navigation
Releases
Releases · fluxdb-alt/fluxDB
v0.1.18
中文
新功能
- 新增连接级「服务器」面板:在连接右键菜单打开「服务器」页签。SQL 连接(MySQL / MariaDB / TiDB、PostgreSQL / KingbaseES、SQL Server、Oracle、达梦)提供概览、会话与锁等待,可终止查询或会话,并执行 VACUUM / ANALYZE / OPTIMIZE TABLE / REINDEX 等维护操作;Redis 提供概览、客户端与慢日志,可终止客户端、清空慢日志;MongoDB 提供概览、当前操作(慢操作过滤、killOp)与会话内性能趋势。支持手动刷新与 5 秒自动刷新、「只看我的会话」过滤;只读连接在界面、应用层与连接器三层拒绝终止与维护,面板错误只显示在面板内。
- 查询工具栏支持切换目标数据库与 Schema:连接名只读,按连接类型显示可切换的数据库 / Schema 下拉,执行中禁止切换。切库会关闭旧会话并清空结果(未提交事务回滚),切 Schema 保留会话;PostgreSQL / KingbaseES 切回「默认」时发送
RESET search_path,SQL Server 每次执行前重置到工具栏选中的库。SQLite、DM8、Oracle 按能力只读显示对应选项,需要时在 SQL 中显式限定。 - 新增自定义主题与字体设置:可新建、编辑、删除自定义主题,调整常用 token 与 SQL 高亮全部分类,主题写入用户数据目录的
themes/;支持导入 Zed 与 VS Code 主题(含 JSONC),按 scope 推导语法高亮,明暗变体自动切换主题模式;界面字体 / 字号与代码字体 / 字号 / 行高独立设置,界面字号整体缩放菜单、标签、表格与对话框,拖动时实时预览。
改进
- 本地 MCP 从独立 stdio 进程改为应用进程内的 Streamable HTTP 端点(默认
http://127.0.0.1:47821/mcp),仅监听回环地址并逐请求校验 Bearer 令牌;客户端配置改写为地址 +Authorization头,并兼容接管旧 stdio 槽位;关闭开关后端点停止并断开已有会话,重新打开后地址与令牌不变。 - 新增集中式本地 SQLite 迁移:以
PRAGMA user_version门控,升级前用VACUUM INTO生成一致快照并保留最近 3 份,每个迁移步骤与版本号在同一事务内提交;遇到更高版本的数据库直接失败关闭,避免旧版本写入破坏结构。 - MCP 的
connections_list返回库名提示,search_objects在没有库上下文时返回库清单;目标 / 作用域错误补充合法格式与修正建议。 - 统一数据库边界语义:SQLite 表浏览保留真实值类型,与查询编辑器一致;SQL Server 负 DECIMAL 精确渲染;TiDB 只读入口改用事务回滚并拒绝非查询语句。
- 新增跨 SQL 引擎一致性测试与运行脚本:SQLite 默认运行,PostgreSQL、MySQL、MariaDB、TiDB、SQL Server、DM8、Kingbase 与 Oracle 按环境变量启用,并补充覆盖范围与容器 / 远程运行说明。
- README 默认展示英文版,中文版迁移到
README.zh-CN.md;本地门禁脚本新增硬编码 px 字号检查,界面文本统一走 rem 缩放。
修复
- 修复 Redis 数据库在侧栏按字符串排序导致 10 排在 2 前的问题,改为按数值升序。
- 修复 SQL Server 负 DECIMAL 渲染成
-1.-2500的问题。
已知限制
- 服务器面板的会话 / 客户端列表最多读取 500 条;SQL Server 不提供「终止查询」,Oracle 受驱动限制也不提供,二者只能终止会话;MongoDB 性能趋势只在会话内采样,最多约 5 分钟且不落盘。
- 只读连接是客户端护栏,不替代服务端只读账号:存储函数副作用、高权限账号等仍可能绕过。
- 自定义主题暂不支持
.tmTheme等 plist 主题;删除主题会移入themes/.trash/,不会立即释放磁盘;外部主题按 scope 推导高亮,个别语言可能需要手工调整。 - 切换数据库会关闭旧会话,其中未提交的事务会回滚;SQLite 没有当前库概念,DM8 驱动不支持切换 Schema,Oracle 一个实例只有一个库,均需在 SQL 中显式限定。
- MCP 端点仅本机可用,不提供远程访问;关闭 MCP Server 不会删除已写入的客户端配置。
- 本地数据库升级前会生成
VACUUM INTO备份(保留最近 3 份),会占用额外磁盘;使用新版本升级过的数据库,旧版本应用会拒绝打开并提示升级。
English
New features
- Connection-level server panel: open the new "Server" tab from a connection's context menu. SQL connections (MySQL / MariaDB / TiDB, PostgreSQL / KingbaseES, SQL Server, Oracle, Dameng) show an overview, sessions and lock waits, and can terminate queries or sessions and run maintenance such as VACUUM / ANALYZE / OPTIMIZE TABLE / REINDEX. Redis shows an overview, clients and slow log, with client termination and slow-log clearing. MongoDB shows an overview, current operations (slow-operation filter, killOp) and an in-session performance trend. The panel supports manual refresh, 5-second auto refresh and a "my sessions only" filter; read-only connections reject termination and maintenance in the UI, the app layer and the connector, and panel errors stay inside the panel.
- Switch query target database and schema from the toolbar: the connection name stays fixed while database and schema dropdowns switch the target per connection type; switching is disabled while a query runs. Switching database closes the old session and clears results (open transactions roll back), while switching schema keeps the session. PostgreSQL / KingbaseES send
RESET search_pathwhen returning to "default", and SQL Server resets to the toolbar database before every execution. SQLite, DM8 and Oracle expose these options read-only according to capability; qualify names in SQL when needed. - Custom themes and font settings: create, edit and delete custom themes, adjusting common tokens and every SQL highlight category, with files written to the user data directory's
themes/. Zed and VS Code themes (including JSONC) can be imported, syntax highlighting is inferred from scopes, and light/dark variants switch the theme mode automatically. UI font/size and code font/size/line-height are configured separately; the UI size scales menus, labels, tables and dialogs with live preview while dragging.
Improvements
- The local MCP server moved from a standalone stdio process to an in-app Streamable HTTP endpoint (default
http://127.0.0.1:47821/mcp). It listens on loopback only and validates a Bearer token on every request; client configuration now writes a URL plusAuthorizationheader and takes over old stdio slots. Turning the switch off stops the endpoint and closes sessions, and turning it back on keeps the same address and token. - Added centralized local SQLite migrations gated by
PRAGMA user_version: each upgrade takes a consistentVACUUM INTObackup (the newest 3 are kept), each step and its version bump commit in one transaction, and a database written by a newer version fails closed instead of being modified by an older app. - MCP
connections_listnow returns a database hint, andsearch_objectslists databases when no database context is given. Target/scope errors include the expected format and a correction hint. - Unified database boundary semantics: SQLite table browsing keeps real value types to match the query editor, SQL Server renders negative DECIMAL values exactly, and the TiDB read-only path rolls back its transaction and rejects non-query statements.
- Added cross-engine SQL conformance tests and scripts: SQLite runs by default, while PostgreSQL, MySQL, MariaDB, TiDB, SQL Server, DM8, Kingbase and Oracle are enabled through environment variables, with documentation for container and remote runs.
- The English README is now the default and the Chinese version moved to
README.zh-CN.md; the local gate script now rejects hard-coded px text sizes so UI text follows the rem scale.
Fixes
- Fixed Redis databases sorting as strings in the sidebar, which put 10 before 2; they now sort numerically ascending.
- Fixed SQL Server negative DECIMAL values rendering as
-1.-2500.
Known limits
- Server panel session/client lists read at most 500 rows. SQL Server has no "cancel query" command and Oracle is limited by its driver, so both only support terminating sessions. The MongoDB performance trend is sampled in-session for about 5 minutes and is not persisted.
- The read-only connection is a client-side guard, not a replacement for a read-only server account; stored procedure side effects and high-privilege accounts can still bypass it.
- Custom themes do not support
.tmThemeor other plist themes yet. Deleted themes move tothemes/.trash/and do not free disk immediately. Imported themes infer highlighting from scopes, so some languages may need manual adjustment. - Switching database closes the old session and rolls back uncommitted transactions. SQLite has no "current database", the DM8 driver cannot switch schema, and an Oracle instance has a single database, so qualify names in SQL in those cases.
- The MCP endpoint is local-only and is not reachable remotely. Turning MCP Server off does not delete client configurations already written.
- Local database upgrades create a
VACUUM INTObackup (the newest 3 are kept), which uses extra disk. Databases upgraded by a newer version are refused by older apps, which ask the user to upgrade.
v0.1.17
中文
新功能
- 新增结构对比与同步:从连接右键菜单进入,选择源端与目标端的连接、数据库及可选 Schema / 表,按
schema.name配对基础表,展示目标缺失、目标多出、结构不同与一致四种状态,并提供两端 DDL 对照及字段 / 索引差异明细;可按勾选执行新建缺失表、删除目标多出表、重建结构不同表,同步在后台运行并写入任务中心。 - 新增跨连接数据传输:把源表数据分页读取、分批写入另一连接的目标表;支持追加写入与清空后写入,目标表不存在时可按源端 DDL 自动建表;进度与运行日志实时展示,可取消,内存占用只与单页行数相关,不随表大小增长。
- 新增任务中心:汇总备份、恢复、SQL 文件执行、表导入导出、Mongo 导入导出、结构同步与数据传输等后台任务,统一展示运行中 / 已完成 / 失败 / 已取消状态、进度与日志,支持取消,并把历史记录持久化到本地,重启后仍可查看。
- 新增可视化执行计划:工具栏「解释」复用当前选区 SQL,解析 MySQL / MariaDB / TiDB 的
EXPLAIN FORMAT=JSON、PostgreSQL / KingbaseES 的EXPLAIN (FORMAT JSON)、SQLite 的EXPLAIN QUERY PLAN以及手写的 MySQL 风格EXPLAIN表格,生成节点树与节点检查器,并标记全表扫描、文件排序、无索引等风险;无法解析时保留原始结果表格,不猜测计划结构。
改进
- 重构新建连接表单(上一版本遗漏说明):高频字段保留在「连接信息」,MySQL / MariaDB / TiDB 的字符集、排序规则与 URL 参数移入「高级」;SQLite 隐藏空的网络页签,减少无效填写。
- MySQL / MariaDB / TiDB 新增 SOCKS5 与 HTTP CONNECT 代理,均支持用户名密码认证,可与 TLS 组合使用;PostgreSQL 复用共享代理拨号。代理不可达、握手失败或认证失败直接报错,不静默回退直连;SSH 隧道与代理互斥。
- 统一各数据库连接档案的校验、options 回写、拨号端点与凭据槽位,集中管理表单字段与档案回填,减少新增数据源时的重复分支。
修复
- 修复 MySQL 旧连接档案的 TLS 模式迁移误判:仅在 TLS 启用时把旧 verify 位迁移为
verify_ca,TLS 关闭的旧档案不再被误改。 - 修复「筛选 & 排序」切换字段时无条件清空已填值:改为按新列类型判断,文本 / 未知类型原样保留,数字 / 布尔列只保留能解析的值;介于 / 不介于任一上下界不兼容时整体清空,部分值被移除时提示数量。
- 修复 PostgreSQL 补全在 KingbaseES 上的兼容性问题,以及导出分页中嵌套
block_on的问题。 - 补齐备份与恢复「取消任务」的中英文文案,修复语言包缺键。
已知限制
- 结构对比只比较基础表,不比较视图与例程;跨数据库类型同步按源端 DDL 重建,目标端不支持的语法需要手工调整。
- 数据传输选择「清空后写入」时,清空与后续批次写入不在同一事务内,中途失败会留下已清空的目标表。
- 执行计划只解析 MySQL / MariaDB / TiDB、PostgreSQL / KingbaseES 与 SQLite 的输出,其他数据库或无法识别的格式回退为原始结果表格;「解释」入口不会执行
EXPLAIN ANALYZE。 - 任务中心历史记录保存在本地;进程中断时仍在运行的任务会按失败记录。
English
New features
- Structure compare and sync: open it from a connection's context menu, choose the source and target connection, database and optional schema/table. Base tables are paired by
schema.nameand reported as missing in target, extra in target, structurally different or identical, with side-by-side DDL and per-table column/index differences. Selected actions can create missing tables, drop extra tables and recreate modified tables; sync runs in the background and reports to the task center. - Cross-connection data transfer: read source rows in pages and write them to a table on another connection in batches. Supports append and truncate-then-write modes, and can create the target table from the source DDL when it does not exist. Progress and logs update live, the task can be canceled, and memory usage depends only on the page size rather than table size.
- Task center: collects background work such as backup, restore, SQL file execution, table and MongoDB import/export, structure sync and data transfer. It shows running/completed/failed/canceled status, progress and logs, supports cancellation, and persists history locally so it survives a restart.
- Visual query plans: the toolbar "Explain" action reuses the selected SQL and parses
EXPLAIN FORMAT=JSONfor MySQL / MariaDB / TiDB,EXPLAIN (FORMAT JSON)for PostgreSQL / KingbaseES,EXPLAIN QUERY PLANfor SQLite, and hand-written MySQL-styleEXPLAINtables into a node tree and inspector. Full table scans, filesorts and missing indexes are flagged; unrecognized output falls back to the raw result table instead of guessing a plan.
Improvements
- Connection form refactor (omitted from the previous release notes): high-frequency fields stay under "Connection info", while MySQL / MariaDB / TiDB charset, collation and URL parameters move to "Advanced"; SQLite hides the empty network tab to avoid irrelevant fields.
- MySQL / MariaDB / TiDB now support SOCKS5 and HTTP CONNECT proxies, both with username/password authentication and combinable with TLS; PostgreSQL reuses the shared proxy dialer. An unreachable proxy, failed handshake or failed authentication reports an error instead of silently falling back to a direct connection; SSH tunnels and proxies remain mutually exclusive.
- Unified connection-profile validation, options write-back, dial endpoints and credential slots across databases, with form fields and profile hydration managed centrally to reduce per-database branches.
Fixes
- Fixed a false TLS-mode migration for legacy MySQL profiles: the old verify bit is migrated to
verify_caonly when TLS is enabled, so profiles with TLS disabled are no longer rewritten. - Fixed "Filter & sort" clearing values unconditionally when the field changes. Values are now checked against the new column type: text/unknown types keep them as-is, numeric/boolean columns keep only parseable values, between/not-between clears both bounds when either is incompatible, and a count is shown when some values are removed.
- Fixed PostgreSQL completion compatibility on KingbaseES and a nested
block_onin export pagination. - Added the missing Chinese and English "cancel task" strings for backup and restore.
Known limits
- Structure compare covers base tables only, not views or routines. Cross-database sync recreates objects from the source DDL, so target-dialect differences may need manual adjustment.
- With "truncate then write", the truncate and subsequent batches are not in the same transaction; a mid-way failure leaves the target table truncated.
- Query plans are parsed only for MySQL / MariaDB / TiDB, PostgreSQL / KingbaseES and SQLite output. Other databases or unrecognized formats fall back to the raw result table, and the "Explain" entry never runs
EXPLAIN ANALYZE. - Task center history is stored locally; tasks still running when the process is interrupted are recorded as failed.
v0.1.16
中文
新功能
- 新增人大金仓 KingbaseES 数据源(PG 兼容模式):复用 PostgreSQL 连接器、wire protocol、
pg_catalog与双引号方言,支持连接测试、库 / Schema 与对象浏览、SQL 查询与补全、数据查看与编辑、表结构查看与设计,以及用户与权限入口。 - 连接表单复用 PostgreSQL 档案,默认
127.0.0.1:54321/system/test,支持 TLS、SSH 隧道、代理、Schema 作用域、超时与postgres://连接串导入;侧边栏、设置页与连接类型清单加入 KingbaseES。 - 只读模式、AI 页面上下文与受控执行、筛选排序、导入导出、建表与 ER 图等能力按 PostgreSQL 家族同步接入。
改进
- PostgreSQL 相关分支统一通过
is_postgres_family()判断,新增 PG 系数据库时不再逐处补DatabaseKind::Postgres,避免方言、补全、过滤或 AI 策略漏接。 - 设置页内置连接器清单与连接类型栏底部计数更新为 11 种。
修复
- 修复 KingbaseES 打开“表属性 → DDL”时 panic:Kingbase 的
pg_sequence把seqstart/seqincrement/seqmin/seqmax声明为int2(值实际是 int8),按i64解码失败;查询改为显式::bigint,PostgreSQL 行为不变。 - 修复连接类型栏底部仍显示“10 种内置驱动”的计数错误。
已知边界
- 仅支持 PG 兼容模式,Oracle 兼容模式不在支持范围内。
- 暂不支持原生备份 / 恢复;需要时请在命令行使用
sys_dump/ksql。备份入口会明确提示“该数据库尚不支持备份与恢复”。 - 不提供
psql/ksql等外部工具入口。 - 用户与权限页沿用 PostgreSQL 实现,尚未在 KingbaseES 上单独回归。
- 表属性 DDL 覆盖序列、约束、索引、触发器、分区与视图;如遇未覆盖的 Kingbase 专有语法,请附失败语句反馈。
English
New features
- Added KingbaseES (Renmin University Kingbase) as a data source in PG compatibility mode. It reuses the PostgreSQL connector, wire protocol,
pg_catalogand double-quoted identifier dialect, and supports connection tests, database/schema and object browsing, SQL queries and completion, data viewing and editing, table structure viewing and design, and the users and privileges entry. - The connection form reuses the PostgreSQL profile with defaults
127.0.0.1:54321/system/test, and supports TLS, SSH tunnels, proxies, schema scope, timeouts andpostgres://connection-string import. KingbaseES is listed in the sidebar, settings and connection-kind list. - Read-only mode, AI page context with controlled execution, filtering and sorting, import/export, table creation and ER diagrams are wired through the PostgreSQL family.
Improvements
- PostgreSQL-related branches now share
is_postgres_family(), so a new PG-family database no longer needs aDatabaseKind::Postgrespatch at every dialect, completion, filter or AI policy site. - The settings connector list and the connection-kind rail now report 11 built-in connectors.
Fixes
- Fixed a panic when opening "table properties → DDL" on KingbaseES. Kingbase declares
pg_sequence.seqstart/seqincrement/seqmin/seqmaxasint2while the values are int8, so decoding them asi64failed; the query now casts to::bigint, which leaves PostgreSQL behavior unchanged. - Fixed the connection-kind rail still showing "10 built-in drivers".
Known limits
- PG compatibility mode only; Oracle compatibility mode is not supported.
- Native backup/restore is not supported yet. Use
sys_dump/ksqlfrom the command line when needed; the backup entry reports that the database is not supported. - No
psql/ksqlexternal tool entries. - The users and privileges page reuses the PostgreSQL implementation and has not been separately regression-tested on KingbaseES.
- Table DDL covers sequences, constraints, indexes, triggers, partitions and views. If a Kingbase-specific statement is not covered, please report the failing SQL.
v0.1.15
中文
新功能
- 新增 MariaDB 数据源:独立连接类型复用 MySQL 协议链路并持久化数据库类型,支持对象浏览、建库删库、SQL 查询与补全、表结构管理与设计、数据编辑、导入导出、备份恢复、用户与权限管理,以及 AI 页面上下文与受控执行。
- MariaDB 使用独立只读守卫与 AI SQL 策略;账号 DDL 使用
IDENTIFIED VIA ... USING PASSWORD与SET DEFAULT ROLE ... FOR,角色按无 host 账号处理;备份恢复优先使用mariadb-dump/mariadb,TLS 参数使用--ssl。 - 新增连接级只读模式:高级设置增加“只读连接”,落盘为
options["read_only"]。SQL 按语句解析拦截写入,Redis 按命令白名单拦截,MongoDB 按只读命令白名单拦截;SQLite 同时以驱动只读方式打开文件,侧边栏标记只读连接。 - Redis CLI 在只读连接下改连本机 RESP 代理:读命令经现有连接器执行,写命令返回
READONLY且不触达服务端;代理只监听127.0.0.1,使用REDISCLI_AUTH注入随机令牌。 - 新增
⌘P/Ctrl+P快速打开:模糊搜索侧边栏已加载的表与视图,支持高亮、键盘选择和直接打开;没有活动页签时自动选择可用的 SQL 连接。 - 新增 AI 内置文档工具:
docs.search检索随应用编译的产品文档,docs.read按section_id分页读取正文;两个工具只读本地静态内容,不访问用户文件、数据库、凭据或网络。 - 新增完整中文操作手册,覆盖连接、SQL 编辑器、数据编辑、结构管理、导入导出、备份恢复、权限、Redis、MongoDB、设置、快捷键与常见问题,并配实际操作截图。
- MongoDB 命令行终端与库级命令工作台支持
insertOne/insertMany/insert、updateOne/updateMany、replaceOne、deleteOne/deleteMany/remove、索引创建与删除、db.createCollection和集合删除;聚合管道仍拒绝$out/$merge写回。
改进
- 设置页的数据库支持列表补齐 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、SQLite、TiDB、达梦 DM8、MongoDB 与 Redis 的真实连接器状态,移除过时的 Mock 文案。
- 退出应用时,如存在未保存修改或运行中的查询,先弹出确认框;覆盖快捷键、托盘和关闭窗口三种退出入口。
- 连接框、对象树、数据编辑、导入、恢复、建删库及 Redis / MongoDB 写入口统一接入只读拦截,并在界面与 AI 工具中同步只读状态。
- AI SQL 策略为 MariaDB 增加独立方言与只读判定;MongoDB 写方法、原生终端和命令工作台共用同一套只读边界。
- SQL 补全在 MySQL、PostgreSQL、Oracle、SQL Server 上补齐多类派生表、CTE、集合运算、JSON 表函数、限定符与大小写场景。
- Redis Workbench 的执行失败改为与成功记录同构展示,已有历史记录时仍能看到本次失败原因。
修复
- 修复 MariaDB 建表校验错误套用 MySQL
CHECK ... NOT ENFORCED限制的问题。 - 修复 SQL 补全在普通
schema.限定符后不触发的问题;带引号标识符不再依赖回退逻辑。 - 修复 MySQL 补全缺少 CTE 投影列、集合运算派生列、命名窗口、
JSON_TABLE列清单、库限定 UDF 与跨库表元数据的问题。 - 修复 PostgreSQL 补全不支持
LATERAL表值函数列别名、已有调用括号时重复插入()、引号列丢失d.限定符的问题。 - 修复 Oracle 补全未引用小写表名、CTE / 派生表别名、
UNION投影与JSON_TABLE列推导的问题;执行前剥离前导注释,避免ORA-00900。 - 修复 SQL Server 补全对
OPENJSON ... WITH列清单与PIVOT输出列的推导缺失。 - 修复 MongoDB 补全缓存复用后再次选择集合候选时出现
db.db["customers"].的问题:复用结果按光标后新增后缀平移替换区间。 - 修复主键列就地编辑后脏格不高亮、删除行不置灰的问题;行身份同时参考本次改动的新值。
- 修复 Redis Workbench 整次执行失败时不生成失败记录、错误提示被历史记录顶掉的问题。
- 修复鼠标点击或拖选移出函数调用后,旧函数签名浮层残留的问题。
- 修复取消更新下载后更新弹框未立即关闭、后台返回取消时重复提示的问题。
- 修复只读连接下 Redis Pub/Sub 发布仍可能入队执行的问题,发布入口直接拒绝。
已知限制
- 连接只读是客户端拦截,不能替代数据库账号权限;外部客户端或绕过 FluxDB 的连接仍受服务端授权控制。
- MariaDB 复用 MySQL 协议链路,未单独实现 MariaDB 独有的全部服务端特性;备份恢复需要本机安装
mariadb-dump/mariadb或兼容的 MySQL 客户端。 - AI 文档工具只覆盖随应用编译的产品文档,不读取在线文档、用户文件或外部知识库。
- MongoDB 写方法仅覆盖终端与命令工作台已列出的命令;未实现的写方法会返回明确提示,不冒充成功。
验证
- 通过
cargo fmt --all -- --check、cargo check --workspace --locked与cargo clippy --workspace --all-targets --locked。 - 通过
cargo test -p fluxdb-app --lib、文档解析与检索测试、工具目录覆盖测试。 - 补齐 MySQL / PostgreSQL / Oracle / SQL Server 补全真实库用例;用例按环境变量启用,未配置时自动跳过。
- 发布前通过 GitHub Actions 三平台(macOS、Windows、Linux)构建预检。
English
New features
- Added MariaDB support: a dedicated connection type reuses the MySQL protocol path and persists the database type. It covers object browsing, database create/drop, SQL queries and completion, table design, data editing, import/export, backup and restore, users and privileges, and AI page context with controlled execution.
- MariaDB has its own read-only guard and AI SQL policy. Account DDL uses
IDENTIFIED VIA ... USING PASSWORDandSET DEFAULT ROLE ... FOR, roles are treated as host-less accounts, backup and restore prefermariadb-dump/mariadb, and TLS uses--ssl. - Added connection-level read-only mode: the advanced connection settings include a read-only switch persisted as
options["read_only"]. SQL writes are blocked by statement analysis, Redis writes by a command allowlist, and MongoDB writes by a read-only command allowlist; SQLite files also open read-only at the driver level, and the sidebar marks read-only connections. - In read-only connections the Redis CLI now connects to a local RESP proxy: read commands run through the existing connector, write commands return
READONLYwithout reaching the server, the proxy listens only on127.0.0.1, andREDISCLI_AUTHcarries a random token. - Added
⌘P/Ctrl+Pquick open: fuzzy-search tables and views already loaded in the sidebar, with highlighting, keyboard selection and direct open. When no tab is active it selects an available SQL connection automatically. - Added built-in AI documentation tools:
docs.searchsearches product documentation compiled into the app, anddocs.readpages through a section bysection_id. Both are read-only over local static content and never access user files, databases, credentials or the network. - Added a complete Chinese user guide covering connections, the SQL editor, data editing, schema management, import/export, backup and restore, permissions, Redis, MongoDB, settings, shortcuts and troubleshooting, with real screenshots.
- The MongoDB command-line terminal and database-level command workbench now support
insertOne/insertMany/insert,updateOne/updateMany,replaceOne,deleteOne/deleteMany/remove, index create/drop,db.createCollectionand collection drop. Aggregation still rejects$out/$mergewrite-back.
Improvements
- The settings database list now reflects the real connector state for MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, SQLite, TiDB, Dameng DM8, MongoDB and Redis, replacing stale mock labels.
- Quitting with unsaved changes or running queries now asks for confirmation, covering keyboard shortcuts, the tray and window close.
- Connection dialogs, the object tree, data editing, import, restore, database/object create-drop, and Redis / MongoDB write entries share the read-only guard, and the UI and AI tools report the same read-only state.
- The AI SQL policy adds a MariaDB dialect and read-only checks; MongoDB write methods, the native terminal and the command workbench share one read-only boundary.
- SQL completion gained missing derived-table, CTE, set-operation, JSON table function, qualifier and case-handling cases across MySQL, PostgreSQL, Oracle and SQL Server.
- Redis Workbench execution failures now render as records like successes, so a failure remains visible when earlier records exist.
Fixes
- Fixed MariaDB table validation incorrectly applying the MySQL
CHECK ... NOT ENFORCEDrestriction. - Fixed completion not triggering after a plain
schema.qualifier; quoted identifiers no longer depend on a fallback path. - Fixed MySQL completion gaps for CTE projection columns, set-operation derived columns, named windows,
JSON_TABLEcolumn lists, schema-qualified UDFs and cross-database table metadata. - Fixed PostgreSQL completion gaps for
LATERALtable-function column aliases, duplicate()insertion when a call already has parentheses, and quoted columns losing thed.qualifier. - Fixed Oracle completion gaps for unquoted lowercase table names, CTE / derived-table aliases,
UNIONprojections andJSON_TABLEcolumn inference; leading comments are now stripped before execution to avoidORA-00900. - Fixed SQL Server completion inference for
OPENJSON ... WITHcolumn lists andPIVOToutput columns. - Fixed MongoDB completion reuse producing
db.db["customers"].when a collection candidate is chosen after more typing: reused ranges are now shifted by the newly typed suffix. - Fixed dirty cells not highlighting and deleted rows not dimming after an in-place primary-key edit; row identity now also considers the new value from the current edit.
- Fixed Redis Workbench not recording a failed execution and error messages being hidden by earlier records.
- Fixed the old function-signature popover remaining after a mouse click or drag moved the cursor out of a call.
- Fixed the update dialog not closing immediately after cancelling a download, and the cancel result being reported twice.
- Fixed Redis Pub/Sub publishing still being queued in read-only connections; the publish entry now rejects it.
Known limits
- Connection read-only mode is a client-side guard, not a replacement for database account permissions. External clients or connections that bypass FluxDB remain governed by server-side grants.
- MariaDB reuses the MySQL protocol path and does not implement every MariaDB-specific server feature. Backup and restore require a local
mariadb-dump/mariadbor compatible MySQL client. - The AI documentation tools only cover documentation bundled with the app; they do not read online docs, user files or external knowledge bases.
- MongoDB write methods cover only the commands listed for the terminal and command workbench; unimplemented methods return a clear message instead of reporting success.
Validation
- Passed
cargo fmt --all -- --check,cargo check --workspace --lockedandcargo clippy --workspace --all-targets --locked. - Passed
cargo test -p fluxdb-app --lib, documentation parsing and search tests, and the tool-catalog coverage test. - Added live-database completion cases for MySQL, PostgreSQL, Oracle and SQL Server; they are gated by environment variables and skip automatically when unset.
- The release passed the GitHub Actions three-platform (macOS, Windows, Linux) build preflight.
v0.1.14
中文
新功能
- 新增 MongoDB 数据源:连接串导入(
mongodb:///mongodb+srv://)回填主机、SRV、账号、默认库与认证库,连接后按「连接 → 库 → 集合分组 → 集合 / 视图」浏览。 - MongoDB 集合工作台分四个页签:文档、聚合、索引、信息。文档页支持筛选、投影、排序、排序规则、起始位置、返回条数、执行上限与索引提示,结果可在卡片 / 表格 / JSON 三种展示方式之间切换。
- 查询面板提供条件构建器:改为表达式树,根组可切换 AND / OR / NOR,子组支持
$elemMatch与$not + $elemMatch数组作用域,总数上限 24 条条件,解析与写回逐字往返;字段格与值格共用补全,条件树溢出时内部滚动。反向解析接受 Compass 风格的宽松 JSON(无引号键、单引号、注释、尾逗号)。 - Filter / 投影 / 排序与聚合管道接入补全:按括号栈与字符串状态判定键位、值位与字段引用,键位补字段路径与查询运算符,字符串内按字段补真实取值,值位补 Extended JSON 构造器模板。
- 文档写入:新增、整篇替换编辑、复制为新文档、单篇删除。四处入口共用右侧抽屉与同一套 JSON 编辑器,
_id不可修改,未保存草稿的隐式切换会先确认。 - 文档导入支持 JSON 数组、JSON Lines 与 CSV,按内容嗅探格式;CSV 逐列扫描整份文件推断类型,混类型列按 mixed 逐格嗅探,可在导入前逐字段改选。按 1000 条一批写入,支持中止与消息日志。
- 文档导出支持 JSON / JSONL / CSV 与「全量 / 当前筛选条件」两种范围,条件导出按 Compass 风格展示只读查询预览;先写
.partial再改名,取消或失败不留半截文件。 - 集合右键菜单:置顶、复制名称、刷新、导出、重命名、导入、删除;视图只读,不渲染写入入口。库右键新增创建集合、删除数据库与命令工作台,连接右键新增查看连接信息(拓扑、版本、主机列表、可见数据库)与命令行终端。
- 聚合管道改为 Compass 式卡片视图:管道文本仍是唯一真源,卡片的增删改移、停用与运算符下拉都写回文本;左右两栏可拖动,右栏常驻当前阶段的文档预览。
- 索引页按 Compass 重做:展示类型、大小、使用次数、平均使用频率、属性与状态,表头可点击排序;支持确认后删除索引,
_id_不提供删除入口。 - 文档与 JSON 展示区支持窗口级文本选择:双击选词、左键拖选,跨卡片拖选不会串到其他文档,折叠行的占位符不会进入剪贴板。
- 库级命令工作台:支持
use/show/find/aggregate等 shell 语句,写方法明确拒绝;结果以可折叠卡片展示,支持文档 / JSON 切换与复制,上下分栏可拖动并持久化,结果区展示条数、耗时与截断状态。 - MongoDB 接入 AI 页面上下文与受控执行:只暴露定位、查询条件与状态,文档值经有界只读工具按需读取。
改进
- 超大字段不再导致整行丢失:单元格正文超出结果页预算时外置到本地受控存储(单归属 256 MiB、进程合计 1 GiB,关闭标签 / 翻页 / 断开即清理),结果里只保留预览与完整大小,可在单元格详情中按 256 KiB 分块只读查看。MySQL、SQLite、PostgreSQL、SQL Server 与达梦 DM8 统一接入。
- 大字段上传替换改为分块流式追加(≥16 MiB 走暂存 + 追加),大文本列同样提供上传入口;占位值是预览值,复制 / 导出 / 编辑 / AI 上下文按「只是预览」拒绝,避免把截断内容当真值写回。
- MongoDB 文档区改用虚拟列表并缓存整页解析结果,逐帧只构建视口内的卡片;表格与 JSON 视图共用同一套行虚拟化,折叠与展开后按需重排。
- 同一连接按 URI 指纹复用 MongoClient 连接池,find / 采样 / 索引 / 集合信息 / 命令共用同一组连接;断开、编辑配置或删除连接时释放缓存。
- MongoDB 查询面板「更多选项」与「高级查询」两层收起时以角标提示仍在生效的条件数,展开态按标签页记忆。
- 筛选 / 排序弹层改为按点击点锚定,控件换行、滚动或面板变高后仍贴在触发控件旁,且不会越出窗口。
- 执行摘要超出面板高度时可纵向滚动,批量执行行数多时不再只能看到被裁掉的前几行。
修复
- 修复 PostgreSQL 含大字段的行无法更新 / 删除,以及数组列(如
numeric(12,4)[])导入时类型不兼容的问题。 - 修复无主键表中含大字段的行身份无法确定时静默产生 0 行影响的问题,现统一拒绝并说明原因。
- 修复 SQL Server 结果超出预算时直接丢弃整行的问题,改为先把大字段外置成内容引用再收行;同时修正翻页 SQL 对外层列名的引用。
- 修复达梦 DM8 只按行数截断结果页的问题,改为按字节预算收页并外置单格超大值。
- 修复 MongoDB 导入非 ASCII 值时的崩溃(日期嗅探按字节比较前缀,不再切在 UTF-8 字符中间)。
- 修复 MongoDB 创建集合后侧边栏不显示新集合,需要手动刷新的问题。
- 修复 MongoDB CSV 导入按多数类型定型导致少数派行整条失败的问题,改为混类型列逐格嗅探。
- 修复无 RedisJSON 模块的服务端创建 JSON Key 时报
unknown command的问题:建键前探测JSON.SET,不可用时以普通字符串保存 JSON 文本,并改用 JSON 编辑器输入。 - 修复 Redis 命令参数已填完仍常驻签名提示的问题,
GET key输完即隐藏。 - 修复 Redis 新建 Key 后另开 DataEditor 标签页的问题,改为留在当前库标签页、刷新后选中并滚动到新键。
- 修复浅色主题下 ghost 按钮悬停文字与底色同色导致文案消失的问题。
已知限制
- MongoDB 不提供数据库级备份恢复(
mongodump/mongorestore),导出是文档级逻辑导出;「查看性能指标」置灰未实现。 - MongoDB 不支持 SSH 隧道;TLS 相关参数经连接串导入,TLS 页签对 MongoDB 不提供表单。
- MongoDB 单次查询最多返回 500 篇文档;导出按
skip翻页,集合在导出期间被并发修改时可能漏读或重复。 - MongoDB 不支持批量删除(删除后立即重查,无撤销)、跨库移动集合、视图重命名 / 删除、时间序列与 capped 集合的创建入口、表格行内编辑、事务与变更流。
- MongoDB CSV 导入只支持标量字段(嵌套对象 / 数组请走 JSON 路径),文件必须是 UTF-8;新增文档的
_id固定为 ObjectId,不支持改成其它类型。
验证
- 通过
cargo fmt --all -- --check、cargo check --workspace --locked和cargo clippy --workspace --all-targets --locked。 - 通过 MongoDB 连接串解析与档案往返、导入格式嗅探与类型推断、Extended JSON 与错误文本脱敏、集合刷新替换语义等单测。
- 通过筛选 / 排序弹层锚定、执行摘要滚动、查询面板展开态与条件构建器的无头 E2E。
- MongoDB 真库用例位于
crates/fluxdb-connectors/tests/mongo_live.rs与apps/fluxdb-desktop/src/main_parts/mongo_sidebar_tests.rs,需要设置FLUXDB_MONGO_URI,未设置时自动跳过,不在自动门禁内。
English
New features
- Added MongoDB support: connection-string import (
mongodb:///mongodb+srv://) fills in hosts, SRV, credentials, default database and auth database, and the tree browses connection → database → collection group → collection/view. - The MongoDB collection workspace has four tabs: documents, aggregation, indexes and info. The documents tab supports filter, projection, sort, collation, skip, limit, max time and index hint, with card, table and JSON display modes.
- The query panel includes a visual condition builder: it is now an expression tree whose root group switches between AND / OR / NOR, with child groups for
$elemMatchand$not + $elemMatcharray scopes, up to 24 conditions in total, and lossless parse/write-back. Field and value cells share completion, and the tree scrolls internally when it overflows. Reverse parsing accepts Compass-style relaxed JSON (unquoted keys, single quotes, comments, trailing commas). - Filter, projection, sort and aggregation pipelines now have completion: a bracket-and-string scan decides key position, value position and field references; keys complete field paths and query operators, strings complete real values of that field, and value positions complete Extended JSON constructor templates.
- Document writes: create, whole-document replace, duplicate as a new document and single-document delete. All four share the same right-hand drawer and JSON editor,
_idis immutable, and switching away from an unsaved draft asks for confirmation first. - Document import accepts JSON arrays, JSON Lines and CSV, sniffed from content rather than extension. CSV scans the whole file per column to infer types, marks mixed columns as
mixedand re-sniffs per cell, and lets you override each field before importing. Writes run in batches of 1000 with stop support and a message log. - Document export supports JSON / JSONL / CSV with "all documents" or "current filter" scope, showing a read-only Compass-style query preview for filtered exports. Files are written to
.partialand renamed only on success, so cancelling or failing leaves no half-written file. - Collection context menu: pin, copy name, refresh, export, rename, import, drop. Views are read-only and do not render write entries. The database menu gains create-collection, drop-database and a command workbench, and the connection menu gains connection info (topology, version, hosts, visible databases) and a command-line terminal.
- The aggregation pipeline is now a Compass-style card view: pipeline text stays the single source of truth, and adding, removing, moving, disabling or changing a stage operator writes back to that text. The two panes are resizable and the right pane keeps a live preview of the current stage.
- The indexes page is rebuilt after Compass: it shows type, size, usage count, average usage frequency, properties and status, with sortable headers and confirmed index drop.
_id_has no drop entry. - Document and JSON views support window-level text selection: double-click selects a word, drag selects across lines, a drag never jumps into another document, and collapsed-row placeholders do not enter the clipboard.
- The database-level command workbench accepts shell statements such as
use/show/find/aggregateand explicitly rejects write methods. Results render as collapsible cards with document/JSON switching and copy, a draggable persisted split, and row count, elapsed time and truncation state. - MongoDB is wired into AI page context and controlled execution: only location, query conditions and state are exposed; document values are read on demand through bounded read-only tools.
Improvements
- Oversized values no longer drop the whole row: when a cell body exceeds the result-page budget it is offloaded to local controlled storage (256 MiB per owner, 1 GiB per process, cleaned up on tab close, paging or disconnect) and only a preview plus full size stays in the result, viewable read-only in 256 KiB chunks. Applies to MySQL, SQLite, PostgreSQL, SQL Server and Dameng DM8.
- Upload replacement for large values now streams in chunks (≥16 MiB uses staging plus append), and large text columns get the same upload entry. Placeholder values are previews only: copy, export, edit and AI context all reject them so truncated content is never written back as a real value.
- The MongoDB document area now uses a virtualized list with whole-page parse caching, building only the cards in view each frame; table and JSON views share the same row virtualization and remeasure after folding or expanding.
- Each connection reuses a MongoClient pool keyed by URI fingerprint, so find / sampling / indexes / collection info / commands share the same connections; the cache is released on disconnect, config edit or connection delete.
- When both MongoDB query option layers are collapsed, a badge shows how many conditions are still active, and expansion state is remembered per tab.
- Filter and sort popovers now anchor to the clicked control, staying beside their trigger after wrapping, scrolling or panel resizing without overflowing the window.
- Execution summaries scroll vertically when taller than the panel, so long batch runs no longer hide rows below the clipped area.
Fixes
- Fixed PostgreSQL rows containing large values failing to update or delete, and array columns (such as
numeric(12,4)[]) failing to import due to type incompatibility. - Fixed tables without a primary key silently reporting zero affected rows when a row identity containing large values could not be determined; the operation is now rejected with an explanation.
- Fixed SQL Server dropping whole rows when a result exceeded the budget; large fields are now offloaded into content references first, and paging SQL no longer references original columns outside the
ROW_NUMBERsubquery. - Fixed Dameng DM8 truncating result pages by row count only; pages are now collected under a byte budget with oversized cells offloaded.
- Fixed a crash when importing non-ASCII values into MongoDB (date sniffing compares byte prefixes and no longer splits inside a UTF-8 character).
- Fixed newly created MongoDB collections not appearing in the sidebar until a manual refresh.
- Fixed MongoDB CSV import picking the majority type and failing minority rows; mixed columns are now sniffed per cell.
- Fixed creating a JSON key against servers without the RedisJSON module failing with
unknown command: the command probes forJSON.SETfirst, stores JSON text as a plain string w...
v0.1.13
中文
新功能
- 新增 Oracle 数据源:支持 Service Name / SID 两种连接方式与可选 Wallet,连接后按 Schema 组织对象树,可浏览表、视图、同义词等对象。
- Oracle 支持 SQL 查询与方言补全、执行取消、表结构查看与设计、数据编辑、筛选与排序,以及本机逻辑导出(DDL + 逐页数据)。
- Oracle 接入 AI 页面上下文与受控执行:
SELECT … FOR UPDATE、序列NEXTVAL、dbms_*/utl_*、同义词与@dblink间接访问、EXPLAIN PLAN FOR均按写操作处理,需要人工审批。 - 用户与权限面板扩展为 常规 / 角色 / 系统权限 / 对象权限 / SQL 预览 五页签;Oracle 与达梦各页签顶部是类型锁死的授权编辑器,可连续「加入待执行」后一次保存。
- Oracle 支持新建账号、修改口令、锁定 / 解锁、表空间与配额、Profile 与登录授权;「新建 schema」直接打开新建账号表单,不再创建无法登录的随机口令账号。
- 达梦 DM8 复用同一账号面板,按方言使用
CREATE SESSION、ALTER USER … PROFILE等写法。
改进
- 用户与权限代码按数据库拆分为独立面板(MySQL / PostgreSQL / SQL Server / Oracle),公共壳与页签条收敛到共享模块,新增数据库不再改动其它库的实现。
- 命令分发按连接、标签页、用户权限拆分,降低 macOS 调试构建的线程栈占用(约 287 KiB → 90 KiB),命令行为与补全失效逻辑保持不变。
- Oracle 的 ER 外键与补全列表改为按 Owner 一次登录批量读取,替代逐表 N+1 查询,并在建连前、分片之间与查询返回后响应取消。
- Oracle 对象树行数取自
ALL_TABLES.NUM_ROWS统计值,不触发全表扫描。 - 重新加载表数据时只遮罩表格区域,工具栏、筛选面板与 SQL 预览保持可见。
修复
- 修复 Oracle 导入时因服务端默认日期格式导致的
ORA-01861:会话固定NLS_DATE_FORMAT等 ISO 格式。 - 修复 Oracle 复制表始终报「未读取到源表 DDL」。
- 修复 Oracle 与 SQL Server 的 Explain 按钮会发出必然解析失败的语句,现按方言禁用工具栏按钮与快捷键。
- 修复 Oracle 账号变更失败提示缺少已执行条数的问题,便于按实际生效情况重跑剩余语句。
验证
- 通过
cargo fmt --all -- --check、cargo check --workspace --locked和cargo clippy --workspace --all-targets --locked。 - 通过 Oracle 方言补全、只读判定与权限约束单测,用户权限五页签工具栏与「一次保存」流程测试,以及重新加载遮罩范围的无头 E2E。
- Oracle 真库用例(导入回归、批量元数据读取)位于
crates/fluxdb-connectors/tests/oracle_live.rs,需要本地 Oracle 实例,不在自动门禁内。
English
New features
- Added Oracle support with Service Name / SID connections and an optional Wallet. Objects are organized by schema after connecting, with tables, views, synonyms and other object types browsable from the tree.
- Oracle supports SQL queries with dialect-aware completion and cancellation, table structure viewing and design, data editing, filtering and sorting, and local logical export (DDL plus paged data).
- Oracle is wired into AI page context and controlled execution:
SELECT … FOR UPDATE, sequenceNEXTVAL,dbms_*/utl_*members, objects reached through synonyms, views or@dblink, andEXPLAIN PLAN FORare all treated as writes and require approval. - The user and permission panel now has five tabs: General / Roles / System privileges / Object privileges / SQL preview. For Oracle and Dameng, each tab opens with a type-locked grant editor, and multiple grants can be queued before a single save.
- Oracle supports creating accounts, changing passwords, lock/unlock, tablespaces and quotas, profiles and login grants. "New schema" opens the create-account form instead of producing a random-password account that cannot log in.
- Dameng DM8 reuses the same account panel with dialect-specific SQL such as
CREATE SESSIONandALTER USER … PROFILE.
Improvements
- User administration is split into per-database panels (MySQL / PostgreSQL / SQL Server / Oracle) with a shared shell and tab strip, so adding a database no longer touches other implementations.
- Command dispatch is split by connection, tab lifecycle and user administration, reducing the macOS debug-build thread stack from roughly 287 KiB to 90 KiB without changing command behavior or completion invalidation.
- Oracle foreign keys and completion columns are read once per owner instead of one connection per table, and the batch reads honor cancellation before connecting, between batches and after the query returns.
- Object-tree row counts come from
ALL_TABLES.NUM_ROWSstatistics, avoiding full table scans. - Reloading table data now masks only the table area, keeping the toolbar, filter panel and SQL preview visible.
Fixes
- Fixed Oracle import failures with
ORA-01861by pinning ISO date formats (NLS_DATE_FORMATand related settings) on each session. - Fixed Oracle table copy always reporting that the source table DDL was not loaded.
- Fixed the Explain button sending statements that always fail to parse on Oracle and SQL Server; the toolbar button and shortcut are now disabled for those dialects.
- Fixed Oracle account changes reporting no progress information on failure; the message now includes how many statements already ran.
Validation
- Passed
cargo fmt --all -- --check,cargo check --workspace --lockedandcargo clippy --workspace --all-targets --locked. - Passed Oracle dialect completion, read-only policy and permission-constraint unit tests, five-tab toolbar and one-shot save flow tests, and a headless E2E for the reload mask area.
- Oracle live tests (import regression, batched metadata) live in
crates/fluxdb-connectors/tests/oracle_live.rsand require a local Oracle instance; they are outside the automated gate.
v0.1.12
中文
新功能
- 筛选条件支持表单与 SQL 输入双向切换:表单内容可自动带入输入框,输入的条件也能解析回可编辑表单,并保留 AND / OR、括号分组和排序规则。
- 条件输入支持搜索条件补全与 SQL 预览高亮,便于直接编写和调整复杂筛选表达式。
- 排序规则改为紧凑标签:支持切换字段、切换升降序、删除单条、清空全部与撤销,并可通过六点手柄拖动调整优先级。
改进
- 筛选展开区支持滚动,排序与应用操作保持固定;展开高度不超过数据区域的 35%,条件较多时不再遮挡操作按钮。
- “表单 / 输入”切换只在筛选编辑展开时显示,收起后保留条件、当前模式和已应用的筛选结果。
- 支持多条件、多层括号嵌套和逐行 AND / OR 切换,复杂筛选 SQL 可在输入模式与表单之间往返编辑。
- MySQL、TiDB、PostgreSQL、SQL Server、SQLite 和达梦 DM8 按各自方言处理类型转换、运算符、标识符、空字符串和
LIKE通配符转义。 - 排序拖动预览跟随明暗主题,使用六点手柄和主题色反馈,不再出现突兀的黑色浮层。
- 字段详情抽屉的最低高度调整为 220px,压缩时仍完整保留字段信息、值编辑区和保存操作。
- 应用内更新显示下载百分比、已下载大小和总大小,并在弹窗中展示对应版本的更新说明。
修复
- 修复筛选 SQL 解析在中文等多字节字符边界处触发的 panic。
- 修复 SQL 编辑器补全、诊断增量更新、语句定位和参数替换中的同类 UTF-8 字符边界风险。
- 修复复杂嵌套条件切回表单后结构丢失、
LIKE条件无法恢复以及运算符显示不正确的问题。
验证
- 通过
cargo fmt --all -- --check、cargo check --workspace --locked和cargo clippy --workspace --all-targets --locked。 - 通过筛选方言、条件往返、多字节文本、复杂嵌套与组合条件单测,以及真实生产视图的无头交互和拖拽排序 E2E。
- 真实 PostgreSQL、SQL Server 和达梦实例的连接级验收不在本次自动门禁内,方言 SQL 通过针对各数据库类型的单测覆盖。
English
New features
- Filter conditions now support bidirectional editing between the form and SQL input. Form values populate the input automatically, while typed conditions can be parsed back into editable rules with AND/OR connectors, parenthesized groups and sort rules preserved.
- Condition input includes search-condition completion and a highlighted SQL preview for building and adjusting complex filter expressions.
- Sort rules now use compact pills with field changes, ascending/descending toggles, per-rule removal, clear/undo, and six-dot drag handles for changing priority.
Improvements
- The expanded filter area now scrolls independently while sort and apply actions remain fixed. Its height is capped at 35% of the data region, so many conditions no longer cover the action buttons.
- The Form/Input switch is shown only while filter editing is expanded. Collapsing preserves conditions, the current mode and applied filter results.
- Multiple conditions, nested parentheses and per-row AND/OR connectors are supported. Complex filter SQL can round-trip between input and form editing.
- MySQL, TiDB, PostgreSQL, SQL Server, SQLite and Dameng DM8 now apply dialect-specific behavior for type casts, operators, identifiers, empty strings and
LIKEwildcard escaping. - The sort drag preview follows light and dark themes, using a six-dot handle and theme colors instead of an opaque dark card.
- The field detail drawer now has a 220px minimum height, keeping metadata, the value editor and save actions visible when compressed.
- In-app updates show the download percentage, downloaded size and total size, with localized release notes in the update dialog.
Fixes
- Fixed panics when filter SQL parsing encountered a UTF-8 character boundary in Chinese and other multibyte text.
- Fixed related character-boundary risks in SQL editor completion, incremental diagnostics, statement lookup and parameter replacement.
- Fixed lost structure when complex nested conditions returned to the form,
LIKEconditions that could not be restored, and incorrect operator display.
Validation
- Passed
cargo fmt --all -- --check,cargo check --workspace --lockedandcargo clippy --workspace --all-targets --locked. - Passed filter-dialect, condition round-trip, multibyte text, nested/composite condition unit tests, plus headless production-view interaction and drag-sorting E2E tests.
- Live connection acceptance for PostgreSQL, SQL Server and Dameng is outside this automated gate; dialect SQL is covered by database-specific unit tests.
v0.1.11
中文
新功能
- 新增 SQL Server 数据源:支持 SQL Server 认证、TLS、数据库 / Schema / 对象浏览、T-SQL 查询、表结构管理与数据编辑、表数据导入导出、登录名 / 数据库用户 / 角色成员 / 显式权限管理,以及对象级逻辑备份与恢复。
- SQL Server 接入 AI 页面上下文与受控执行:只读查询和对象描述可在受限范围内使用,写入与高风险操作需要审批。
- 新增 SQL Server 的存储过程 / 函数对象入口、T-SQL 补全和数据库级创建 / 删除等基础对象操作。
改进
- SQL 补全支持裸表名跨 Schema 匹配,并继续补全下一级限定;修复含中文等 UTF-8 字符时的补全定位偏移。
- 表设计器按数据库方言扩充类型与适配列选项,支持枚举 / 自定义类型按需编辑,并校验长度与精度。
- 统一 PostgreSQL / MySQL 的列类型展示与设计表解析,保留不透明类型的参数信息。
- 压缩查询摘要元数据列,改善长列注释换行;Redis 标签按连接聚合为一级工作区。
- AI 失败 SQL 修复按实际执行来源定位编辑器语句,避免 SQL 改写后定位到错误位置。
已知限制
- SQL Server 首版尚未实现 Windows 集成认证、Azure AD、包含数据库用户、列级权限编辑、用户自定义服务器角色、SQL Browser / 命名实例自动解析和数据库级物理备份。
- 对象级逻辑备份恢复不能替代数据库级灾难恢复。完整能力边界见 README 的“数据库支持”表。
验证
- 通过
cargo fmt --all、桌面 cratecargo check与cargo clippy --all-targets(见本次发布前本地门禁结果)。 - 通过受影响模块的单测与桌面端生产视图 E2E;依赖真实 SQL Server 的测试未作为本次发布门禁,实际连接、权限和备份恢复需按目标环境验收。
English
New features
- Added SQL Server support with SQL Server authentication, TLS, database/schema/object browsing, T-SQL queries, table design and data editing, table import/export, logins, database users, role membership and explicit permissions, and object-level logical backup/restore.
- Added SQL Server AI page context and controlled execution: read-only queries and object descriptions work within bounded scopes; writes and high-risk operations require approval.
- Added SQL Server stored-procedure/function object entries, T-SQL completion, and basic database creation/deletion.
Improvements
- Bare table-name completion now matches across schemas and continues to the next qualifier; fixed completion offsets for SQL containing UTF-8 characters.
- Expanded dialect-specific table-designer types and adaptive column options, added on-demand enum/custom-type editing, and validated length and precision.
- Unified PostgreSQL/MySQL column type display and table-design parsing while preserving opaque type parameters.
- Compacted query-summary metadata columns, improved long column-comment wrapping, and grouped Redis tabs by connection as top-level workspaces.
- Failed-SQL AI repair now locates the editor statement from the actual execution source, avoiding wrong locations after SQL rewrites.
Known limitations
- SQL Server's first release does not yet implement Windows integrated authentication, Azure AD, contained database users, column-level permission editing, user-defined server roles, SQL Browser/named-instance auto-discovery, or database-level physical backup.
- Object-level logical backup/restore is not a substitute for database-level disaster recovery. See the README's Database support table for the full boundary.
Validation
- Passed
cargo fmt --all, desktop-cratecargo check, andcargo clippy --all-targets(see the local gate results before this release). - Passed affected-module unit tests and desktop production-view E2E. Tests requiring a live SQL Server are not part of this release gate; validate connections, permissions, and backup/restore against the target environment.
v0.1.10
中文
新功能
- 新增达梦 DM8 数据源:连接管理、Schema 与对象浏览、SQL 查询、表结构管理与设计、数据编辑、表数据导入、逻辑备份与整 Schema 恢复,以及达梦语义补全。
- 新增表数据导入向导:支持 TXT、CSV、JSON、XML,提供字段映射、追加/截断模式、批量进度与消息日志。
- AI Agent 新增页面查询与 SQL 编辑器修改授权:可查找并打开表、填写可见筛选条件后查询一次;可按选区改写信箱中的 SQL,写入可撤销且不会自动执行。
- 新增应用内更新:从 GitHub Release 检查并校验签名清单与安装包摘要后安装。
改进
- 补全引擎改为独立语义补全,补齐函数签名、词法作用域、关键字槽位收敛与诊断能力。
- AI 工具目录支持动态搜索/加载,设置修改统一经确认后的配置提案完成。
- 路线图补充达梦 DM8、国际化、应用内更新与表数据导入的完成状态。
修复
- 修复达梦分帧响应判断、索引列去重、表设计元数据加载阻塞与对象刷新等问题。
- 修复侧边栏刷新时已加载表短暂消失、表右键菜单越界等交互问题。
- 修复撤销/迟到结果覆盖编辑器或页面状态的问题,并补充并发与取消测试。
- 修复应用内更新无法处理带换行的签名文件,导致检查更新报签名编码无效的问题。
验证
- 本地通过
cargo fmt、workspacecargo check、workspacecargo clippy --all-targets。 - 通过受影响 crate 测试与桌面端生产视图 E2E;需真实达梦/MySQL/PostgreSQL 的用例保持显式跳过。
English
New features
- Added Dameng DM8 support: connections, schema and object browsing, SQL queries, table structure management and design, data editing, table data import, logical backup and whole-schema restore, plus Dameng-aware semantic completion.
- Added a table import wizard for TXT, CSV, JSON and XML with column mapping, append/truncate modes, batch progress and a message log.
- Added page-query and SQL editor edit grants for the AI Agent: find and open a table, fill visible filters and query once; rewrite an authorized SQL range with an undoable edit that never executes automatically.
- Added in-app updates with signed manifest and package checksum verification against GitHub Releases.
Improvements
- Rebuilt SQL completion as an independent semantic engine with function signatures, lexical scopes, clause-aware keyword slots and diagnostics.
- Added dynamic AI toolbox search/load; settings changes now go through confirmed configuration proposals.
- Updated the roadmap for Dameng DM8, internationalization, in-app updates and table data import.
Fixes
- Fixed framed-response detection, duplicate generated index columns, blocking table-designer metadata loads and object refresh issues on Dameng.
- Fixed loaded tables briefly disappearing during sidebar refresh and table context menus overflowing the viewport.
- Fixed late results overwriting editor or page state, with added concurrency and cancellation coverage.
- Fixed in-app updates rejecting wrapped signature files with an invalid Base64 error.
Validation
- Passed local
cargo fmt, workspacecargo check, and workspacecargo clippy --all-targets. - Passed affected-crate tests and desktop production-view E2E; tests requiring live Dameng/MySQL/PostgreSQL remain explicitly ignored.
v0.1.9
Highlights
FluxDB v0.1.9 introduces a complete internationalization foundation and expands the application with AI-assisted relationship review and settings improvements.
Internationalization
- Added external JSON locale packs that can be installed without changing Rust code.
- Added built-in English and Simplified Chinese locale packs.
- Added automatic locale discovery, per-entry fallback to English, and user-pack overrides.
- Localized desktop screens, connection dialogs, Redis workflows, query results, settings, AI chat, diagnostics, approval cards, plugin configuration, menus, and status feedback.
- Added display-boundary translation for backend errors and dynamic messages while preserving SQL, object names, protocol values, and raw database errors.
- Added locale-aware connection placeholders, built-in tab titles, Redis column headers, filter dialogs, and AI relationship review UI.
- Added headless E2E coverage for language discovery, switching, persistence, stable business values, Redis validation, and localized error handling.
- Documented locale-pack authoring, fallback behavior, and E2E testing requirements.
AI and desktop improvements
- Added AI relationship suggestions with individual review and adoption.
- Added relationship tools for inspecting registered relationships and finding join paths.
- Promoted Settings to a first-level workspace tab.
- Added AI model capacity and runtime improvements.
- Improved data grid result sharing and Redis JSON editing.
- Added a cross-platform titlebar initialization fix for Windows and Linux builds.
Validation
- 16 desktop internationalization tests passed.
- 4 locale-loader tests passed.
- Workspace check passed.
- Desktop Clippy completed successfully.
- Locale key parity, placeholder parity, duplicate-key checks, and unused-key checks passed.
- Cross-platform CI exposed and verified a Windows/Linux titlebar compilation fix.
Installation
Download the package for your platform from the release assets. SHA-256 checksums are provided for every package.