Added compatibility shim for the Qdrant Edge migration (#812)
Some checks are pending
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Determine run mode (push) Waiting to run
Build and Release / Read metadata (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions

This commit is contained in:
Thorsten Sommer 2026-06-20 16:11:24 +02:00 committed by GitHub
parent c3bf2563cd
commit fc7197ec93
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 29 additions and 2 deletions

View File

@ -0,0 +1,26 @@
# Qdrant Edge Migration
- Status: Active
- Introduced: 2026-06-02
- Remove after: 2026-12-02
- Code references:
- `runtime/src/qdrant_edge_database.rs`
## User Impact
Older installations may still contain Qdrant server sidecar binaries or directories after upgrading to a release that uses Qdrant Edge.
Without this shim, obsolete Qdrant server files could remain in application data or bundled resource locations even though AI Studio no longer starts or uses the separate Qdrant server process.
## Compatibility Behavior
When Qdrant Edge starts, AI Studio checks known previous Qdrant server sidecar locations and attempts to remove obsolete `qdrant` and `qdrant_test` files or directories.
On Windows and macOS production installations, AI Studio also checks the executable directory for old `qdrant.exe` or `qdrant` sidecar binaries. Missing paths are ignored, and failed cleanup attempts are logged without blocking Qdrant Edge startup.
## Removal Checklist
- Remove `remove_obsolete_qdrant_sidecar_files`.
- Remove `remove_obsolete_qdrant_path` if it has no other callers.
- Remove the startup cleanup call from `start_qdrant_edge_database`.
- Update this document's status to `Removed`.

View File

@ -27,5 +27,4 @@ This applies to LLM provider, embedding provider, and transcription provider API
- Remove `LegacySelfHostedAPIKeys`. - Remove `LegacySelfHostedAPIKeys`.
- Remove legacy lookup, migration, and cleanup calls from API key read, write, and delete paths. - Remove legacy lookup, migration, and cleanup calls from API key read, write, and delete paths.
- Keep `LLMProvidersExtensions.ToSecretId()` and the canonical `Self-hosted` namespace. - Keep `LLMProvidersExtensions.ToSecretId()` and the canonical `Self-hosted` namespace.
- Update this document's status to `Removed`. - Update this document's status to `Removed`.
- Add a changelog entry only if removal is user-visible.

View File

@ -384,6 +384,8 @@ fn set_qdrant_edge_unavailable(reason: String) {
status.unavailable_reason = Some(reason); status.unavailable_reason = Some(reason);
} }
// Temporary compatibility shim until 2026-12-02:
// documentation/compatibility-shims/2026-06-qdrant-edge-migration.md
fn remove_obsolete_qdrant_sidecar_files<R: tauri::Runtime>(app_handle: &tauri::AppHandle<R>) { fn remove_obsolete_qdrant_sidecar_files<R: tauri::Runtime>(app_handle: &tauri::AppHandle<R>) {
let mut paths = Vec::new(); let mut paths = Vec::new();