From c4422fa1965ebce67548c47779a105ba2b750ec6 Mon Sep 17 00:00:00 2001 From: blankll Date: Thu, 8 Oct 2026 10:23:47 +0800 Subject: [PATCH 1/2] chore(deps): bump data-studio-agent to v0.1.9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Picks up the base-URL compatibility fix (geek-fun/data-studio-agent#32): normalize_base_url no longer force-appends /v1 to URLs that already carry their own version segment. This makes the Opper preset (geek-fun#165, api.opper.ai/v3/compat) work and un-breaks the Gemini preset (generativelanguage.googleapis.com/v1beta/openai), which was being mangled to /v1beta/openai/v1. All other provider presets keep byte-identical resolved URLs. Cargo.lock updated minimally (dependency entry only) — a scoped cargo update on a resolver with different MSRV-fallback policy churns unrelated transitive versions, so the entry was bumped by hand and validated with cargo metadata/check --locked. --- src-tauri/Cargo.lock | 4 ++-- src-tauri/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index b814be1b..f5751b8c 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -1543,8 +1543,8 @@ checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] name = "data-studio-agent" -version = "0.1.8" -source = "git+https://github.com/geek-fun/data-studio-agent.git?tag=v0.1.8#504fe2d7aef2a8ce829f34a43620cafffbb902c8" +version = "0.1.9" +source = "git+https://github.com/geek-fun/data-studio-agent.git?tag=v0.1.9#7e6610bd421d5acbadf64558aa954bc27b175e38" dependencies = [ "async-openai", "async-trait", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 998d8b96..9c664b4f 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -88,7 +88,7 @@ log = "0.4" futures = "0.3" rand = "0.8" # data-studio-agent: pinned to latest release tag. -data-studio-agent = { git = "https://github.com/geek-fun/data-studio-agent.git", tag = "v0.1.8" } +data-studio-agent = { git = "https://github.com/geek-fun/data-studio-agent.git", tag = "v0.1.9" } # Archive extraction (JRE downloads) flate2 = "1.0" From fb3283a37ba87970f3f98a914561fbf27761fd82 Mon Sep 17 00:00:00 2001 From: blankll Date: Thu, 8 Oct 2026 15:57:30 +0800 Subject: [PATCH 2/2] fix(connections): saved SSH connections are Ultimate-only to operate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirror of geek-fun/dockit#517's connection guard. A Community user clicking connect (or dblclick, edit, delete, duplicate) on a saved SSH-bound connection went straight to the backend and died with a raw 403 error dialog — "SSH tunnel requires an Ultimate subscription" — with no upgrade path. - ConnectionsPage: all five actions route to the pricing site when the connection carries an enabled SSH tunnel and the user is not Ultimate - ServerCard: SSH badge (with a Pro marker for non-Ultimate) so the reason is visible before clicking - ServerFormDialog: the SSH toggle opens the pricing site instead of the local modal — usage-side features jump to the website, matching dockit's in-dialog strips --- src/components/connections/ServerCard.vue | 18 +++++++++++- .../connections/ServerFormDialog.vue | 6 ++-- src/pages/ConnectionsPage.vue | 29 ++++++++++++++++++- 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/components/connections/ServerCard.vue b/src/components/connections/ServerCard.vue index e4223582..e492ca66 100644 --- a/src/components/connections/ServerCard.vue +++ b/src/components/connections/ServerCard.vue @@ -13,8 +13,9 @@ import { DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip' +import { ProBadge } from '@/components/upgrade' import { useDatabaseIcon } from '@/composables/useDatabaseIcon' -import { ConnectionStatus, DatabaseType, formatServerVersion, getConnectionStrategy } from '@/store' +import { ConnectionStatus, DatabaseType, formatServerVersion, getConnectionStrategy, useEntitlementStore } from '@/store' const props = defineProps<{ connection: ServerConnection @@ -31,6 +32,7 @@ const emit = defineEmits<{ }>() const { t } = useI18n() +const entitlementStore = useEntitlementStore() const { getDatabaseIcon, getDatabaseColor } = useDatabaseIcon() const statusColor = computed(() => { @@ -225,6 +227,20 @@ const connectTooltip = computed(() => SSL + + + + + + SSH + + + + +

SSH tunnel

+
+
+
diff --git a/src/components/connections/ServerFormDialog.vue b/src/components/connections/ServerFormDialog.vue index ba3fe8c7..748e7025 100644 --- a/src/components/connections/ServerFormDialog.vue +++ b/src/components/connections/ServerFormDialog.vue @@ -3,8 +3,10 @@ import type { OracleConnectionOptions, ServerConnection } from '@/store' import type { DatabaseFileAssessment } from '@/utils/databaseFiles' import { invoke } from '@tauri-apps/api/core' import { open as openDialog } from '@tauri-apps/plugin-dialog' +import { openUrl } from '@tauri-apps/plugin-opener' import { computed, ref, watch } from 'vue' import { useI18n } from 'vue-i18n' +import { UPGRADE_URL } from '@/common' import { Button } from '@/components/ui/button' import { SearchableSelect } from '@/components/ui/combobox' import { Dialog, DialogContent, DialogDescription, DialogTitle } from '@/components/ui/dialog' @@ -19,7 +21,6 @@ import { SelectValue, } from '@/components/ui/select' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' -import { openUpgradeDialog } from '@/components/upgrade' import { useDatabaseIcon } from '@/composables/useDatabaseIcon' import { useDownloadEvents } from '@/composables/useDownloadEvents' import { toast } from '@/composables/useNotifications' @@ -191,7 +192,8 @@ async function runStep(step: StepDef): Promise { function toggleSsh(checked: boolean) { if (checked && !entitlementStore.isLocalUltimate) { - openUpgradeDialog('ssh_tunnel') + // usage-side feature — send to the pricing site (matches dockit) + openUrl(UPGRADE_URL) return } if (!formData.value.sshTunnel) { diff --git a/src/pages/ConnectionsPage.vue b/src/pages/ConnectionsPage.vue index d6fcb613..48449178 100644 --- a/src/pages/ConnectionsPage.vue +++ b/src/pages/ConnectionsPage.vue @@ -1,8 +1,10 @@