Skip to content

Fix/dependency security - #239

Merged
kix007 merged 4 commits into
mainfrom
fix/dependency-security
Oct 26, 2026
Merged

kix007 merged 4 commits into
mainfrom
fix/dependency-security

Conversation

@kix007

@kix007 kix007 commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Clears most of the open Dependabot / RustSec advisories across the app, the Rust backend and the docs site. It also brings the website
docs and roadmap in line with what the app actually does.

The dependency changes are lockfile-level apart from three upgrades:

  • zip 2 → 9 (QueryDen's own dependency)
  • vitest 3 → 4 (dev only)
  • monaco-editor 0.55 → 0.57, which needed a rework of the slim Monaco entry; a new guard test keeps it complete.

Flagged areas: none of storage.rs, updater.rs, capabilities/ or the AI code path are touched. tauri-plugin-updater stays at
the same version.

Related issue

Partly addresses #185: devalue is fixed. The glib and rand warnings come in through Tauri/GTK and can't be bumped from here.

Related: #186 (Node runtime). The docs site's remaining Astro alert needs Node ≥ 22.23.4.

Changes

Rust (src-tauri/Cargo.lock, Cargo.toml)

  • rustls 0.23.40 → 0.23.46 and rustls-webpki 0.103.13 → 0.103.16: TLS 1.3 handshake, downgrade, decompression and distrusted-intermediate
    fixes.
  • webpki-roots and webpki-root-certs 1.0.7 → 1.0.11: distrusted emSign roots.
  • quinn-proto 0.11.14 → 0.11.19, crossbeam-epoch 0.9.18 → 0.9.21, tokio 1.52.1 → 1.54.1, anyhow, event-listener, spin (yanked).
  • plist 1.9 → 1.10.3, which brings quick-xml 0.39 → 0.42 (quadratic parsing and allocation fixes; build-time only).
  • zip 2 → 9 for the app's own use (mongosh archive extraction, .xlsx export). extract() no longer follows symlinks out of the
    target directory or keeps SUID/SGID bits. Only the deflate feature is enabled, which drops the bzip2/lzma C libraries zip pulled in by
    default.
  • cli.rs: removed the CommandExt import that newer tokio makes unused. Windows clippy -D warnings failed on it.

Frontend (package.json, package-lock.json)

  • In-range fixes: vite, postcss, nanoid, brace-expansion, browserslist, source-map-js, @babel/core, baseline-browser-mapping.
  • vitest 3 → 4: fixes the Tinypool prototype-pollution RCE (critical). Dev/test only. No config changes needed.
  • monaco-editor 0.55 → 0.57: patches the bundled DOMPurify.
    • 0.57 removed edcore.main.js, and its export map now resolves monaco-editor/<path> to esm/vs/<path>.
    • The suggest widget and document semantic tokens are no longer in the shared feature list, so a naive swap silently disables
      autocompletion.
    • monacoSetup.ts now mirrors editor/editor.main.js minus the language packs, plus the built-in SQL language.
    • New monacoSetup.test.ts fails if a future Monaco release adds an editor contribution the slim entry doesn't import. I checked that
      it fails when suggestController is removed.
    • The bundle still ships only the base editor worker, with no language packs.

Docs site (website/package-lock.json)

  • In-range fixes: devalue, js-yaml, smol-toml, svgo, zod, http-cache-semantics, nanoid, postcss, source-map-js, vite.

Docs and roadmap (website/src)

Not fixable in this PR

  • zip 4.6.1 inside tauri-plugin-updater: even 2.14 requires zip ^4, and there's no patched 4.x. Update archives are
    minisign-verified before extraction.
  • rsa (RUSTSEC-2023-0071) in sqlx's MySQL driver: no fixed release. QueryDen only encrypts with the server's public key.
  • rkyv 0.7: present in Cargo.lock as an optional dependency of rust_decimal, not compiled in.
  • Docs site astro (critical, AVIF image optimization at build time), sharp and esbuild need Astro 7, which requires Node ≥
    22.23.4 on the build host (Vercel). Astro 6 already requires ≥ 22.12.

Testing notes

  • npx tsc --noEmit: clean.
  • npm test: 27 files, 395 tests pass on Vitest 4, including the new Monaco guard test.
  • npx vite build: OK. Only editor.worker is bundled, no language packs.
  • cargo clippy --all-targets -- -D warnings: clean on Linux and on x86_64-pc-windows-msvc (cargo-xwin).
  • Website npm run build on Node 22.23.4: 31 pages built, Pagefind indexed 19 docs pages, all internal doc links resolve.
  • Needs a manual check (Monaco 0.57): open a query tab and confirm autocomplete (Ctrl+Space, schema.), parameter hints, find
    (Ctrl+F), Ctrl+Enter and table/alias colouring. Also confirm the Definition and Compare dialogs highlight SQL.
  • Merge order: some docs pages describe features from the fix/cli-tools-editor-intelligence PR (per-tab sessions, completion, psql
    console, exports). The site deploys on release, so merge both before the next release. Expect small conflicts in install.mdx and
    byo-key.mdx when the second one merges.

Checklist

  • I built the app locally (npm run tauri dev or npm run tauri build) and verified the change works.
  • Frontend typecheck passes (npx tsc --noEmit).
  • Rust build passes (cargo check --manifest-path src-tauri/Cargo.toml). Also clippy -D warnings on Linux and the Windows MSVC
    target.
  • If I added a new #[tauri::command], I registered it in src-tauri/src/lib.rs's generate_handler!. (No new commands.)
  • If user-visible: I added a line to CHANGELOG.md under ## [Unreleased].
  • If this touches storage.rs, updater.rs, capabilities/, or the AI assistant code path, I flagged it in the summary above.
    (None touched.)

keens007 and others added 2 commits October 26, 2026 09:00
Rust: rustls 0.23.46, rustls-webpki 0.103.16, webpki-roots and
webpki-root-certs 1.0.11, quinn-proto 0.11.19, crossbeam-epoch 0.9.21,
quick-xml 0.42 (via plist 1.10), tokio 1.54. The app's own zip moves
2 -> 9 with only the deflate codec; extract() no longer follows symlinks
or keeps SUID bits from downloaded CLI archives.

Frontend: vite, postcss, nanoid, brace-expansion, babel patched in
range; vitest 3 -> 4 (tinypool RCE, dev-only); monaco-editor 0.55 -> 0.57
(bundled DOMPurify). 0.57 dropped edcore.main.js and moved the suggest
widget and document semantic tokens out of the shared feature list, so
the slim entry now mirrors editor.main.js minus languages, and
monacoSetup.test.ts fails if an upgrade adds a contribution it misses.

Docs site: in-range Astro dependency fixes.

cli.rs: drop the CommandExt import that newer tokio makes unused
(Windows clippy -D warnings failed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Roadmap: every item on it was closed (#7, #8, #11, #38, #40, #41, #44,
#46); they move to a "Recently shipped" list, and Now/Next/Later are
rebuilt from open issues (#10, #39, #185, #237, #149, #24, #186, #91, #2)
plus the vault, SSH and signing follow-ups.

New pages: completion and navigation, psql console, exporting results,
saved queries and Multi Query.

Corrected claims that didn't match the code: there is no master-password
or unlock step, the master key isn't in the OS keychain, there's no
exponential lockout or magic-header file format, psql isn't
auto-downloaded or version-matched, Ctrl+T/Ctrl+Alt+H/Ctrl+Y/Ctrl+W
don't do what the shortcuts page said, keymap edits aren't applied to the
editor yet, there's no SSL selector, and the explain page link was dead.
Security pages no longer point at the encryption source file. macOS is
listed as universal, and site.ts recognises the _universal.dmg asset so
the download page keeps its macOS button.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
queryden Ready Ready Preview Oct 26, 2026 7:28am UTC

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1a2f8eff-6543-4665-88e2-984a959974f8
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Resolves the conflicts with #238:
- monacoSetup.ts: Monaco 0.57 slim entry plus QueryDen's own SQL
  grammar (registerSqlLanguage); Monaco's built-in SQL registration is
  dropped so its lazy loader can't overwrite the grammar.
- CHANGELOG.md: Security section kept above the merged release notes.
- byo-key.mdx, install.mdx: this branch's edits of main's versions.

Follow-ups the merge needed:
- sqlLanguage.test.ts / sqlCompletionAdapter.test.ts import
  monaco-editor/<path> (0.57's export map no longer serves esm/vs/...).
- export.rs test reads entry names through zip 9's Result-returning API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tunnel thread sent its error to the caller first and removed its
registry entry afterwards. In between, create_ssh_tunnel returned any
registered entry as a live tunnel, so a retry right after a failure
(fixing a mistyped password, say) could be handed the dead tunnel's port
and then time out connecting to the database. On slower CI runners
tunnel_creation_reports_the_real_failure_immediately caught the window.

The caller now unregisters its own tunnel before returning the error,
and every removal checks the entry is still the same tunnel, so a late-
exiting old tunnel can't delete its replacement's entry.

Reproduced by delaying the thread's cleanup by 50 ms: the old code fails
the test, the fix passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kix007
kix007 merged commit 87f05f3 into main Oct 26, 2026
10 checks passed

This branch was successfully deployed

1 active deployment
Preview — bdaf2107 Deployed Oct 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants