Add i32/i16 type decoding and try_get_unchecked fallback to
mysql_value_to_json(), fixing all columns showing NULL on older
MySQL versions (e.g. 5.6) where sqlx type-checked decoding fails.
When executing SQL from the AI panel, pass the SQL string directly to
tryExecute() instead of relying on the executableSql computed property,
which could use stale selectedSql or cursorPos values.
- Add dbx_add_connection and dbx_remove_connection to all docs
- Update storage references from JSON files to SQLite (dbx.db)
- Bump MCP server version to 0.2.0
After migrating storage to SQLite, the MCP server was still reading
from connections.json/secrets.json which no longer exist. Switch to
better-sqlite3 to read directly from dbx.db.
Serialize JSON/JSONB as strings in Postgres and MySQL drivers to avoid
repeated JSON.stringify in the render loop. Truncate cell display to
256 chars so the browser doesn't lay out huge text nodes on scroll.
Rewrite MongoDB URI to use tunnel endpoint and add directConnection=true
when connecting through SSH, so the driver doesn't try to discover
unreachable replica set members.
Move refresh/commit/rollback buttons from DataGrid's internal toolbar
to ContentArea's table info header. Remove the redundant second row
and the column count display.
Use CARGO_MANIFEST_DIR to detect whether CI-copied dylibs exist.
When absent (local dev), override frameworks to empty array so
tauri dev doesn't require libodbc/libltdl installed locally.
Also gitignore *.dylib in src-tauri/ to prevent accidental commits.
TAURI_CONFIG env var merge did not apply frameworks to the bundler,
resulting in libodbc/libltdl missing from Contents/Frameworks/.
Restore frameworks in tauri.conf.json and skip them in dev mode via
build.rs when the dylibs are not present locally.
Docker COPY preserves original file timestamps, which can be older than
the dummy-source binary compiled in the dependency caching layer. Cargo
sees the sources as unchanged and skips recompilation, producing a 329KB
empty binary instead of the real web server.
Add hwdns.net and gh-proxy.org as proxy fallbacks before direct GitHub
access, with 10s timeout per endpoint. Significantly improves update
check speed in regions with slow GitHub connectivity.
The DANGER_RE regex matched keywords anywhere in the SQL text, causing
SELECT queries using REPLACE() or TRUNCATE() functions to incorrectly
trigger the destructive-SQL warning dialog. Check only the first keyword
of each semicolon-separated statement instead.
Also fix dialog content overflow by adding min-w-0 to the <pre> element,
and move macOS frameworks config from tauri.conf.json to CI-only
TAURI_CONFIG so local `tauri dev` no longer requires libltdl/libodbc
to be globally installed.
Closes#135
libodbc.2.dylib depends on libltdl.7.dylib (libtool). Rewrite its
install_name and the reference in libodbc to @rpath so both resolve
from Contents/Frameworks/ at runtime.
The binary was linking against /opt/homebrew/opt/unixodbc/lib/libodbc.2.dylib
(absolute path). At runtime dyld refused to load it due to Team ID mismatch.
Use install_name_tool to set @rpath/libodbc.2.dylib before building, so the
linker records a relative path that resolves via Contents/Frameworks/.
- Bundle libodbc.2.dylib into .app/Contents/Frameworks/ via Tauri's
macOS frameworks config to fix "app can't be opened" on macOS
- Replace relaunch() with exit(0) to avoid Tauri restart bug (#11392)
- Lock update dialog during download and after install
- Render release notes as markdown
Debian multiarch apt sources cause dependency conflicts with
gcc-x86-64-linux-gnu. Instead, download arm64 .deb packages directly
from deb.debian.org and extract with dpkg -x to get the arm64
libodbc headers and libraries without apt dependency resolution.