mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-06-07 14:16:30 +00:00
83 lines
2.3 KiB
Markdown
83 lines
2.3 KiB
Markdown
|
|
# Runtime Patches
|
||
|
|
|
||
|
|
This directory documents temporary patches for third-party Rust dependencies.
|
||
|
|
|
||
|
|
## Qdrant Edge
|
||
|
|
|
||
|
|
AI Studio temporarily uses a pinned commit from `SommerEngineering/qdrant` for `qdrant-edge`.
|
||
|
|
The fork commit exposes Qdrant's internal `lib/edge` crate as `qdrant-edge` and applies the
|
||
|
|
trait-solver fix from Qdrant PR #9312.
|
||
|
|
|
||
|
|
When updating to a newer Qdrant Edge version, replace the placeholder values first:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
export QDRANT_EDGE_VERSION="0.7.2"
|
||
|
|
export QDRANT_BRANCH="ai-studio-qdrant-edge-${QDRANT_EDGE_VERSION}"
|
||
|
|
export AISTUDIO_REPO="xxx/mindwork-ai-studio"
|
||
|
|
export QDRANT_REPO="xxx/qdrant"
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Sync the Qdrant fork with upstream:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$QDRANT_REPO"
|
||
|
|
git remote add upstream https://github.com/qdrant/qdrant.git 2>/dev/null || true
|
||
|
|
git fetch upstream
|
||
|
|
git fetch origin
|
||
|
|
git switch master
|
||
|
|
git merge --ff-only upstream/master
|
||
|
|
git push origin master
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Create a fresh AI Studio branch in the Qdrant fork:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$QDRANT_REPO"
|
||
|
|
git switch -c "$QDRANT_BRANCH" master
|
||
|
|
```
|
||
|
|
|
||
|
|
3. Apply the AI Studio patch if upstream has not released the fix yet:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$QDRANT_REPO"
|
||
|
|
git apply "$AISTUDIO_REPO/runtime/patches/qdrant-edge-ai-studio.patch"
|
||
|
|
```
|
||
|
|
|
||
|
|
4. Update the exposed `qdrant-edge` version in the fork:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$QDRANT_REPO"
|
||
|
|
perl -0pi -e "s/name = \"qdrant-edge\"\\nversion = \"[^\"]+\"/name = \"qdrant-edge\"\\nversion = \"$ENV{QDRANT_EDGE_VERSION}\"/" lib/edge/Cargo.toml
|
||
|
|
```
|
||
|
|
|
||
|
|
5. Commit and push the fork branch:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$QDRANT_REPO"
|
||
|
|
git diff
|
||
|
|
git add lib/edge/Cargo.toml lib/segment/src/common/anonymize.rs
|
||
|
|
git commit -m "Expose qdrant-edge ${QDRANT_EDGE_VERSION} package for AI Studio"
|
||
|
|
git push origin "$QDRANT_BRANCH"
|
||
|
|
export QDRANT_EDGE_COMMIT="$(git rev-parse HEAD)"
|
||
|
|
echo "$QDRANT_EDGE_COMMIT"
|
||
|
|
```
|
||
|
|
|
||
|
|
6. Update AI Studio to use the new Qdrant Edge version and fork commit:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$AISTUDIO_REPO"
|
||
|
|
perl -0pi -e "s/qdrant-edge = \"[^\"]+\"/qdrant-edge = \"$ENV{QDRANT_EDGE_VERSION}\"/" runtime/Cargo.toml
|
||
|
|
perl -0pi -e "s/rev = \"[0-9a-f]+\"/rev = \"$ENV{QDRANT_EDGE_COMMIT}\"/" runtime/Cargo.toml
|
||
|
|
```
|
||
|
|
|
||
|
|
7. Refresh the AI Studio lock file and verify the Rust runtime:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd "$AISTUDIO_REPO/runtime"
|
||
|
|
cargo update -p qdrant-edge
|
||
|
|
cargo check
|
||
|
|
```
|
||
|
|
|
||
|
|
Remove the patch and the `[patch.crates-io]` override once Qdrant publishes a fixed `qdrant-edge`
|
||
|
|
release on crates.io.
|